Refactoring
All checks were successful
continuous-integration/drone/push Build is passing

This commit is contained in:
Julien Valverdé
2024-01-16 11:47:48 +01:00
parent e83c3a77be
commit 892ee29060
5 changed files with 74 additions and 43 deletions

View File

@@ -34,15 +34,25 @@ export function extendSchemableClass<
ExtendDefaultValues
>,
schemaApplier: (schema: C["schema"]) => z.ZodObject<
SchemaT,
SchemaUnknownKeys,
SchemaCatchall,
SchemaValues,
SchemaValues
>,
props: {
schema: (
schema: z.ZodObject<
ExtendSchemaT,
ExtendSchemaUnknownKeys,
ExtendSchemaCatchall,
ExtendSchemaValues,
ExtendSchemaValues
>
) => z.ZodObject<
SchemaT,
SchemaUnknownKeys,
SchemaCatchall,
SchemaValues,
SchemaValues
>
defaultValuesApplier: (defaultValues: ExtendDefaultValues) => DefaultValues,
defaultValues: (defaultValues: ExtendDefaultValues) => DefaultValues
},
) {
type Class<T, Arguments extends unknown[]> = (
C extends ConcreteClass<any>
@@ -50,8 +60,8 @@ export function extendSchemableClass<
: AbstractClass<T, Arguments>
)
const schema = schemaApplier(extend.schema)
const defaultValues = defaultValuesApplier(extend.defaultValues)
const schema = props.schema(extend.schema)
const defaultValues = props.defaultValues(extend.defaultValues)
return class extends extend {
static readonly schema = schema