44 lines
1.3 KiB
TypeScript
44 lines
1.3 KiB
TypeScript
import { AbstractClass, Class } from "type-fest"
|
|
import { z } from "zod"
|
|
|
|
|
|
export type ZodSchemaClass<
|
|
Instance extends Values,
|
|
|
|
SchemaT extends z.ZodRawShape,
|
|
SchemaUnknownKeys extends z.UnknownKeysParam,
|
|
SchemaCatchall extends z.ZodTypeAny,
|
|
|
|
Values extends object,
|
|
DefaultValues extends Partial<Values>,
|
|
> = (
|
|
Class<Instance, [values: Values]> &
|
|
ZodSchemas<SchemaT, SchemaUnknownKeys, SchemaCatchall, Values, DefaultValues>
|
|
)
|
|
|
|
export type ZodSchemaAbstractClass<
|
|
Instance extends Values,
|
|
|
|
SchemaT extends z.ZodRawShape,
|
|
SchemaUnknownKeys extends z.UnknownKeysParam,
|
|
SchemaCatchall extends z.ZodTypeAny,
|
|
|
|
Values extends object,
|
|
DefaultValues extends Partial<Values>,
|
|
> = (
|
|
AbstractClass<Instance, [values: Values]> &
|
|
ZodSchemas<SchemaT, SchemaUnknownKeys, SchemaCatchall, Values, DefaultValues>
|
|
)
|
|
|
|
export type ZodSchemas<
|
|
SchemaT extends z.ZodRawShape,
|
|
SchemaUnknownKeys extends z.UnknownKeysParam,
|
|
SchemaCatchall extends z.ZodTypeAny,
|
|
|
|
Values extends object,
|
|
DefaultValues extends Partial<Values>,
|
|
> = {
|
|
readonly schema: z.ZodObject<SchemaT, SchemaUnknownKeys, SchemaCatchall, Values, Values>
|
|
readonly defaultValues: DefaultValues
|
|
}
|