Date time work
Lint / lint (push) Successful in 11s

This commit is contained in:
Julien Valverdé
2025-08-20 00:50:46 +02:00
parent c114eb559f
commit c1f212cede
4 changed files with 41 additions and 3 deletions
@@ -0,0 +1,32 @@
import { DateTime, identity, ParseResult, Schema } from "effect"
export const DateTimeUtcFromZoned = Schema.transformOrFail(
Schema.DateTimeZonedFromSelf,
Schema.DateTimeUtcFromSelf,
{
strict: true,
encode: DateTime.setZoneCurrent,
decode: zoned => ParseResult.succeed(DateTime.toUtc(zoned)),
},
)
export const DateTimeZonedFromUtc = Schema.transformOrFail(
Schema.DateTimeUtcFromSelf,
Schema.DateTimeZonedFromSelf,
{
strict: true,
encode: zoned => ParseResult.succeed(DateTime.toUtc(zoned)),
decode: DateTime.setZoneCurrent,
},
)
export const DateTimeUtcFromZonedInput = Schema.transform(
Schema.String,
Schema.compose(Schema.DateTimeZoned, DateTimeUtcFromZoned),
{
strict: true,
encode: v => v.slice(0, 16),
decode: identity,
},
)