0.1.1 #2
@@ -13,7 +13,7 @@ type NewSchemableArgs<Input extends object> =
|
|||||||
: [] | [values: Input, ...args: ParamsArgs]
|
: [] | [values: Input, ...args: ParamsArgs]
|
||||||
|
|
||||||
|
|
||||||
export const newSchemable = <
|
export function newSchemable<
|
||||||
C extends SchemableClass<
|
C extends SchemableClass<
|
||||||
SchemaT,
|
SchemaT,
|
||||||
SchemaUnknownKeys,
|
SchemaUnknownKeys,
|
||||||
@@ -42,13 +42,14 @@ export const newSchemable = <
|
|||||||
...[values, params]: NewSchemableArgs<
|
...[values, params]: NewSchemableArgs<
|
||||||
SchemableClassInput<Values, DefaultValues>
|
SchemableClassInput<Values, DefaultValues>
|
||||||
>
|
>
|
||||||
) =>
|
) {
|
||||||
new class_(
|
return new class_(
|
||||||
class_.schema.parse({ ...class_.defaultValues, ...values }, params)
|
class_.schema.parse({ ...class_.defaultValues, ...values }, params)
|
||||||
) as InstanceType<C>
|
) as InstanceType<C>
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
export const newSchemablePromise = async <
|
export async function newSchemablePromise<
|
||||||
C extends SchemableClass<
|
C extends SchemableClass<
|
||||||
SchemaT,
|
SchemaT,
|
||||||
SchemaUnknownKeys,
|
SchemaUnknownKeys,
|
||||||
@@ -77,13 +78,14 @@ export const newSchemablePromise = async <
|
|||||||
...[values, params]: NewSchemableArgs<
|
...[values, params]: NewSchemableArgs<
|
||||||
SchemableClassInput<Values, DefaultValues>
|
SchemableClassInput<Values, DefaultValues>
|
||||||
>
|
>
|
||||||
) =>
|
) {
|
||||||
new class_(
|
return new class_(
|
||||||
await class_.schema.parseAsync({ ...class_.defaultValues, ...values }, params)
|
await class_.schema.parseAsync({ ...class_.defaultValues, ...values }, params)
|
||||||
) as InstanceType<C>
|
) as InstanceType<C>
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
export const newSchemableEffect = <
|
export function newSchemableEffect<
|
||||||
C extends SchemableClass<
|
C extends SchemableClass<
|
||||||
SchemaT,
|
SchemaT,
|
||||||
SchemaUnknownKeys,
|
SchemaUnknownKeys,
|
||||||
@@ -112,12 +114,14 @@ export const newSchemableEffect = <
|
|||||||
...[values, params]: NewSchemableArgs<
|
...[values, params]: NewSchemableArgs<
|
||||||
SchemableClassInput<Values, DefaultValues>
|
SchemableClassInput<Values, DefaultValues>
|
||||||
>
|
>
|
||||||
) => pipe(
|
) {
|
||||||
parseZodTypeEffect(
|
return pipe(
|
||||||
class_.schema,
|
parseZodTypeEffect(
|
||||||
{ ...class_.defaultValues, ...values },
|
class_.schema,
|
||||||
params,
|
{ ...class_.defaultValues, ...values },
|
||||||
),
|
params,
|
||||||
|
),
|
||||||
|
|
||||||
Effect.map(values => new class_(values) as InstanceType<C>),
|
Effect.map(values => new class_(values) as InstanceType<C>),
|
||||||
)
|
)
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user