import { pipe } from 'fp-ts/function' import * as O from 'fp-ts/Option' export const fromDate = (date: Date): O.Option => isFinite(date as any) ? O.some(date) : O.none export const fromString = (date: string): O.Option => pipe(new Date(date), fromDate) export const parse = (date: string): O.Option => pipe(date, Date.parse, O.of, O.filter(isFinite))