From ed2de8a0f62dc60ce442393ac84c487755e60453 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Julien=20Valverd=C3=A9?= Date: Tue, 18 Jun 2024 02:27:51 +0200 Subject: [PATCH] Jsonifiable done --- src/effect/schema/Jsonifiable.ts | 35 ++------------------------------ src/effect/schema/index.ts | 1 + 2 files changed, 3 insertions(+), 33 deletions(-) create mode 100644 src/effect/schema/index.ts diff --git a/src/effect/schema/Jsonifiable.ts b/src/effect/schema/Jsonifiable.ts index c4db527..8ddad92 100644 --- a/src/effect/schema/Jsonifiable.ts +++ b/src/effect/schema/Jsonifiable.ts @@ -2,43 +2,12 @@ import { Schema as S } from "@effect/schema" import * as TF from "type-fest" -const MyObjectStruct = S.Struct({ - id: S.BigIntFromSelf, - name: S.String, -}) - -class MyObjectClass extends S.Class("MyObjectClass")({ - id: S.BigIntFromSelf, - name: S.String, -}) {} - -const MyJsonifiedObject = S.Struct({ - ...MyObjectStruct.fields, - id: S.BigInt, -}) - - export function Jsonifiable< A, I, R, JsonifiableA extends I, JsonifiableI extends TF.Jsonifiable, JsonifiableR, >( - schema: S.Schema, - jsonifiable: S.Schema, + schema: S.Schema, + jsonifiable: S.Schema, ) { return jsonifiable.pipe(S.compose(schema)) } - -export function JsonifiableStruct< - A, I, R, - JsonifiableA extends I, JsonifiableI extends TF.Jsonifiable, JsonifiableR, - JsonifiableFields extends S.Struct.Fields, ->( - schema: S.Schema, - jsonifiable: S.Struct & S.Schema, -) { - return jsonifiable.pipe(S.compose(schema)) -} - - -const MyJsonifiableObject = Jsonifiable(MyObjectStruct, MyJsonifiedObject) -const MyJsonifiableObject2 = JsonifiableStruct(MyObjectStruct, MyJsonifiedObject) diff --git a/src/effect/schema/index.ts b/src/effect/schema/index.ts new file mode 100644 index 0000000..e77bc0e --- /dev/null +++ b/src/effect/schema/index.ts @@ -0,0 +1 @@ +export { Jsonifiable } from "./Jsonifiable"