Prevent makeSchemableClassFrom from being used with schemables
All checks were successful
continuous-integration/drone/push Build is passing

This commit is contained in:
Julien Valverdé
2024-01-11 03:39:41 +01:00
parent a9e53be440
commit b6bbda1246

View File

@@ -4,7 +4,13 @@ import { StaticMembers } from "./util"
export function makeSchemableClassFrom< export function makeSchemableClassFrom<
C extends AbstractClass<any, []>, C extends AbstractClass<{
schema?: never
defaultValues?: never
}, []> & {
schema?: never
defaultValues?: never
},
SchemaT extends z.ZodRawShape, SchemaT extends z.ZodRawShape,
SchemaUnknownKeys extends z.UnknownKeysParam, SchemaUnknownKeys extends z.UnknownKeysParam,
@@ -44,7 +50,7 @@ export function makeSchemableClassFrom<
} }
} as unknown as ( } as unknown as (
Class< Class<
Omit<InstanceType<C>, "schema" | "defaultValues"> & InstanceType<C> &
{ {
readonly schema: typeof schema, readonly schema: typeof schema,
readonly defaultValues: typeof defaultValues, readonly defaultValues: typeof defaultValues,
@@ -54,7 +60,7 @@ export function makeSchemableClassFrom<
Parameters<(values: Values) => void> Parameters<(values: Values) => void>
> & > &
Omit<StaticMembers<C>, "schema" | "defaultValues"> & StaticMembers<C> &
{ {
readonly schema: typeof schema, readonly schema: typeof schema,
readonly defaultValues: typeof defaultValues, readonly defaultValues: typeof defaultValues,