0.1.2 #3

Merged
Thilawyn merged 136 commits from next into master 2024-03-11 19:44:21 +01:00
2 changed files with 9 additions and 13 deletions
Showing only changes of commit 957cfdf6b8 - Show all commits

View File

@@ -17,19 +17,6 @@ export class ZodSchemaClassBuilder<
extends TraitExpressionBuilder<Superclass, Traits> { extends TraitExpressionBuilder<Superclass, Traits> {
declare ["constructor"]: typeof ZodSchemaClassBuilder declare ["constructor"]: typeof ZodSchemaClassBuilder
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 this.constructor(
superclass,
this.expressionTraits,
)
}
schema< schema<
Superclass extends AbstractClass<object, []> & { schema?: never, defaultValues?: never }, Superclass extends AbstractClass<object, []> & { schema?: never, defaultValues?: never },
@@ -147,6 +134,14 @@ export interface ZodSchemaClassBuilder<
Superclass extends AbstractClass<object>, Superclass extends AbstractClass<object>,
Traits extends readonly Trait<any, any, any, any>[], Traits extends readonly Trait<any, any, any, any>[],
> { > {
extends<
Super extends AbstractClass<object>
>(
// \/ Ensures `extends` can only be called once at the beginning
this: ZodSchemaClassBuilder<typeof TraitExpression.NullSuperclass, Traits>,
superclass: Super,
): InstanceType<typeof this.constructor<Super, Traits>>
expresses< expresses<
const T extends readonly Trait< const T extends readonly Trait<
TraitExpression< TraitExpression<

View File

@@ -7,6 +7,7 @@ import { AbstractClass, Class } from "type-fest"
const exp = new ZodSchemaClassBuilder(TraitExpression.NullSuperclass, []) const exp = new ZodSchemaClassBuilder(TraitExpression.NullSuperclass, [])
.extends(class {})
.schema({ .schema({
schema: z.object({ schema: z.object({
/** User ID */ /** User ID */