0.1.2 #3

Merged
Thilawyn merged 136 commits from next into master 2024-03-11 19:44:21 +01:00
Showing only changes of commit eb071bfe86 - Show all commits

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 },