From 56597350cd6a24b0588af09144ccc16f7fc5ada0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Julien=20Valverd=C3=A9?= Date: Tue, 16 Jan 2024 14:59:33 +0100 Subject: [PATCH] newSchemable refactoring --- src/newSchemable.ts | 34 +++++++++++++++++++--------------- 1 file changed, 19 insertions(+), 15 deletions(-) diff --git a/src/newSchemable.ts b/src/newSchemable.ts index 0166eb5..98a5498 100644 --- a/src/newSchemable.ts +++ b/src/newSchemable.ts @@ -13,7 +13,7 @@ type NewSchemableArgs = : [] | [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 > -) => - new class_( +) { + return new class_( class_.schema.parse({ ...class_.defaultValues, ...values }, params) ) as InstanceType +} -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 > -) => - new class_( +) { + return new class_( await class_.schema.parseAsync({ ...class_.defaultValues, ...values }, params) ) as InstanceType +} -export const newSchemableEffect = < +export function newSchemableEffect< C extends SchemableClass< SchemaT, SchemaUnknownKeys, @@ -112,12 +114,14 @@ export const newSchemableEffect = < ...[values, params]: NewSchemableArgs< SchemableClassInput > -) => pipe( - parseZodTypeEffect( - class_.schema, - { ...class_.defaultValues, ...values }, - params, - ), +) { + return pipe( + parseZodTypeEffect( + class_.schema, + { ...class_.defaultValues, ...values }, + params, + ), - Effect.map(values => new class_(values) as InstanceType), -) + Effect.map(values => new class_(values) as InstanceType), + ) +}