From 92271583cec8cb8d7f42359e2bd3c7c4b1ada2ef Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Julien=20Valverd=C3=A9?= Date: Mon, 1 Jan 2024 22:19:50 +0100 Subject: [PATCH] makeJsonifiableSchemableClass --- src/makeJsonifiableSchemableClass.ts | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/src/makeJsonifiableSchemableClass.ts b/src/makeJsonifiableSchemableClass.ts index 84a9261..7a053f4 100644 --- a/src/makeJsonifiableSchemableClass.ts +++ b/src/makeJsonifiableSchemableClass.ts @@ -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) + } } }