makeJsonifiableSchemableClass

This commit is contained in:
Julien Valverdé
2024-01-01 22:19:50 +01:00
parent 176057d77a
commit 92271583ce

View File

@@ -1,6 +1,7 @@
import { JsonifiableObject } from "type-fest/source/jsonifiable"
import { z } from "zod"
import { SchemableClass, SchemableConfig } from "."
import { parseZodTypeEffect } from "./util"
export function makeJsonifiableSchemableClass<
@@ -55,8 +56,24 @@ export function makeJsonifiableSchemableClass<
})
return class JsonifiableSchemableObject {
return class JsonifiableSchemableObject extends class_ {
static readonly jsonifySchema = jsonifySchema
static readonly dejsonifySchema = dejsonifySchema
readonly jsonifySchema = jsonifySchema
readonly dejsonifySchema = dejsonifySchema
jsonify() {
return this.jsonifySchema.parse(this)
}
jsonifyPromise() {
return this.jsonifySchema.parseAsync(this)
}
jsonifyEffect() {
return parseZodTypeEffect(this.jsonifySchema, this)
}
}
}