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 c423e998bf - Show all commits

View File

@@ -1,4 +1,4 @@
import { AbstractClass, Class } from "type-fest"
import { AbstractClass, Class as ConcreteClass } from "type-fest"
import { z } from "zod"
import { SchemableClass } from "."
import { StaticMembers } from "./util"
@@ -23,6 +23,7 @@ export function extendSchemableClass<
SchemaUnknownKeys extends z.UnknownKeysParam,
SchemaCatchall extends z.ZodTypeAny,
SchemaValues extends ExtendSchemaValues,
DefaultValues extends Partial<SchemaValues>,
>(
extend: C | SchemableClass<
@@ -43,9 +44,9 @@ export function extendSchemableClass<
defaultValuesApplier: (defaultValues: ExtendDefaultValues) => DefaultValues,
) {
type ClassKind<T, Arguments extends unknown[]> = (
C extends Class<any>
? Class<T, Arguments>
type Class<T, Arguments extends unknown[]> = (
C extends ConcreteClass<any>
? ConcreteClass<T, Arguments>
: AbstractClass<T, Arguments>
)
@@ -59,7 +60,7 @@ export function extendSchemableClass<
static readonly defaultValues = defaultValues
readonly defaultValues = defaultValues
} as unknown as (
ClassKind<
Class<
Omit<InstanceType<C>, "schema" | "defaultValues" | keyof ExtendSchemaValues> &
{
readonly schema: typeof schema,