diff --git a/src/tests.ts b/src/tests.ts index 235964b..d623794 100644 --- a/src/tests.ts +++ b/src/tests.ts @@ -11,23 +11,32 @@ class Test extends ZodSchemaClass({ defaultValues: { id: -1n }, }) {} +const Test2 = ZodSchemaClass({ + schema: z.object({ + id: z.bigint(), + name: z.string(), + }), + + defaultValues: { id: -1n }, +}) + Test.defaultValues -const inst = await Test.createPromise({ id: 1n, name: "" }) +const inst = Test.create({ id: 1n, name: "" }) -class SubTest extends Test.extend({ - schema: ({ schema }) => schema.extend({ - prout: z.string() - }), +// class SubTest extends Test.extend({ +// schema: ({ schema }) => schema.extend({ +// prout: z.string() +// }), - defaultValues: defaultValues => defineDefaultValues({ - ...defaultValues - }), -}) {} +// defaultValues: defaultValues => defineDefaultValues({ +// ...defaultValues +// }), +// }) {} -const subInst = await SubTest.createPromise({ name: "", prout: "" }) +// const subInst = await SubTest.createPromise({ name: "", prout: "" }) -console.log(subInst) +// console.log(subInst) // class ChildTest extends Test {} diff --git a/src/traits/InstantiableZodSchemaObject.ts b/src/traits/InstantiableZodSchemaObject.ts index 2701350..fbfe244 100644 --- a/src/traits/InstantiableZodSchemaObject.ts +++ b/src/traits/InstantiableZodSchemaObject.ts @@ -6,7 +6,7 @@ import { NewZodSchemaInstanceArgs, NewZodSchemaInstanceInput } from ".." import { parseZodTypeEffect } from "../util" -type ZodSchemaClassStatic< +export type ZodSchemaClassStatic< SchemaT extends z.ZodRawShape, SchemaUnknownKeys extends z.UnknownKeysParam, SchemaCatchall extends z.ZodTypeAny, @@ -33,7 +33,7 @@ export const InstantiableZodSchemaObject = trait( Values extends {}, DefaultValues extends Partial, >( - this: Self, + this: Self | Class & ZodSchemaClassStatic, ...[values, params]: NewZodSchemaInstanceArgs< NewZodSchemaInstanceInput @@ -54,7 +54,7 @@ export const InstantiableZodSchemaObject = trait( Values extends {}, DefaultValues extends Partial, >( - this: Self, + this: Self | Class & ZodSchemaClassStatic, ...[values, params]: NewZodSchemaInstanceArgs< NewZodSchemaInstanceInput @@ -75,7 +75,7 @@ export const InstantiableZodSchemaObject = trait( Values extends {}, DefaultValues extends Partial, >( - this: Self, + this: Self | Class & ZodSchemaClassStatic, ...[values, params]: NewZodSchemaInstanceArgs< NewZodSchemaInstanceInput