{"version":3,"sources":["../../../src/api/times.ts"],"sourcesContent":["import { standard } from './base/pipes'\nimport { getRandomValue } from '../utils/functions'\n\nexport type Timeable = Date | string | number\n\nexport const time = (err = 'is not a valid datetime') => {\n\tconst varName = `date_${getRandomValue()}`\n\treturn standard<Timeable, Date>(\n\t\t({ input, path }, opts) => [\n\t\t\topts.wrapError(\n\t\t\t\t`!(${input} instanceof Date || typeof ${input} === 'number' || typeof ${input} === 'string')`,\n\t\t\t\t`PipeError.root('${err}', ${input}, ${path})`,\n\t\t\t),\n\t\t\t`const ${varName} = new Date(${input})`,\n\t\t\topts.wrapError(`isNaN(${varName}.getTime())`, `PipeError.root('${err}', ${input}, ${path})`),\n\t\t\t`${input} = ${varName}`,\n\t\t],\n\t\t{\n\t\t\tschema: () => ({ oneOf: [{ type: 'string', format: 'date-time' }, { type: 'integer' }] }),\n\t\t},\n\t)\n}\n\nexport const after = (compare: Timeable, err?: string) => {\n\tconst varName = `compare_${getRandomValue()}`\n\treturn standard<Date, Date>(\n\t\t({ input, context, path }, opts) => [\n\t\t\t`const ${varName} = new Date(${context}.after)`,\n\t\t\topts.wrapError(\n\t\t\t\t`${input} <= ${varName}`,\n\t\t\t\t`PipeError.root('${err ?? `is not later than \\${${varName}.toString()}`}', ${input}, ${path})`,\n\t\t\t),\n\t\t],\n\t\t{\n\t\t\tcontext: { after: compare },\n\t\t},\n\t)\n}\n\nexport const before = (compare: Timeable, err?: string) => {\n\tconst varName = `compare_${getRandomValue()}`\n\treturn standard<Date, Date>(\n\t\t({ input, context, path }, opts) => [\n\t\t\t`const ${varName} = new Date(${context}.before)`,\n\t\t\topts.wrapError(\n\t\t\t\t`${input} >= ${varName}`,\n\t\t\t\t`PipeError.root('${err ?? `is not earlier than \\${${varName}.toString()}`}', ${input}, ${path}, ${path})`,\n\t\t\t),\n\t\t],\n\t\t{\n\t\t\tcontext: { before: compare },\n\t\t},\n\t)\n}\n\nexport const asStamp = () =>\n\tstandard<Date, number>(({ input }) => [`${input} = ${input}.getTime()`], { schema: () => ({ type: 'integer', oneOf: undefined }) })\nexport const asISOString = () =>\n\tstandard<Date, string>(({ input }) => [`${input} = ${input}.toISOString()`], {\n\t\tschema: () => ({ type: 'string', format: 'date-time', oneOf: undefined }),\n\t})\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAAyB;AACzB,uBAA+B;AAIxB,MAAM,OAAO,CAAC,MAAM,8BAA8B;AACxD,QAAM,UAAU,YAAQ,iCAAe,CAAC;AACxC,aAAO;AAAA,IACN,CAAC,EAAE,OAAO,KAAK,GAAG,SAAS;AAAA,MAC1B,KAAK;AAAA,QACJ,KAAK,KAAK,8BAA8B,KAAK,2BAA2B,KAAK;AAAA,QAC7E,mBAAmB,GAAG,MAAM,KAAK,KAAK,IAAI;AAAA,MAC3C;AAAA,MACA,SAAS,OAAO,eAAe,KAAK;AAAA,MACpC,KAAK,UAAU,SAAS,OAAO,eAAe,mBAAmB,GAAG,MAAM,KAAK,KAAK,IAAI,GAAG;AAAA,MAC3F,GAAG,KAAK,MAAM,OAAO;AAAA,IACtB;AAAA,IACA;AAAA,MACC,QAAQ,OAAO,EAAE,OAAO,CAAC,EAAE,MAAM,UAAU,QAAQ,YAAY,GAAG,EAAE,MAAM,UAAU,CAAC,EAAE;AAAA,IACxF;AAAA,EACD;AACD;AAEO,MAAM,QAAQ,CAAC,SAAmB,QAAiB;AACzD,QAAM,UAAU,eAAW,iCAAe,CAAC;AAC3C,aAAO;AAAA,IACN,CAAC,EAAE,OAAO,SAAS,KAAK,GAAG,SAAS;AAAA,MACnC,SAAS,OAAO,eAAe,OAAO;AAAA,MACtC,KAAK;AAAA,QACJ,GAAG,KAAK,OAAO,OAAO;AAAA,QACtB,mBAAmB,OAAO,wBAAwB,OAAO,cAAc,MAAM,KAAK,KAAK,IAAI;AAAA,MAC5F;AAAA,IACD;AAAA,IACA;AAAA,MACC,SAAS,EAAE,OAAO,QAAQ;AAAA,IAC3B;AAAA,EACD;AACD;AAEO,MAAM,SAAS,CAAC,SAAmB,QAAiB;AAC1D,QAAM,UAAU,eAAW,iCAAe,CAAC;AAC3C,aAAO;AAAA,IACN,CAAC,EAAE,OAAO,SAAS,KAAK,GAAG,SAAS;AAAA,MACnC,SAAS,OAAO,eAAe,OAAO;AAAA,MACtC,KAAK;AAAA,QACJ,GAAG,KAAK,OAAO,OAAO;AAAA,QACtB,mBAAmB,OAAO,0BAA0B,OAAO,cAAc,MAAM,KAAK,KAAK,IAAI,KAAK,IAAI;AAAA,MACvG;AAAA,IACD;AAAA,IACA;AAAA,MACC,SAAS,EAAE,QAAQ,QAAQ;AAAA,IAC5B;AAAA,EACD;AACD;AAEO,MAAM,UAAU,UACtB,uBAAuB,CAAC,EAAE,MAAM,MAAM,CAAC,GAAG,KAAK,MAAM,KAAK,YAAY,GAAG,EAAE,QAAQ,OAAO,EAAE,MAAM,WAAW,OAAO,OAAU,GAAG,CAAC;AAC5H,MAAM,cAAc,UAC1B,uBAAuB,CAAC,EAAE,MAAM,MAAM,CAAC,GAAG,KAAK,MAAM,KAAK,gBAAgB,GAAG;AAAA,EAC5E,QAAQ,OAAO,EAAE,MAAM,UAAU,QAAQ,aAAa,OAAO,OAAU;AACxE,CAAC;","names":[]}