diff --git a/src/traits/ZodSchemaObject.ts b/src/traits/ZodSchemaObject.ts index b9846eb..05fb8c5 100644 --- a/src/traits/ZodSchemaObject.ts +++ b/src/traits/ZodSchemaObject.ts @@ -24,6 +24,7 @@ export const ZodSchemaObject = < static readonly schema = stripZodObjectDefaults(schemaWithDefaults) static readonly schemaWithDefaults = schemaWithDefaults + static pipeSchemaIntoInstance< Instance extends Values, @@ -39,6 +40,25 @@ export const ZodSchemaObject = < return schema.transform(values => new this(values)) } + static pipeInstanceIntoSchema< + Instance extends Values, + + SchemaT extends z.ZodRawShape, + SchemaUnknownKeys extends z.UnknownKeysParam, + SchemaCatchall extends z.ZodTypeAny, + SchemaOutput, + SchemaInput extends Values, + >( + this: ( + Class & + ImplStatic + ), + + schema: z.ZodObject, + ) { + return schema.transform(values => new this(values)) + } + static create< Instance extends Values