0.1.3 #4

Merged
Thilawyn merged 74 commits from next into master 2024-03-24 22:24:25 +01:00
Showing only changes of commit 272a382887 - Show all commits

View File

@@ -1,12 +1,37 @@
import { Implements } from "@thilawyn/traitify-ts" import { Implements } from "@thilawyn/traitify-ts"
import { z } from "zod" import { z } from "zod"
import { zodSchemaClass } from "./builders/ZodSchemaClassBuilder" import { ZodSchemaClass } from "./ZodSchemaClass"
import { dejsonify, jsonify } from "./schema/jsonifiable"
import { MobXObservableZodSchemaObject } from "./traits/MobXObservableZodSchemaObject" import { MobXObservableZodSchemaObject } from "./traits/MobXObservableZodSchemaObject"
const exp = zodSchemaClass // const exp = zodSchemaClass
.schema({ // .schema({
// schema: z.object({
// /** User ID */
// id: z.bigint(),
// /** Username */
// name: z.string(),
// }),
// schemaWithDefaultValues: s => s.extend({
// id: s.shape.id.default(-1n),
// }),
// })
// .jsonifiable({
// jsonifySchema: s => s.extend({
// id: jsonify.bigint(s.shape.id)
// }),
// dejsonifySchema: s => s.extend({
// id: dejsonify.bigint(s.shape.id)
// }),
// })
// .toExpression()
// .expresses(MobXObservableZodSchemaObject)
// .build()
const exp = ZodSchemaClass({
schema: z.object({ schema: z.object({
/** User ID */ /** User ID */
id: z.bigint(), id: z.bigint(),
@@ -18,17 +43,7 @@ const exp = zodSchemaClass
schemaWithDefaultValues: s => s.extend({ schemaWithDefaultValues: s => s.extend({
id: s.shape.id.default(-1n), id: s.shape.id.default(-1n),
}), }),
}) })
.jsonifiable({
jsonifySchema: s => s.extend({
id: jsonify.bigint(s.shape.id)
}),
dejsonifySchema: s => s.extend({
id: dejsonify.bigint(s.shape.id)
}),
})
.toExpression()
.expresses(MobXObservableZodSchemaObject) .expresses(MobXObservableZodSchemaObject)
.build() .build()
@@ -40,8 +55,8 @@ const inst = User.create({ id: 1n, name: "User" })
// console.log(inst.name) // console.log(inst.name)
const instEffect = User.createEffect({ id: 1n, name: "User" }) const instEffect = User.createEffect({ id: 1n, name: "User" })
const jsonifiedUser = await inst.jsonifyPromise() // const jsonifiedUser = await inst.jsonifyPromise()
const dejsonifiedInst = await User.dejsonifyPromise(jsonifiedUser) // const dejsonifiedInst = await User.dejsonifyPromise(jsonifiedUser)
// const AdminUserProto = User.extend() // const AdminUserProto = User.extend()