UNPKG

ts-cast

Version:
12 lines (11 loc) 911 B
import { createCaster } from '../engine'; const parseDate = (typeName, value, context, reportError) => { const date = new Date(value); if (Number.isNaN(date.getTime())) { return reportError(`${typeName} is expected${context ? ` in ${context}` : ''} but "${value}" received.`, context); } return date; }; export const isoDate = createCaster('ISODate', (value) => typeof value === 'string' && value !== '', (value, context, reportError) => parseDate('ISODate', value, context, reportError)); export const unixDateTimeStamp = createCaster('UnixDateTimeStamp', value => typeof value === 'number', (value, context, reportError) => parseDate('UnixDateTimeStamp', value * 1000, context, reportError)); export const jsDateTimeStamp = createCaster('JSDateTimeStamp', value => typeof value === 'number', (value, context, reportError) => parseDate('JSDateTimeStamp', value, context, reportError));