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