From 3c2dc477fdc85470ceb2bb28ca41762877432cd8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Julien=20Valverd=C3=A9?= Date: Tue, 2 Jan 2024 02:43:16 +0100 Subject: [PATCH] makeJsonifiableSchemableClass --- src/jsonifiable/JsonifiableSchemableClass.ts | 5 +++++ src/jsonifiable/makeJsonifiableSchemableClass.ts | 8 ++++---- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/src/jsonifiable/JsonifiableSchemableClass.ts b/src/jsonifiable/JsonifiableSchemableClass.ts index 41298f7..c0dc3c0 100644 --- a/src/jsonifiable/JsonifiableSchemableClass.ts +++ b/src/jsonifiable/JsonifiableSchemableClass.ts @@ -1,3 +1,4 @@ +import { Effect } from "effect" import { Class } from "type-fest" import { JsonifiableObject } from "type-fest/source/jsonifiable" import { z } from "zod" @@ -58,4 +59,8 @@ export type JsonifiableSchemableObject< readonly $jsonifiableSchemableConfig: $Config readonly jsonifySchema: $Config["jsonifySchema"] readonly dejsonifySchema: $Config["dejsonifySchema"] + + jsonify(): $Config["jsonifiedValues"] + jsonifyPromise(): Promise<$Config["jsonifiedValues"]> + jsonifyEffect(): Effect.Effect, $Config["jsonifiedValues"]> } diff --git a/src/jsonifiable/makeJsonifiableSchemableClass.ts b/src/jsonifiable/makeJsonifiableSchemableClass.ts index 332299e..ebbdf8a 100644 --- a/src/jsonifiable/makeJsonifiableSchemableClass.ts +++ b/src/jsonifiable/makeJsonifiableSchemableClass.ts @@ -1,7 +1,7 @@ import { Class } from "type-fest" import { JsonifiableObject } from "type-fest/source/jsonifiable" import { z } from "zod" -import { JsonifiableSchemableConfig } from "." +import { JsonifiableSchemableClass, JsonifiableSchemableConfig, JsonifiableSchemableObject } from "." import { SchemableClass, SchemableConfig } from ".." import { StaticMembers, parseZodTypeEffect } from "../util" @@ -84,15 +84,15 @@ export function makeJsonifiableSchemableClass< jsonifyEffect() { return parseZodTypeEffect(this.jsonifySchema, this) } - } + } satisfies JsonifiableSchemableClass return jsonifiableClass as ( Class< - InstanceType & InstanceType, + InstanceType & JsonifiableSchemableObject, ConstructorParameters > & StaticMembers & - StaticMembers + StaticMembers> ) }