UNPKG

fp-ts-std

Version:

The missing pseudo-standard library for fp-ts.

24 lines (23 loc) 1.21 kB
import { now as nownum } from "fp-ts/Date"; import * as IO from "fp-ts/IO"; import { flow, pipe } from "fp-ts/function"; import { Field as fieldNumber, Ord as ordNumber } from "fp-ts/number"; import { getField, getOrd, iso } from "newtype-ts"; import { isValid as isValidNum } from "./Number"; import * as O from "fp-ts/Option"; import { construct, invokeOn, isInstanceOf } from "./Function"; import { pack, unpack } from "./Newtype"; export const unsafeParseDate = (x) => construct(Date)([x]); export const ordMilliseconds = getOrd(ordNumber); export const fieldMilliseconds = getField(fieldNumber); export const isoMilliseconds = iso(); export const mkMilliseconds = pack; export const unMilliseconds = unpack; export const fromMilliseconds = flow(unMilliseconds, unsafeParseDate); export const getTime = flow(invokeOn()("getTime")([]), mkMilliseconds); export const toISOString = invokeOn()("toISOString")([]); export const toUTCString = invokeOn()("toUTCString")([]); export const isDate = isInstanceOf(Date); export const isValid = flow(getTime, unMilliseconds, isValidNum); export const parseDate = flow(unsafeParseDate, O.fromPredicate(isValid)); export const now = pipe(nownum, IO.map(mkMilliseconds));