ZodSchemaClassBuilder.extends
All checks were successful
continuous-integration/drone/push Build is passing

This commit is contained in:
Julien Valverdé
2024-02-24 02:21:42 +01:00
parent 466b51aa79
commit eb071bfe86

View File

@@ -1,4 +1,4 @@
import { Trait, TraitExpressionBuilder } from "@thilawyn/traitify-ts"
import { Trait, TraitExpression, TraitExpressionBuilder } from "@thilawyn/traitify-ts"
import { AbstractClass } from "type-fest"
import { JsonifiableObject } from "type-fest/source/jsonifiable"
import { z } from "zod"
@@ -15,20 +15,18 @@ export class ZodSchemaClassBuilder<
const Traits extends Trait<any, any, any, any>[],
>
extends TraitExpressionBuilder<Superclass, Traits> {
// extends<
// This extends ZodSchemaClassBuilder<
// typeof TraitExpression.NullSuperclass, // Ensures `extends` can only be called when the expression does not have a superclass
// Traits
// >,
// Super extends AbstractClass<object, []>,
// >(
// this: This,
// superclass: Super,
// ) {
// return new ZodSchemaClassBuilder(
// this.expressionBuilder.extends(superclass)
// )
// }
extends<
Super extends AbstractClass<object>
>(
// \/ Ensures `extends` can only be called once at the beginning
this: ZodSchemaClassBuilder<typeof TraitExpression.NullSuperclass, Traits>,
superclass: Super,
) {
return new ZodSchemaClassBuilder(
superclass,
this.expressionTraits,
)
}
schema<
Superclass extends AbstractClass<object, []> & { schema?: never, defaultValues?: never },