0.1.1 #2

Merged
Thilawyn merged 47 commits from next into master 2024-01-17 20:47:13 +01:00
Showing only changes of commit 56597350cd - Show all commits

View File

@@ -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,12 +114,14 @@ export const newSchemableEffect = <
...[values, params]: NewSchemableArgs<
SchemableClassInput<Values, DefaultValues>
>
) => 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<C>),
)
Effect.map(values => new class_(values) as InstanceType<C>),
)
}