UNPKG

@prismicio/types-internal

Version:
20 lines (17 loc) 435 B
import { chain } from "fp-ts/Either" import { pipe } from "fp-ts/function" import * as t from "io-ts" import { String } from "." export default new t.Type<Date, string, unknown>( "dateFromString", (u): u is Date => u instanceof Date, (u, c) => pipe( String.validate(u, c), chain((s) => { const d = new Date(s) return isNaN(d.getTime()) ? t.failure(u, c) : t.success(d) }), ), (date) => date.toISOString(), )