From 53bd30aa7a395452b86a7f6510294ee0f9363b5b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Julien=20Valverd=C3=A9?= Date: Fri, 23 Feb 2024 23:45:03 +0100 Subject: [PATCH] ZodSchemaClass work --- src/ZodSchemaClass.ts | 21 ++++++++++++++------- src/tests.ts | 1 + 2 files changed, 15 insertions(+), 7 deletions(-) diff --git a/src/ZodSchemaClass.ts b/src/ZodSchemaClass.ts index fee8c37..7de5ed8 100644 --- a/src/ZodSchemaClass.ts +++ b/src/ZodSchemaClass.ts @@ -6,6 +6,7 @@ import { ZodSchemaAbstractClass } from "./shapes/ZodSchemaClass" import { DejsonifiableZodSchemaObject } from "./traits/DejsonifiableZodSchemaObject" import { ExtendableZodSchemaObject } from "./traits/ExtendableZodSchemaObject" import { InstantiableZodSchemaObject } from "./traits/InstantiableZodSchemaObject" +import { JsonifiableZodSchemaObject } from "./traits/JsonifiableZodSchemaObject" import { Extend, StaticMembers } from "./util" @@ -62,12 +63,8 @@ extends TraitExpressionBuilder { InstanceType & Values, ConstructorParameters > & - Simplify< - Extend<[ - StaticMembers, - StaticMembers, - ]> - > + StaticMembers & + StaticMembers ), [ @@ -128,14 +125,24 @@ extends TraitExpressionBuilder { class JsonifiableSchemas extends (this.expressionSuperclass as AbstractClass) { static readonly jsonifySchema = jsonifySchema + readonly jsonifySchema = jsonifySchema static readonly dejsonifySchema = dejsonifySchema + readonly dejsonifySchema = dejsonifySchema } return new ZodSchemaClassBuilder( - JsonifiableSchemas as unknown as Superclass & StaticMembers, + JsonifiableSchemas as unknown as ( + AbstractClass< + InstanceType & JsonifiableSchemas, + ConstructorParameters + > & + StaticMembers & + StaticMembers + ), [ ...this.expressionTraits, + JsonifiableZodSchemaObject, DejsonifiableZodSchemaObject, ], ) diff --git a/src/tests.ts b/src/tests.ts index 52cc5cc..36fbdd6 100644 --- a/src/tests.ts +++ b/src/tests.ts @@ -35,6 +35,7 @@ class User extends exp.extends implements Implements {} User.defaultValues const inst = User.create({ id: 1n, name: "" }) console.log(inst) +inst.jsonify() class SubTest extends User.extend({