ZodSchemaClassOf refactoring
All checks were successful
continuous-integration/drone/push Build is passing

This commit is contained in:
Julien Valverdé
2024-01-24 21:49:19 +01:00
parent 516ce0ade2
commit 147034e95d

View File

@@ -2,7 +2,7 @@ import { Effect, pipe } from "effect"
import { AbstractClass, Class as ConcreteClass, Opaque } from "type-fest"
import { z } from "zod"
import { DefinedDefaultValuesTag, NewZodSchemaInstanceArgs, NewZodSchemaInstanceInput, TZodSchemaClass } from "."
import { StaticMembers, parseZodTypeEffect } from "./util"
import { Class, GetClassType, StaticMembers, parseZodTypeEffect } from "./util"
type ExtendableClass = AbstractClass<any, []> & {
@@ -27,12 +27,6 @@ export function ZodSchemaClassOf<
defaultValues: Opaque<DefaultValues, DefinedDefaultValuesTag>
},
) {
type Class<T, Arguments extends unknown[]> = (
Parent extends ConcreteClass<any>
? ConcreteClass<T, Arguments>
: AbstractClass<T, Arguments>
)
type TZodSchemaClassImpl = TZodSchemaClass<
SchemaT,
SchemaUnknownKeys,
@@ -118,6 +112,8 @@ export function ZodSchemaClassOf<
}
} as unknown as (
Class<
GetClassType<Parent>,
InstanceType<Parent> &
InstanceType<TZodSchemaClassImpl>,