@tai-kun/surrealdb
Version:
The SurrealDB SDK for JavaScript
71 lines (69 loc) • 6.99 kB
JavaScript
;
var __defProp = Object.defineProperty;
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
var __getOwnPropNames = Object.getOwnPropertyNames;
var __hasOwnProp = Object.prototype.hasOwnProperty;
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
var __export = (target, all) => {
for (var name in all)
__defProp(target, name, { get: all[name], enumerable: true });
};
var __copyProps = (to, from, except, desc) => {
if (from && typeof from === "object" || typeof from === "function") {
for (let key of __getOwnPropNames(from))
if (!__hasOwnProp.call(to, key) && key !== except)
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
}
return to;
};
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
// src/data-types/decode-only/datetime.ts
var datetime_exports = {};
__export(datetime_exports, {
default: () => Datetime
});
module.exports = __toCommonJS(datetime_exports);
var import_define = require("../_internals/define.cjs");
var MILLISECONDS_PER_SECOND = 1e3;
var NANOSECONDS_PER_MILLISECOND = 1e6;
var NANOSECONDS_PER_SECOND = 1e9;
var MAX_DATE_SECONDS = 864e10;
var MIN_DATE_SECONDS = -864e10;
var _Datetime = class _Datetime {
constructor(source) {
let s, ns;
if (typeof source === "string") {
const msTime = Date.parse(source);
if (msTime === msTime) {
s = Math.trunc(msTime / MILLISECONDS_PER_SECOND);
ns = Math.abs(
msTime % MILLISECONDS_PER_SECOND * NANOSECONDS_PER_MILLISECOND
);
if (s <= 0 && ns > 0) {
if (s <= MIN_DATE_SECONDS) {
s = ns = NaN;
} else {
s -= 1;
ns = NANOSECONDS_PER_SECOND - ns;
}
}
} else {
s = ns = NaN;
}
} else {
ns = source[1];
s = Number(source[0]) + Math.trunc(ns / NANOSECONDS_PER_SECOND);
if (s >= MIN_DATE_SECONDS && s <= MAX_DATE_SECONDS) {
ns %= NANOSECONDS_PER_SECOND;
} else {
s = ns = NaN;
}
}
this.seconds = s === 0 ? 0 : s;
this.nanoseconds = ns === 0 ? 0 : ns;
(0, import_define.defineAsDatetime)(this);
}
};
__name(_Datetime, "Datetime");
var Datetime = _Datetime;
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2RhdGEtdHlwZXMvZGVjb2RlLW9ubHkvZGF0ZXRpbWUudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbImltcG9ydCB0eXBlIHsgRGF0YUl0ZW0gfSBmcm9tIFwiQHRhaS1rdW4vc3VycmVhbGRiL2Nib3JcIjtcbmltcG9ydCB7IGRlZmluZUFzRGF0ZXRpbWUgfSBmcm9tIFwiLi4vX2ludGVybmFscy9kZWZpbmVcIjtcblxuLy8gU2VlOiBodHRwczovL3d3dy5pYW5hLm9yZy9hc3NpZ25tZW50cy9jYm9yLXRhZ3MvY2Jvci10YWdzLnhodG1sXG4vLyBTdXJyZWFsREIgXHUzMDY3XHUzMDZGXHU2NUU1XHU2NjQyXHUzMDZCXHUzMEJGXHUzMEIwIDEwMCwgMSwgMTAwNCBcdTMwOTJcdTRGN0ZcdTMwNjNcdTMwNjZcdTMwNDRcdTMwNkFcdTMwNDRcdTZBMjFcdTY5RDhcbmV4cG9ydCB0eXBlIERhdGV0aW1lU291cmNlID1cbiAgLy8gVGFnIDAgKCwgMTAwKVxuICB8IERhdGFJdGVtLlV0ZjhTdHJpbmcuRml4ZWRMZW5ndGhbXCJ2YWx1ZVwiXVxuICAvLyBUYWcgKDEsIDEwMDQpXG4gIC8vIHwgRGF0YUl0ZW0uVW5zaWduZWRJbnRlZ2VyW1widmFsdWVcIl1cbiAgLy8gfCBEYXRhSXRlbS5OZWdhdGl2ZUludGVnZXJbXCJ2YWx1ZVwiXVxuICAvLyBTdXJyZWFsREIgXHU3MkVDXHU4MUVBXG4gIHwgcmVhZG9ubHkgW1xuICAgIC8vIGk2NFxuICAgIHNlY29uZHM6XG4gICAgICB8IERhdGFJdGVtLlVuc2lnbmVkSW50ZWdlcltcInZhbHVlXCJdXG4gICAgICB8IERhdGFJdGVtLk5lZ2F0aXZlSW50ZWdlcltcInZhbHVlXCJdLFxuICAgIC8vIHUzMlxuICAgIG5hbm9zZWNvbmRzOlxuICAgICAgfCBEYXRhSXRlbS5VbnNpZ25lZEludGVnZXIuVGlueVtcInZhbHVlXCJdXG4gICAgICB8IERhdGFJdGVtLlVuc2lnbmVkSW50ZWdlci5PbmVCeXRlW1widmFsdWVcIl1cbiAgICAgIHwgRGF0YUl0ZW0uVW5zaWduZWRJbnRlZ2VyLlR3b0J5dGVzW1widmFsdWVcIl1cbiAgICAgIHwgRGF0YUl0ZW0uVW5zaWduZWRJbnRlZ2VyLkZvdXJCeXRlc1tcInZhbHVlXCJdLFxuICBdO1xuXG5jb25zdCBNSUxMSVNFQ09ORFNfUEVSX1NFQ09ORCA9IDFlMztcbmNvbnN0IE5BTk9TRUNPTkRTX1BFUl9NSUxMSVNFQ09ORCA9IDFlNjtcbmNvbnN0IE5BTk9TRUNPTkRTX1BFUl9TRUNPTkQgPSAxZTk7XG5cbmNvbnN0IE1BWF9EQVRFX1NFQ09ORFMgPSA4XzY0MF8wMDBfMDAwXzAwMDtcbmNvbnN0IE1JTl9EQVRFX1NFQ09ORFMgPSAtOF82NDBfMDAwXzAwMF8wMDA7XG5cbi8qKlxuICogW0FQSSBSZWZlcmVuY2VdKGh0dHBzOi8vdGFpLWt1bi5naXRodWIuaW8vc3VycmVhbGRiLmpzL3YyL2FwaS9kYXRhL2RhdGV0aW1lKVxuICovXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBEYXRldGltZSB7XG4gIC8qKlxuICAgKiAtKDJeNTMtMSkgfiAyXjUzLTEsIE5hTlxuICAgKi9cbiAgcmVhZG9ubHkgc2Vjb25kczogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiAwIH4gOTk5Xzk5OV85OTksIE5hTlxuICAgKi9cbiAgcmVhZG9ubHkgbmFub3NlY29uZHM6IG51bWJlcjtcblxuICBjb25zdHJ1Y3Rvcihzb3VyY2U6IERhdGV0aW1lU291cmNlKSB7XG4gICAgbGV0IHM6IG51bWJlciwgbnM6IG51bWJlcjtcblxuICAgIGlmICh0eXBlb2Ygc291cmNlID09PSBcInN0cmluZ1wiKSB7XG4gICAgICBjb25zdCBtc1RpbWUgPSBEYXRlLnBhcnNlKHNvdXJjZSk7XG5cbiAgICAgIGlmIChtc1RpbWUgPT09IG1zVGltZSkge1xuICAgICAgICBzID0gTWF0aC50cnVuYyhtc1RpbWUgLyBNSUxMSVNFQ09ORFNfUEVSX1NFQ09ORCk7XG4gICAgICAgIG5zID0gTWF0aC5hYnMoXG4gICAgICAgICAgKG1zVGltZSAlIE1JTExJU0VDT05EU19QRVJfU0VDT05EKSAqIE5BTk9TRUNPTkRTX1BFUl9NSUxMSVNFQ09ORCxcbiAgICAgICAgKTtcblxuICAgICAgICBpZiAocyA8PSAwICYmIG5zID4gMCkge1xuICAgICAgICAgIGlmIChzIDw9IE1JTl9EQVRFX1NFQ09ORFMpIHtcbiAgICAgICAgICAgIHMgPSBucyA9IE5hTjsgLy8gVW5kZXJmbG93XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHMgLT0gMTtcbiAgICAgICAgICAgIG5zID0gTkFOT1NFQ09ORFNfUEVSX1NFQ09ORCAtIG5zO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcyA9IG5zID0gTmFOO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBucyA9IHNvdXJjZVsxXTtcbiAgICAgIHMgPSBOdW1iZXIoc291cmNlWzBdKSArIE1hdGgudHJ1bmMobnMgLyBOQU5PU0VDT05EU19QRVJfU0VDT05EKTtcblxuICAgICAgaWYgKHMgPj0gTUlOX0RBVEVfU0VDT05EUyAmJiBzIDw9IE1BWF9EQVRFX1NFQ09ORFMpIHtcbiAgICAgICAgbnMgJT0gTkFOT1NFQ09ORFNfUEVSX1NFQ09ORDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHMgPSBucyA9IE5hTjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLnNlY29uZHMgPSBzID09PSAwID8gMCA6IHM7XG4gICAgdGhpcy5uYW5vc2Vjb25kcyA9IG5zID09PSAwID8gMCA6IG5zO1xuXG4gICAgZGVmaW5lQXNEYXRldGltZSh0aGlzKTtcbiAgfVxufVxuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNBLG9CQUFpQztBQXdCakMsSUFBTSwwQkFBMEI7QUFDaEMsSUFBTSw4QkFBOEI7QUFDcEMsSUFBTSx5QkFBeUI7QUFFL0IsSUFBTSxtQkFBbUI7QUFDekIsSUFBTSxtQkFBbUI7QUFLekIsSUFBcUIsWUFBckIsTUFBcUIsVUFBUztBQUFBLEVBVzVCLFlBQVksUUFBd0I7QUFDbEMsUUFBSSxHQUFXO0FBRWYsUUFBSSxPQUFPLFdBQVcsVUFBVTtBQUM5QixZQUFNLFNBQVMsS0FBSyxNQUFNLE1BQU07QUFFaEMsVUFBSSxXQUFXLFFBQVE7QUFDckIsWUFBSSxLQUFLLE1BQU0sU0FBUyx1QkFBdUI7QUFDL0MsYUFBSyxLQUFLO0FBQUEsVUFDUCxTQUFTLDBCQUEyQjtBQUFBLFFBQ3ZDO0FBRUEsWUFBSSxLQUFLLEtBQUssS0FBSyxHQUFHO0FBQ3BCLGNBQUksS0FBSyxrQkFBa0I7QUFDekIsZ0JBQUksS0FBSztBQUFBLFVBQ1gsT0FBTztBQUNMLGlCQUFLO0FBQ0wsaUJBQUsseUJBQXlCO0FBQUEsVUFDaEM7QUFBQSxRQUNGO0FBQUEsTUFDRixPQUFPO0FBQ0wsWUFBSSxLQUFLO0FBQUEsTUFDWDtBQUFBLElBQ0YsT0FBTztBQUNMLFdBQUssT0FBTyxDQUFDO0FBQ2IsVUFBSSxPQUFPLE9BQU8sQ0FBQyxDQUFDLElBQUksS0FBSyxNQUFNLEtBQUssc0JBQXNCO0FBRTlELFVBQUksS0FBSyxvQkFBb0IsS0FBSyxrQkFBa0I7QUFDbEQsY0FBTTtBQUFBLE1BQ1IsT0FBTztBQUNMLFlBQUksS0FBSztBQUFBLE1BQ1g7QUFBQSxJQUNGO0FBRUEsU0FBSyxVQUFVLE1BQU0sSUFBSSxJQUFJO0FBQzdCLFNBQUssY0FBYyxPQUFPLElBQUksSUFBSTtBQUVsQyx3Q0FBaUIsSUFBSTtBQUFBLEVBQ3ZCO0FBQ0Y7QUFsRDhCO0FBQTlCLElBQXFCLFdBQXJCOyIsCiAgIm5hbWVzIjogW10KfQo=