0.1.1 #2

Merged
Thilawyn merged 47 commits from next into master 2024-01-17 20:47:13 +01:00
2 changed files with 9 additions and 3 deletions
Showing only changes of commit 2d25c95a0a - Show all commits

View File

@@ -1,4 +1,4 @@
import { AbstractClass } from "type-fest"
import { AbstractClass, Class } from "type-fest"
import { z } from "zod"
import { SchemableClass } from "."
import { StaticMembers } from "./util"
@@ -43,6 +43,12 @@ export function extendSchemable<
defaultValuesApplier: (defaultValues: ExtendDefaultValues) => DefaultValues,
) {
type ClassKind<T, Arguments extends unknown[]> = (
C extends Class<any>
? Class<T, Arguments>
: AbstractClass<T, Arguments>
)
const schema = schemaApplier(extend.schema)
const defaultValues = defaultValuesApplier(extend.defaultValues)
@@ -53,7 +59,7 @@ export function extendSchemable<
static readonly defaultValues = defaultValues
readonly defaultValues = defaultValues
} as unknown as (
AbstractClass<
ClassKind<
Omit<C, "schema" | "defaultValues" | keyof ExtendSchemaValues> &
{
readonly schema: typeof schema,

View File

@@ -16,7 +16,7 @@ class Test1 {
const Test2 = extendSchemable(
Test1,
schema => schema.extend({ prout: z.literal("ruquier"), ruquier: z.number() }),
defaultValues => ({ prout: "ruquier" as const }),
() => ({ prout: "ruquier" as const }),
)
Test2.defaultValues