Static trait refactoring
Some checks failed
continuous-integration/drone/push Build is failing

This commit is contained in:
Julien Valverdé
2024-03-22 22:12:23 +01:00
parent 94bb187219
commit 1910c9ff9f
3 changed files with 36 additions and 48 deletions

View File

@@ -1,4 +1,4 @@
import { ImplStatic, trait } from "@thilawyn/traitify-ts"
import { implStaticInstantiableThis, trait } from "@thilawyn/traitify-ts"
import { Class, HasRequiredKeys } from "type-fest"
import { z } from "zod"
import { parseZodSchemaEffect, stripZodObjectDefaults } from "../util"
@@ -59,42 +59,36 @@ export const ZodSchemaObject = <
static create<
Instance extends Values
>(
this: (
Class<Instance, [values: Values]> &
ImplStatic<typeof ZodSchemaObjectImpl>
),
this: Class<Instance, [values: Values]>,
...[values, params]: CreateArgs<PartialValues>
) {
return this
.pipeSchemaIntoInstance(this.schemaWithDefaults)
const t = implStaticInstantiableThis(ZodSchemaObjectImpl, this)
return t
.pipeSchemaIntoInstance(t.schemaWithDefaults)
.parse(values, params)
}
static createPromise<
Instance extends Values
>(
this: (
Class<Instance, [values: Values]> &
ImplStatic<typeof ZodSchemaObjectImpl>
),
this: Class<Instance, [values: Values]>,
...[values, params]: CreateArgs<PartialValues>
) {
return this
.pipeSchemaIntoInstance(this.schemaWithDefaults)
const t = implStaticInstantiableThis(ZodSchemaObjectImpl, this)
return t
.pipeSchemaIntoInstance(t.schemaWithDefaults)
.parseAsync(values, params)
}
static createEffect<
Instance extends Values
>(
this: (
Class<Instance, [values: Values]> &
ImplStatic<typeof ZodSchemaObjectImpl>
),
this: Class<Instance, [values: Values]>,
...[values, params]: CreateArgs<PartialValues>
) {
const t = implStaticInstantiableThis(ZodSchemaObjectImpl, this)
return parseZodSchemaEffect(
this.pipeSchemaIntoInstance(this.schemaWithDefaults),
t.pipeSchemaIntoInstance(t.schemaWithDefaults),
values,
params,
)