This commit is contained in:
@@ -62,6 +62,58 @@ export class ZodSchemaClassExtender<Superclass extends AbstractClass<object>> {
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
jsonifiable<
|
||||||
|
Super extends ZodSchemaAbstractClass<SuperInstance, SuperSchemaT, SuperSchemaUnknownKeys, SuperSchemaCatchall, SuperValues, SuperDefaultValues>,
|
||||||
|
SuperInstance extends SuperValues,
|
||||||
|
|
||||||
|
SuperSchemaT extends z.ZodRawShape,
|
||||||
|
SuperSchemaUnknownKeys extends z.UnknownKeysParam,
|
||||||
|
SuperSchemaCatchall extends z.ZodTypeAny,
|
||||||
|
|
||||||
|
SuperValues extends object,
|
||||||
|
SuperDefaultValues extends Partial<SuperValues>,
|
||||||
|
|
||||||
|
SchemaT extends z.ZodRawShape,
|
||||||
|
SchemaUnknownKeys extends z.UnknownKeysParam,
|
||||||
|
SchemaCatchall extends z.ZodTypeAny,
|
||||||
|
|
||||||
|
Values extends SuperValues,
|
||||||
|
DefaultValues extends Partial<Values>,
|
||||||
|
>(
|
||||||
|
this: ZodSchemaClassExtender<
|
||||||
|
Super | ZodSchemaAbstractClass<SuperInstance, SuperSchemaT, SuperSchemaUnknownKeys, SuperSchemaCatchall, SuperValues, SuperDefaultValues>
|
||||||
|
>,
|
||||||
|
|
||||||
|
props: {
|
||||||
|
schema: (schema: Super["schema"]) => z.ZodObject<SchemaT, SchemaUnknownKeys, SchemaCatchall, Values, Values>
|
||||||
|
defaultValues: (defaultValues: SuperDefaultValues) => DefaultValues
|
||||||
|
},
|
||||||
|
) {
|
||||||
|
const schema = props.schema(this.superclass.schema)
|
||||||
|
const defaultValues = props.defaultValues(this.superclass.defaultValues)
|
||||||
|
|
||||||
|
class Schemas extends (this.superclass as AbstractClass<object, any[]>) {
|
||||||
|
static readonly schema = schema
|
||||||
|
static readonly defaultValues = defaultValues
|
||||||
|
}
|
||||||
|
|
||||||
|
return new this.constructor(
|
||||||
|
Schemas as unknown as AbstractClass<
|
||||||
|
Simplify<
|
||||||
|
Extend<[SuperInstance, Values]>
|
||||||
|
>,
|
||||||
|
|
||||||
|
[values: Values]
|
||||||
|
> &
|
||||||
|
Simplify<
|
||||||
|
Override<[
|
||||||
|
StaticMembers<Super>,
|
||||||
|
StaticMembers<typeof Schemas>,
|
||||||
|
]>
|
||||||
|
>
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
build() {
|
build() {
|
||||||
return this.superclass
|
return this.superclass
|
||||||
|
|||||||
Reference in New Issue
Block a user