From 70012fdaf29c3ed2e81042a07f3f6a9a55368ba0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Julien=20Valverd=C3=A9?= Date: Thu, 22 Feb 2024 21:24:37 +0100 Subject: [PATCH] ZodSchemaClassBuilder work --- src/ZodSchemaClass.ts | 60 ++++++++++--------------------------------- 1 file changed, 13 insertions(+), 47 deletions(-) diff --git a/src/ZodSchemaClass.ts b/src/ZodSchemaClass.ts index ff34b2e..4b38b2b 100644 --- a/src/ZodSchemaClass.ts +++ b/src/ZodSchemaClass.ts @@ -29,7 +29,7 @@ extends TraitExpressionBuilder { // } schema< - Superclass extends AbstractClass & { schema?: never, defaultValues?: never }, + Superclass extends AbstractClass & { schema?: never, defaultValues?: never }, SchemaT extends z.ZodRawShape, SchemaUnknownKeys extends z.UnknownKeysParam, @@ -58,11 +58,7 @@ extends TraitExpressionBuilder { return new ZodSchemaClassBuilder( Schemas as unknown as ( AbstractClass< - InstanceType & - Simplify< - Extend<[Schemas, Values]> - >, - + InstanceType & Values, ConstructorParameters > & Simplify< @@ -109,40 +105,14 @@ extends TraitExpressionBuilder { props: { jsonifySchema: (props: { - schema: z.ZodObject< - SchemaT, - SchemaUnknownKeys, - SchemaCatchall, - Values, - Values - > - - shape: SchemaT - }) => z.ZodObject< - JsonifySchemaT, - JsonifySchemaUnknownKeys, - JsonifySchemaCatchall, - JsonifiedValues, - Values - > + schema: z.ZodObject + shape: SchemaT + }) => z.ZodObject dejsonifySchema: (props: { - schema: z.ZodObject< - SchemaT, - SchemaUnknownKeys, - SchemaCatchall, - Values, - Values - > - - shape: SchemaT - }) => z.ZodObject< - DejsonifySchemaT, - DejsonifySchemaUnknownKeys, - DejsonifySchemaCatchall, - Values, - JsonifiedValues - > + schema: z.ZodObject + shape: SchemaT + }) => z.ZodObject }, ) { const jsonifySchema = props.jsonifySchema({ @@ -154,25 +124,21 @@ extends TraitExpressionBuilder { shape: this.expressionSuperclass.schema.shape, }) - class Schemas extends this.expressionSuperclass { + class JsonifiableSchemas extends (this.expressionSuperclass as AbstractClass) { static readonly jsonifySchema = jsonifySchema static readonly dejsonifySchema = dejsonifySchema } return new ZodSchemaClassBuilder( - Schemas as unknown as ( + JsonifiableSchemas as unknown as ( AbstractClass< - InstanceType & - Simplify< - Extend<[Schemas, Values]> - >, - - ConstructorParameters + InstanceType, + ConstructorParameters > & Simplify< Extend<[ StaticMembers, - StaticMembers, + StaticMembers, ]> > ),