UNPKG

3.37 kBSource Map (JSON)View Raw
1{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utc-time/index.ts"],"names":[],"mappings":"AAEA,SAAS,eAAe,CAAC,QAAiB;IACxC,OAAO,cAAc,KAAK,GAAG,IAAI,IAAI,CAAC,QAAiB,CAAC,EAAE,CAAC;AAC7D,CAAC;AAED,SAAS,YAAY,CAAC,KAAc;IAClC,OAAO,KAAK,IAAI,IAAI,IAAI,KAAK,CAAC,CAAE,KAAgB,CAAC,CAAC;AACpD,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,EAC1B,aAAa,EACb,MAAM,MACS,EAAiB;IAChC,MAAM,iBAAiB,GAAG,IAAI,IAAI,aAAa,CAAC;IAEhD,IAAI,CAAC,iBAAiB,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,EAAE;QACzD,MAAM,IAAI,SAAS,CACjB,kEAAkE,aAAa,GAAG,CAAC,CAAC;KACvF;IAED,MAAM,EACJ,IAAI,GAAG,CAAC,EACR,MAAM,GAAG,CAAC,EACV,MAAM,GAAG,CAAC,EACV,WAAW,GAAG,CAAC,GAChB,GAAkB,MAAM,IAAI,EAAE,CAAC;IAEhC,IAAI,YAAY,CAAC,IAAI,CAAC,EAAE;QACtB,MAAM,IAAI,SAAS,CAAC,wDAAwD,IAAI,GAAG,CAAC,CAAC;KACtF;IAED,IAAI,YAAY,CAAC,MAAM,CAAC,EAAE;QACxB,MAAM,IAAI,SAAS,CAAC,0DAA0D,MAAM,GAAG,CAAC,CAAC;KAC1F;IAED,IAAI,YAAY,CAAC,MAAM,CAAC,EAAE;QACxB,MAAM,IAAI,SAAS,CAAC,0DAA0D,MAAM,GAAG,CAAC,CAAC;KAC1F;IAED,IAAI,YAAY,CAAC,WAAW,CAAC,EAAE;QAC7B,MAAM,IAAI,SAAS,CACjB,+DAA+D,WAAW,GAAG,CAAC,CAAC;KAClF;IAED,MAAM,WAAW,GAAG,iBAAiB;QACnC,CAAC,CAAC,IAAI,IAAI,EAAE;QACZ,CAAC,CAAC,IAAI,IAAI,CAAC,aAAuB,CAAC,CAAC;IAEtC,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CACtB,WAAW,CAAC,cAAc,EAAE,EAC5B,WAAW,CAAC,WAAW,EAAE,EACzB,WAAW,CAAC,UAAU,EAAE,EACxB,WAAW,CAAC,WAAW,EAAE,GAAG,IAAI,EAChC,WAAW,CAAC,aAAa,EAAE,GAAG,MAAM,EACpC,WAAW,CAAC,aAAa,EAAE,GAAG,MAAM,EACpC,WAAW,CAAC,kBAAkB,EAAE,GAAG,WAAW,CAC/C,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,IAAkB;IAC9C,OAAO,WAAW,CAAC,IAAI,CAAC,CAAC;AAC3B,CAAC","sourcesContent":["import type { UTCTimeOffset, UTCTimeOpts } from './custom_typings.js';\n\nfunction isValidDatetime(datetime: unknown) {\n return 'Invalid Date' !== `${new Date(datetime as never)}`;\n}\n\nfunction isNotANumber(value: unknown): boolean {\n return value != null && isNaN(+(value as number));\n}\n\nexport function utcTimeSync({\n startDatetime,\n offset,\n}: UTCTimeOpts = {} as UTCTimeOpts): Date {\n const isNullishDatetime = null == startDatetime;\n\n if (!isNullishDatetime && !isValidDatetime(startDatetime)) {\n throw new TypeError(\n `Expected 'startDatetime' to be a valid datetime, but received '${startDatetime}'`);\n }\n\n const {\n hour = 0,\n minute = 0,\n second = 0,\n millisecond = 0,\n }: UTCTimeOffset = offset || {};\n\n if (isNotANumber(hour)) {\n throw new TypeError(`Expected 'offset.hour' to be a number, but received '${hour}'`);\n }\n\n if (isNotANumber(minute)) {\n throw new TypeError(`Expected 'offset.minute' to be a number, but received '${minute}'`);\n }\n\n if (isNotANumber(second)) {\n throw new TypeError(`Expected 'offset.second' to be a number, but received '${second}'`);\n }\n\n if (isNotANumber(millisecond)) {\n throw new TypeError(\n `Expected 'offset.millisecond' to be a number, but received '${millisecond}'`);\n }\n\n const newDatetime = isNullishDatetime\n ? new Date()\n : new Date(startDatetime as string);\n\n return new Date(Date.UTC(\n newDatetime.getUTCFullYear(),\n newDatetime.getUTCMonth(),\n newDatetime.getUTCDate(),\n newDatetime.getUTCHours() + hour,\n newDatetime.getUTCMinutes() + minute,\n newDatetime.getUTCSeconds() + second,\n newDatetime.getUTCMilliseconds() + millisecond\n ));\n}\n\nexport async function utcTime(opts?: UTCTimeOpts): Promise<Date> {\n return utcTimeSync(opts);\n}\n"]}
\No newline at end of file