0.1.1 #2
@@ -1,8 +1,9 @@
|
|||||||
import { Effect } from "effect"
|
import { Effect } from "effect"
|
||||||
|
import { AbstractClass, Class as ConcreteClass } from "type-fest"
|
||||||
import { JsonifiableObject } from "type-fest/source/jsonifiable"
|
import { JsonifiableObject } from "type-fest/source/jsonifiable"
|
||||||
import { z } from "zod"
|
import { z } from "zod"
|
||||||
import { SchemableClass } from ".."
|
import { SchemableClass } from ".."
|
||||||
import { Class, ClassType, StaticMembers, parseZodTypeEffect } from "../util"
|
import { StaticMembers, parseZodTypeEffect } from "../util"
|
||||||
|
|
||||||
|
|
||||||
export type MakeJsonifiableSchemableClassProps<
|
export type MakeJsonifiableSchemableClassProps<
|
||||||
@@ -66,8 +67,7 @@ export function makeJsonifiableSchemableClass<
|
|||||||
SchemaUnknownKeys,
|
SchemaUnknownKeys,
|
||||||
SchemaCatchall,
|
SchemaCatchall,
|
||||||
Values,
|
Values,
|
||||||
DefaultValues,
|
DefaultValues
|
||||||
Type
|
|
||||||
>,
|
>,
|
||||||
|
|
||||||
SchemaT extends z.ZodRawShape,
|
SchemaT extends z.ZodRawShape,
|
||||||
@@ -86,16 +86,13 @@ export function makeJsonifiableSchemableClass<
|
|||||||
DejsonifySchemaCatchall extends z.ZodTypeAny,
|
DejsonifySchemaCatchall extends z.ZodTypeAny,
|
||||||
|
|
||||||
JsonifiedValues extends JsonifiableObject,
|
JsonifiedValues extends JsonifiableObject,
|
||||||
|
|
||||||
Type extends ClassType = "AbstractClass",
|
|
||||||
>(
|
>(
|
||||||
extend: C | SchemableClass<
|
extend: C | SchemableClass<
|
||||||
SchemaT,
|
SchemaT,
|
||||||
SchemaUnknownKeys,
|
SchemaUnknownKeys,
|
||||||
SchemaCatchall,
|
SchemaCatchall,
|
||||||
Values,
|
Values,
|
||||||
DefaultValues,
|
DefaultValues
|
||||||
Type
|
|
||||||
>,
|
>,
|
||||||
|
|
||||||
props: MakeJsonifiableSchemableClassProps<
|
props: MakeJsonifiableSchemableClassProps<
|
||||||
@@ -116,6 +113,12 @@ export function makeJsonifiableSchemableClass<
|
|||||||
JsonifiedValues
|
JsonifiedValues
|
||||||
>,
|
>,
|
||||||
) {
|
) {
|
||||||
|
type Class<T, Arguments extends unknown[]> = (
|
||||||
|
C extends ConcreteClass<any>
|
||||||
|
? ConcreteClass<T, Arguments>
|
||||||
|
: AbstractClass<T, Arguments>
|
||||||
|
)
|
||||||
|
|
||||||
const jsonifySchema = props.jsonifySchema({
|
const jsonifySchema = props.jsonifySchema({
|
||||||
schema: extend.schema,
|
schema: extend.schema,
|
||||||
shape: extend.schema.shape,
|
shape: extend.schema.shape,
|
||||||
@@ -146,8 +149,6 @@ export function makeJsonifiableSchemableClass<
|
|||||||
}
|
}
|
||||||
} as unknown as (
|
} as unknown as (
|
||||||
Class<
|
Class<
|
||||||
Type,
|
|
||||||
|
|
||||||
InstanceType<C> & {
|
InstanceType<C> & {
|
||||||
readonly jsonifySchema: typeof jsonifySchema,
|
readonly jsonifySchema: typeof jsonifySchema,
|
||||||
readonly dejsonifySchema: typeof dejsonifySchema,
|
readonly dejsonifySchema: typeof dejsonifySchema,
|
||||||
@@ -210,19 +211,15 @@ export function pipeMakeJsonifiableSchemableClass<
|
|||||||
SchemaUnknownKeys,
|
SchemaUnknownKeys,
|
||||||
SchemaCatchall,
|
SchemaCatchall,
|
||||||
Values,
|
Values,
|
||||||
DefaultValues,
|
DefaultValues
|
||||||
Type
|
>
|
||||||
>,
|
|
||||||
|
|
||||||
Type extends ClassType = "AbstractClass",
|
|
||||||
>(
|
>(
|
||||||
extend: C | SchemableClass<
|
extend: C | SchemableClass<
|
||||||
SchemaT,
|
SchemaT,
|
||||||
SchemaUnknownKeys,
|
SchemaUnknownKeys,
|
||||||
SchemaCatchall,
|
SchemaCatchall,
|
||||||
Values,
|
Values,
|
||||||
DefaultValues,
|
DefaultValues
|
||||||
Type
|
|
||||||
>
|
>
|
||||||
) => makeJsonifiableSchemableClass(extend, props)
|
) => makeJsonifiableSchemableClass(extend, props)
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user