0.1.1 #2
@@ -60,3 +60,24 @@ export function makeSchemableClassFrom<
|
|||||||
}
|
}
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
export function makeSchemableClass<
|
||||||
|
SchemaT extends z.ZodRawShape,
|
||||||
|
SchemaUnknownKeys extends z.UnknownKeysParam,
|
||||||
|
SchemaCatchall extends z.ZodTypeAny,
|
||||||
|
SchemaValues extends {},
|
||||||
|
DefaultValues extends Partial<SchemaValues>,
|
||||||
|
>(
|
||||||
|
schema: z.ZodObject<
|
||||||
|
SchemaT,
|
||||||
|
SchemaUnknownKeys,
|
||||||
|
SchemaCatchall,
|
||||||
|
SchemaValues,
|
||||||
|
SchemaValues
|
||||||
|
>,
|
||||||
|
|
||||||
|
defaultValues: DefaultValues,
|
||||||
|
) {
|
||||||
|
return makeSchemableClassFrom(Object, schema, defaultValues)
|
||||||
|
}
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
import { z } from "zod"
|
import { z } from "zod"
|
||||||
import { extendSchemableClass, makeSchemableClassFrom } from "."
|
import { extendSchemableClass, makeSchemableClass, makeSchemableClassFrom } from "."
|
||||||
|
|
||||||
|
|
||||||
// class Test1 {
|
// class Test1 {
|
||||||
@@ -12,10 +12,7 @@ import { extendSchemableClass, makeSchemableClassFrom } from "."
|
|||||||
// prout: string = "heugneu"
|
// prout: string = "heugneu"
|
||||||
// }
|
// }
|
||||||
|
|
||||||
const Test1 = makeSchemableClassFrom(
|
const Test1 = makeSchemableClass(
|
||||||
class {
|
|
||||||
randomProperty: string = ""
|
|
||||||
},
|
|
||||||
z.object({ prout: z.string() }),
|
z.object({ prout: z.string() }),
|
||||||
{},
|
{},
|
||||||
)
|
)
|
||||||
@@ -30,7 +27,7 @@ const Test2 = extendSchemableClass(
|
|||||||
)
|
)
|
||||||
|
|
||||||
Test2.defaultValues
|
Test2.defaultValues
|
||||||
new Test2({ prout: "ruquier", ruquier: 69 }).randomProperty
|
new Test2({ prout: "ruquier", ruquier: 69 })
|
||||||
|
|
||||||
|
|
||||||
class Test3 extends Test2 {
|
class Test3 extends Test2 {
|
||||||
|
|||||||
Reference in New Issue
Block a user