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> ) }