0.1.2 #3
@@ -2,7 +2,7 @@ import { Effect } from "effect"
|
|||||||
import { AbstractClass, Class as ConcreteClass, HasRequiredKeys, Opaque } from "type-fest"
|
import { AbstractClass, Class as ConcreteClass, HasRequiredKeys, Opaque } from "type-fest"
|
||||||
import { z } from "zod"
|
import { z } from "zod"
|
||||||
import { DefinedDefaultValuesTag } from "."
|
import { DefinedDefaultValuesTag } from "."
|
||||||
import { Class, ClassType, GetClassType, StaticMembers } from "./util"
|
import { Class, ClassType, ClassesInstances, ClassesStaticMembers, GetClassType, MergeInheritanceTree } from "./util"
|
||||||
|
|
||||||
|
|
||||||
export type NewZodSchemaInstanceInput<
|
export type NewZodSchemaInstanceInput<
|
||||||
@@ -25,20 +25,22 @@ export type NewZodSchemaInstanceArgs<Input extends object> =
|
|||||||
|
|
||||||
|
|
||||||
type ExtendZodSchemaClass<
|
type ExtendZodSchemaClass<
|
||||||
Parent extends AbstractClass<any>,
|
Super extends AbstractClass<any>,
|
||||||
Self extends AbstractClass<any>,
|
Self extends AbstractClass<any>,
|
||||||
> = (
|
> = (
|
||||||
Class<
|
Class<
|
||||||
GetClassType<Parent>,
|
GetClassType<Super>,
|
||||||
|
|
||||||
Omit<InstanceType<Parent>, keyof InstanceType<DefaultZodSchemaClass>> &
|
MergeInheritanceTree<
|
||||||
InstanceType<Self>,
|
ClassesInstances<[Super, Self]>
|
||||||
|
>,
|
||||||
|
|
||||||
ConstructorParameters<Self>
|
ConstructorParameters<Self>
|
||||||
> &
|
> &
|
||||||
|
|
||||||
Omit<Parent, keyof DefaultZodSchemaClass> &
|
MergeInheritanceTree<
|
||||||
StaticMembers<Self>
|
ClassesStaticMembers<[Super, Self]>
|
||||||
|
>
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
@@ -82,7 +84,7 @@ export type TZodSchemaClass<
|
|||||||
): Effect.Effect<never, z.ZodError<Values>, Values>
|
): Effect.Effect<never, z.ZodError<Values>, Values>
|
||||||
|
|
||||||
extend<
|
extend<
|
||||||
Parent extends AbstractClass<any>,
|
Super extends AbstractClass<any>,
|
||||||
|
|
||||||
ExtendedSchemaT extends z.ZodRawShape,
|
ExtendedSchemaT extends z.ZodRawShape,
|
||||||
ExtendedSchemaUnknownKeys extends z.UnknownKeysParam,
|
ExtendedSchemaUnknownKeys extends z.UnknownKeysParam,
|
||||||
@@ -91,7 +93,7 @@ export type TZodSchemaClass<
|
|||||||
ExtendedValues extends Values,
|
ExtendedValues extends Values,
|
||||||
ExtendedDefaultValues extends Partial<ExtendedValues>,
|
ExtendedDefaultValues extends Partial<ExtendedValues>,
|
||||||
>(
|
>(
|
||||||
this: Parent,
|
this: Super,
|
||||||
|
|
||||||
props: {
|
props: {
|
||||||
schema: (props: {
|
schema: (props: {
|
||||||
@@ -102,7 +104,7 @@ export type TZodSchemaClass<
|
|||||||
defaultValues: (defaultValues: DefaultValues) => Opaque<ExtendedDefaultValues, DefinedDefaultValuesTag>
|
defaultValues: (defaultValues: DefaultValues) => Opaque<ExtendedDefaultValues, DefinedDefaultValuesTag>
|
||||||
},
|
},
|
||||||
): ExtendZodSchemaClass<
|
): ExtendZodSchemaClass<
|
||||||
Parent,
|
Super,
|
||||||
|
|
||||||
TZodSchemaClass<
|
TZodSchemaClass<
|
||||||
ExtendedSchemaT,
|
ExtendedSchemaT,
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ import { Class, GetClassType, MergeInheritanceTree, MergeInheritanceTreeWithoutO
|
|||||||
|
|
||||||
|
|
||||||
export function ZodSchemaClassOf<
|
export function ZodSchemaClassOf<
|
||||||
Parent extends AbstractClass<any, []>,
|
Super extends AbstractClass<any, []>,
|
||||||
|
|
||||||
SchemaT extends z.ZodRawShape,
|
SchemaT extends z.ZodRawShape,
|
||||||
SchemaUnknownKeys extends z.UnknownKeysParam,
|
SchemaUnknownKeys extends z.UnknownKeysParam,
|
||||||
@@ -15,7 +15,7 @@ export function ZodSchemaClassOf<
|
|||||||
Values extends {},
|
Values extends {},
|
||||||
DefaultValues extends Partial<Values>,
|
DefaultValues extends Partial<Values>,
|
||||||
>(
|
>(
|
||||||
of: Parent,
|
of: Super,
|
||||||
|
|
||||||
{ schema, defaultValues }: {
|
{ schema, defaultValues }: {
|
||||||
schema: z.ZodObject<SchemaT, SchemaUnknownKeys, SchemaCatchall, Values, Values>
|
schema: z.ZodObject<SchemaT, SchemaUnknownKeys, SchemaCatchall, Values, Values>
|
||||||
@@ -107,10 +107,10 @@ export function ZodSchemaClassOf<
|
|||||||
}
|
}
|
||||||
} as unknown as (
|
} as unknown as (
|
||||||
Class<
|
Class<
|
||||||
GetClassType<Parent>,
|
GetClassType<Super>,
|
||||||
|
|
||||||
MergeInheritanceTreeWithoutOverriding<[
|
MergeInheritanceTreeWithoutOverriding<[
|
||||||
InstanceType<Parent>,
|
InstanceType<Super>,
|
||||||
InstanceType<TZodSchemaClassImpl>,
|
InstanceType<TZodSchemaClassImpl>,
|
||||||
]> &
|
]> &
|
||||||
|
|
||||||
@@ -118,13 +118,15 @@ export function ZodSchemaClassOf<
|
|||||||
> &
|
> &
|
||||||
|
|
||||||
MergeInheritanceTree<[
|
MergeInheritanceTree<[
|
||||||
StaticMembers<Parent>,
|
StaticMembers<Super>,
|
||||||
StaticMembers<TZodSchemaClassImpl>,
|
StaticMembers<TZodSchemaClassImpl>,
|
||||||
]>
|
]>
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
class DefaultRoot {}
|
||||||
|
|
||||||
export function ZodSchemaClass<
|
export function ZodSchemaClass<
|
||||||
SchemaT extends z.ZodRawShape,
|
SchemaT extends z.ZodRawShape,
|
||||||
SchemaUnknownKeys extends z.UnknownKeysParam,
|
SchemaUnknownKeys extends z.UnknownKeysParam,
|
||||||
@@ -138,5 +140,5 @@ export function ZodSchemaClass<
|
|||||||
defaultValues: Opaque<DefaultValues, DefinedDefaultValuesTag>
|
defaultValues: Opaque<DefaultValues, DefinedDefaultValuesTag>
|
||||||
},
|
},
|
||||||
) {
|
) {
|
||||||
return ZodSchemaClassOf(Object, props)
|
return ZodSchemaClassOf(DefaultRoot, props)
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user