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 24 additions and 6 deletions
Showing only changes of commit e147b61f89 - Show all commits

View File

@@ -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)
}

View File

@@ -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 {