This commit is contained in:
38
src/tests.ts
38
src/tests.ts
@@ -1,7 +1,6 @@
|
||||
import { Implements } from "@thilawyn/traitify-ts"
|
||||
import { Option } from "effect"
|
||||
import { z } from "zod"
|
||||
import { JsonifiedZodSchemaClass } from "./JsonifiedZodSchemaClass"
|
||||
import { ZodSchemaClass } from "./ZodSchemaClass"
|
||||
import { dejsonify, jsonify } from "./schema/jsonified"
|
||||
import { jsonifyBigIntSchema } from "./schema/jsonified/bigint"
|
||||
@@ -44,23 +43,34 @@ const jsonifiedBigIntOptionSome = jsonify.option.some(
|
||||
)
|
||||
type T2 = z.output<typeof jsonifiedBigIntOptionSome>
|
||||
|
||||
const jsonifiedBigIntOptionNone = jsonify.option.none(
|
||||
effect.option.none(z.bigint()),
|
||||
jsonifyBigIntSchema,
|
||||
)
|
||||
type T3 = z.output<typeof jsonifiedBigIntOptionNone>
|
||||
|
||||
const jsonifiedUserExp = JsonifiedZodSchemaClass(User, {
|
||||
jsonifySchema: s => s.extend({
|
||||
id: jsonify.bigint(s.shape.id)
|
||||
}),
|
||||
|
||||
dejsonifySchema: s => s.extend({
|
||||
id: dejsonify.bigint(s.shape.id)
|
||||
}),
|
||||
}).build()
|
||||
const dejsonifyBigInt = dejsonify.bigint(z.bigint())
|
||||
type T4 = z.input<typeof dejsonifyBigInt>
|
||||
|
||||
@jsonifiedUserExp.staticImplements
|
||||
class JsonifiedUser extends jsonifiedUserExp.extends implements Implements<typeof jsonifiedUserExp> {}
|
||||
|
||||
const jsonifiedUserInst = JsonifiedUser.jsonify(userInst)
|
||||
console.log(JSON.stringify(jsonifiedUserInst))
|
||||
jsonifiedUserInst.dejsonify()
|
||||
// const jsonifiedUserExp = JsonifiedZodSchemaClass(User, {
|
||||
// jsonifySchema: s => s.extend({
|
||||
// id: jsonify.bigint(s.shape.id)
|
||||
// }),
|
||||
|
||||
// dejsonifySchema: s => s.extend({
|
||||
// id: dejsonify.bigint(s.shape.id)
|
||||
// }),
|
||||
// }).build()
|
||||
|
||||
// @jsonifiedUserExp.staticImplements
|
||||
// class JsonifiedUser extends jsonifiedUserExp.extends implements Implements<typeof jsonifiedUserExp> {}
|
||||
|
||||
// const jsonifiedUserInst = JsonifiedUser.jsonify(userInst)
|
||||
// console.log(JSON.stringify(jsonifiedUserInst))
|
||||
// jsonifiedUserInst.dejsonify()
|
||||
|
||||
|
||||
const adminUserExp = User.extend(s => s.extend({
|
||||
role: z.literal("Admin").default("Admin")
|
||||
|
||||
Reference in New Issue
Block a user