0.1.2 #3
29
src/tests.ts
29
src/tests.ts
@@ -3,6 +3,7 @@ import { z } from "zod"
|
|||||||
import { ZodSchemaClassBuilder } from "./ZodSchemaClass"
|
import { ZodSchemaClassBuilder } from "./ZodSchemaClass"
|
||||||
import { dejsonify, jsonify } from "./schema/jsonify"
|
import { dejsonify, jsonify } from "./schema/jsonify"
|
||||||
import { ObservableZodSchemaObject } from "./traits/ObservableZodSchemaObject"
|
import { ObservableZodSchemaObject } from "./traits/ObservableZodSchemaObject"
|
||||||
|
import { AbstractClass, Class } from "type-fest"
|
||||||
|
|
||||||
|
|
||||||
const exp = new ZodSchemaClassBuilder(TraitExpression.NullSuperclass, [])
|
const exp = new ZodSchemaClassBuilder(TraitExpression.NullSuperclass, [])
|
||||||
@@ -34,7 +35,7 @@ class User extends exp.extends implements Implements<typeof exp> {}
|
|||||||
|
|
||||||
User.defaultValues
|
User.defaultValues
|
||||||
const inst = User.create({ id: 1n, name: "" })
|
const inst = User.create({ id: 1n, name: "" })
|
||||||
console.log(inst)
|
// console.log(inst)
|
||||||
const jsonifiedUser = await inst.jsonifyPromise()
|
const jsonifiedUser = await inst.jsonifyPromise()
|
||||||
|
|
||||||
|
|
||||||
@@ -47,4 +48,28 @@ class SubTest extends User.extend({
|
|||||||
}) {}
|
}) {}
|
||||||
|
|
||||||
const subInst = await SubTest.createPromise({ name: "", prout: "" })
|
const subInst = await SubTest.createPromise({ name: "", prout: "" })
|
||||||
console.log(subInst)
|
// console.log(subInst)
|
||||||
|
|
||||||
|
|
||||||
|
class BaseClass {
|
||||||
|
declare ["constructor"]: typeof BaseClass
|
||||||
|
|
||||||
|
static readonly issou = "gneugneu"
|
||||||
|
|
||||||
|
otherMethod() {
|
||||||
|
return "prout" as const
|
||||||
|
}
|
||||||
|
|
||||||
|
method<I extends object>(
|
||||||
|
this: Omit<BaseClass, "constructor"> & { ["constructor"]: Class<I> }
|
||||||
|
) {
|
||||||
|
this.otherMethod()
|
||||||
|
return new this.constructor()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class Superclass extends BaseClass {
|
||||||
|
declare ["constructor"]: typeof Superclass
|
||||||
|
}
|
||||||
|
|
||||||
|
console.log(new Superclass().method())
|
||||||
|
|||||||
@@ -64,7 +64,7 @@ export const JsonifiableZodSchemaObject = trait
|
|||||||
|
|
||||||
params?: Partial<z.ParseParams>,
|
params?: Partial<z.ParseParams>,
|
||||||
) {
|
) {
|
||||||
return this.dejsonifySchema.parseAsync(this, params)
|
return this.jsonifySchema.parseAsync(this, params)
|
||||||
}
|
}
|
||||||
|
|
||||||
jsonifyEffect<
|
jsonifyEffect<
|
||||||
|
|||||||
Reference in New Issue
Block a user