From a58b441094cb1a54d2d0fc4a83660ab46b969798 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Julien=20Valverd=C3=A9?= Date: Thu, 22 Feb 2024 04:52:36 +0100 Subject: [PATCH] ZodSchemaClassBuilder work --- src/ZodSchemaClass.ts | 13 ++++++++----- src/tests.ts | 12 +++++++----- 2 files changed, 15 insertions(+), 10 deletions(-) diff --git a/src/ZodSchemaClass.ts b/src/ZodSchemaClass.ts index 5145db6..db17a1c 100644 --- a/src/ZodSchemaClass.ts +++ b/src/ZodSchemaClass.ts @@ -48,8 +48,8 @@ extends TraitExpressionBuilder { } } - return this - .extends(Schemas as unknown as ( + return new ZodSchemaClassBuilder( + Schemas as unknown as ( AbstractClass< InstanceType & Simplify< @@ -64,11 +64,14 @@ extends TraitExpressionBuilder { StaticMembers, ]> > - )) - .expresses( + ), + + [ + ...this.expressionTraits, InstantiableZodSchemaObject, ExtendableZodSchemaObject, - ) + ], + ) } jsonifiable() { diff --git a/src/tests.ts b/src/tests.ts index 4ed7404..b99ef6b 100644 --- a/src/tests.ts +++ b/src/tests.ts @@ -7,13 +7,15 @@ import { ObservableZodSchemaObject } from "./traits/ObservableZodSchemaObject" const newTestExp = new ZodSchemaClassBuilder(TraitExpression.NullSuperclass, []) .schema( z.object({ - id: z.bigint() + /** Object ID */ + id: z.bigint(), + name: z.string(), }), { id: -1n }, ) - .expressionSuperclass - + .expresses(ObservableZodSchemaObject) + .build() const TestExp = ZodSchemaClass({ schema: z.object({ @@ -27,8 +29,8 @@ const TestExp = ZodSchemaClass({ .expresses(ObservableZodSchemaObject) .build() -@TestExp.staticImplements -class Test extends TestExp.extends implements Implements {} +@newTestExp.staticImplements +class Test extends newTestExp.extends implements Implements {} Test.schema const inst = Test.create({ id: 1n, name: "" })