From 12b73e39e30adb22ea2f29d5b62e5f6848de4a6d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Julien=20Valverd=C3=A9?= Date: Sat, 9 Mar 2024 01:29:38 +0100 Subject: [PATCH] ZodSchemaClassBuilder work --- src/builders/ZodSchemaClassBuilder.ts | 12 +++++------- src/tests.ts | 12 ++++++------ src/traits/ZodSchemaObject.ts | 10 +++++----- 3 files changed, 16 insertions(+), 18 deletions(-) diff --git a/src/builders/ZodSchemaClassBuilder.ts b/src/builders/ZodSchemaClassBuilder.ts index 32d09df..eb5dceb 100644 --- a/src/builders/ZodSchemaClassBuilder.ts +++ b/src/builders/ZodSchemaClassBuilder.ts @@ -1,10 +1,9 @@ -import { Trait, TraitExpressionBuilder, expression } from "@thilawyn/traitify-ts" +import { Trait, TraitClass, TraitExpressionBuilder, expression } from "@thilawyn/traitify-ts" import { AbstractClass } from "type-fest" import { JsonifiableObject } from "type-fest/source/jsonifiable" import { z } from "zod" -import { ZodSchemaAbstractClass } from "../shapes/ZodSchemaClass" import { JsonifiableZodSchemaObject } from "../traits/JsonifiableZodSchemaObject" -import { ZodSchemaObject } from "../traits/ZodSchemaObject" +import { ZodSchemaObject, ZodSchemaObjectTrait } from "../traits/ZodSchemaObject" import { StaticMembers } from "../util" @@ -64,9 +63,8 @@ export class ZodSchemaClassBuilder< } jsonifiable< - Super extends ZodSchemaAbstractClass - & { jsonifySchema?: never, dejsonifySchema?: never }, - Instance extends Values, + Super extends TraitClass> + & { jsonifySchema?: never, dejsonifySchema?: never }, SchemaT extends z.ZodRawShape, SchemaUnknownKeys extends z.UnknownKeysParam, @@ -90,7 +88,7 @@ export class ZodSchemaClassBuilder< JsonifiedValues extends JsonifiableObject, >( this: ZodSchemaClassBuilder< - Super | ZodSchemaAbstractClass, + Super | TraitClass>, Traits >, diff --git a/src/tests.ts b/src/tests.ts index 296e483..676f6c4 100644 --- a/src/tests.ts +++ b/src/tests.ts @@ -18,15 +18,15 @@ const exp = zodSchemaClass id: s.shape.id.default(-1n), }), }) - .jsonifiable({ - jsonifySchema: s => s.extend({ + // .jsonifiable({ + // jsonifySchema: s => s.extend({ - }), + // }), - dejsonifySchema: s => s.extend({ + // dejsonifySchema: s => s.extend({ - }), - }) + // }), + // }) .expression .expresses(MobXObservableZodSchemaObject) .build() diff --git a/src/traits/ZodSchemaObject.ts b/src/traits/ZodSchemaObject.ts index 18cc34e..e866fdf 100644 --- a/src/traits/ZodSchemaObject.ts +++ b/src/traits/ZodSchemaObject.ts @@ -27,8 +27,8 @@ export const ZodSchemaObject = < schemaWithDefaultValues: z.ZodObject, ) => trait .implement(Super => class ZodSchemaObject extends Super { - static readonly schema = schema - static readonly schemaWithDefaultsValues = schemaWithDefaultValues + static readonly schema = schema + static readonly schemaWithDefaultValues = schemaWithDefaultValues static transform< Instance extends Values, @@ -56,7 +56,7 @@ export const ZodSchemaObject = < ...[values, params]: CreateArgs ) { return this - .transform(this.schemaWithDefaultsValues) + .transform(this.schemaWithDefaultValues) .parse(values, params) } @@ -70,7 +70,7 @@ export const ZodSchemaObject = < ...[values, params]: CreateArgs ) { return this - .transform(this.schemaWithDefaultsValues) + .transform(this.schemaWithDefaultValues) .parseAsync(values, params) } @@ -84,7 +84,7 @@ export const ZodSchemaObject = < ...[values, params]: CreateArgs ) { return parseZodSchemaEffect( - this.transform(this.schemaWithDefaultsValues), + this.transform(this.schemaWithDefaultValues), values, params, )