Fixed instance inference
All checks were successful
continuous-integration/drone/push Build is passing

This commit is contained in:
Julien Valverdé
2024-02-09 01:15:23 +01:00
parent 0d20e7ad69
commit a4d4c87f54
4 changed files with 34 additions and 13 deletions

View File

@@ -31,7 +31,7 @@ export const InstantiableZodSchemaObject = trait(
Super => class InstantiableZodSchemaObject extends Super {
static create<
Self extends ZodSchemaClass<SchemaT, SchemaUnknownKeys, SchemaCatchall, Values, DefaultValues>,
Instance extends Values,
SchemaT extends z.ZodRawShape,
SchemaUnknownKeys extends z.UnknownKeysParam,
@@ -40,7 +40,7 @@ export const InstantiableZodSchemaObject = trait(
Values extends {},
DefaultValues extends Partial<Values>,
>(
this: Self | ZodSchemaClass<SchemaT, SchemaUnknownKeys, SchemaCatchall, Values, DefaultValues>,
this: ZodSchemaClass<Instance, SchemaT, SchemaUnknownKeys, SchemaCatchall, Values, DefaultValues>,
...[values, params]: NewZodSchemaInstanceArgs<
NewZodSchemaInstanceInput<Values, DefaultValues>
@@ -48,11 +48,11 @@ export const InstantiableZodSchemaObject = trait(
) {
return new this(
this.schema.parse({ ...this.defaultValues, ...values }, params)
) as InstanceType<Self>
)
}
static async createPromise<
Self extends ZodSchemaClass<SchemaT, SchemaUnknownKeys, SchemaCatchall, Values, DefaultValues>,
Instance extends Values,
SchemaT extends z.ZodRawShape,
SchemaUnknownKeys extends z.UnknownKeysParam,
@@ -61,7 +61,7 @@ export const InstantiableZodSchemaObject = trait(
Values extends {},
DefaultValues extends Partial<Values>,
>(
this: Self | ZodSchemaClass<SchemaT, SchemaUnknownKeys, SchemaCatchall, Values, DefaultValues>,
this: ZodSchemaClass<Instance, SchemaT, SchemaUnknownKeys, SchemaCatchall, Values, DefaultValues>,
...[values, params]: NewZodSchemaInstanceArgs<
NewZodSchemaInstanceInput<Values, DefaultValues>
@@ -69,11 +69,11 @@ export const InstantiableZodSchemaObject = trait(
) {
return new this(
await this.schema.parseAsync({ ...this.defaultValues, ...values }, params)
) as InstanceType<Self>
)
}
static createEffect<
Self extends ZodSchemaClass<SchemaT, SchemaUnknownKeys, SchemaCatchall, Values, DefaultValues>,
Instance extends Values,
SchemaT extends z.ZodRawShape,
SchemaUnknownKeys extends z.UnknownKeysParam,
@@ -82,7 +82,7 @@ export const InstantiableZodSchemaObject = trait(
Values extends {},
DefaultValues extends Partial<Values>,
>(
this: Self | ZodSchemaClass<SchemaT, SchemaUnknownKeys, SchemaCatchall, Values, DefaultValues>,
this: ZodSchemaClass<Instance, SchemaT, SchemaUnknownKeys, SchemaCatchall, Values, DefaultValues>,
...[values, params]: NewZodSchemaInstanceArgs<
NewZodSchemaInstanceInput<Values, DefaultValues>
@@ -95,8 +95,12 @@ export const InstantiableZodSchemaObject = trait(
params,
),
Effect.map(values => new this(values) as InstanceType<Self>),
Effect.map(values => new this(values)),
)
}
protected static initialize() {
}
},
)