From 57f9d8075fa69be27f4590bbdde1b2646e5b6b77 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Julien=20Valverd=C3=A9?= Date: Thu, 27 Jun 2024 10:43:36 +0200 Subject: [PATCH] JsonifiableTodo --- packages/common/src/data/Todo.ts | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/packages/common/src/data/Todo.ts b/packages/common/src/data/Todo.ts index d3bb435..d1073a1 100644 --- a/packages/common/src/data/Todo.ts +++ b/packages/common/src/data/Todo.ts @@ -1,5 +1,5 @@ import { Schema as S } from "@effect/schema" -import { Tag } from "@thilawyn/thilalib/effect/schema" +import { Jsonifiable, Tag } from "@thilawyn/thilalib/effect/schema" import { Class } from "@thilawyn/thilalib/effect/schema/class" @@ -10,7 +10,16 @@ export class Todo extends Class("Todo")({ title: S.String, content: S.String, - due: S.optional(S.DateFromSelf, { as: "Option" }), + due: S.OptionFromSelf(S.DateFromSelf), createdAt: S.DateFromSelf, updatedAt: S.DateFromSelf, }) {} + + +export const JsonifiableTodo = Jsonifiable(Todo, S.Struct({ + ...Todo.fields, + + due: S.OptionFromNullOr(S.DateFromString), + createdAt: S.DateFromString, + updatedAt: S.DateFromString, +}))