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,34 +1,49 @@
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({ // schema: z.object({
/** User ID */ // /** User ID */
id: z.bigint(), // id: z.bigint(),
/** Username */ // /** Username */
name: z.string(), // name: z.string(),
}), // }),
schemaWithDefaultValues: s => s.extend({ // schemaWithDefaultValues: s => s.extend({
id: s.shape.id.default(-1n), // id: s.shape.id.default(-1n),
}), // }),
}) // })
.jsonifiable({ // .jsonifiable({
jsonifySchema: s => s.extend({ // jsonifySchema: s => s.extend({
id: jsonify.bigint(s.shape.id) // id: jsonify.bigint(s.shape.id)
}), // }),
dejsonifySchema: s => s.extend({ // dejsonifySchema: s => s.extend({
id: dejsonify.bigint(s.shape.id) // id: dejsonify.bigint(s.shape.id)
}), // }),
}) // })
.toExpression() // .toExpression()
// .expresses(MobXObservableZodSchemaObject)
// .build()
const exp = ZodSchemaClass({
schema: z.object({
/** User ID */
id: z.bigint(),
/** Username */
name: z.string(),
}),
schemaWithDefaultValues: s => s.extend({
id: s.shape.id.default(-1n),
}),
})
.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()