@tai-kun/surrealdb
Version:
The SurrealDB SDK for JavaScript
133 lines (131 loc) • 14.3 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/encodable/duration.ts
var duration_exports = {};
__export(duration_exports, {
default: () => Duration
});
module.exports = __toCommonJS(duration_exports);
var import_decodeonly_datatypes = require("../decode-only/index.cjs");
var import_errors = require("../../errors/index.cjs");
var import_spec = require("./spec.cjs");
var SECONDS_PER_MINUTE = 60n;
var SECONDS_PER_HOUR = 60n * SECONDS_PER_MINUTE;
var SECONDS_PER_DAY = 24n * SECONDS_PER_HOUR;
var SECONDS_PER_WEEK = 7n * SECONDS_PER_DAY;
var SECONDS_PER_YEAR = 365n * SECONDS_PER_DAY;
var NANOSECONDS_PER_MICROSECOND = 1000n;
var NANOSECONDS_PER_MILLISECOND = 1000000n;
var NANOSECONDS_PER_SECOND = 1000000000n;
var JS_MAX_SAFE_UNSIGNED_INTEGER = 9007199254740991n;
var _Duration = class _Duration extends import_decodeonly_datatypes.Duration {
// dprint-ignore
parse() {
let secs = this.seconds;
let nano = BigInt(this.nanoseconds);
if (secs === 0n && nano === 0n) {
return {
nanoseconds: 0
};
}
let year = secs / SECONDS_PER_YEAR;
secs = secs % SECONDS_PER_YEAR;
let week = secs / SECONDS_PER_WEEK;
secs = secs % SECONDS_PER_WEEK;
let days = secs / SECONDS_PER_DAY;
secs = secs % SECONDS_PER_DAY;
let hour = secs / SECONDS_PER_HOUR;
secs = secs % SECONDS_PER_HOUR;
let mins = secs / SECONDS_PER_MINUTE;
secs = secs % SECONDS_PER_MINUTE;
let msec = nano / NANOSECONDS_PER_MILLISECOND;
nano = nano % NANOSECONDS_PER_MILLISECOND;
let usec = nano / NANOSECONDS_PER_MICROSECOND;
nano = nano % NANOSECONDS_PER_MICROSECOND;
const o = {};
if (year) o.years = Number(year);
if (week) o.weeks = Number(week);
if (days) o.days = Number(days);
if (hour) o.hours = Number(hour);
if (mins) o.minutes = Number(mins);
if (secs) o.seconds = Number(secs);
if (msec) o.milliseconds = Number(msec);
if (usec) o.microseconds = Number(usec);
if (nano) o.nanoseconds = Number(nano);
return o;
}
valueOf() {
return this.seconds * NANOSECONDS_PER_SECOND + BigInt(this.nanoseconds);
}
// dprint-ignore
toString() {
const o = this.parse();
let s = "";
if ("years" in o) s += o.years + "y";
if ("weeks" in o) s += o.weeks + "w";
if ("days" in o) s += o.days + "d";
if ("hours" in o) s += o.hours + "h";
if ("minutes" in o) s += o.minutes + "m";
if ("seconds" in o) s += o.seconds + "s";
if ("milliseconds" in o) s += o.milliseconds + "ms";
if ("microseconds" in o) s += o.microseconds + "\xB5s";
if ("nanoseconds" in o) s += o.nanoseconds + "ns";
return s;
}
[Symbol.toPrimitive](hint) {
switch (hint) {
case "number": {
const ms = this.seconds * 1000n + BigInt(this.nanoseconds) / 1000000n;
if (ms > JS_MAX_SAFE_UNSIGNED_INTEGER || ms < 0n) {
throw new import_errors.NumberRangeError([0n, JS_MAX_SAFE_UNSIGNED_INTEGER], ms, {
integer: true
});
}
return Number(ms) + this.nanoseconds % 1e6 / 1e6;
}
case "string":
case "default":
return this.toString();
default:
throw TypeError("Invalid hint: " + String(hint));
}
}
toCBOR() {
return [
import_spec.CBOR_TAG_DURATION,
[this.seconds, this.nanoseconds]
];
}
toJSON() {
return this.toString();
}
toSurql() {
return this.toString();
}
toPlainObject() {
return {
seconds: this.seconds,
nanoseconds: this.nanoseconds
};
}
};
__name(_Duration, "Duration");
var Duration = _Duration;
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2RhdGEtdHlwZXMvZW5jb2RhYmxlL2R1cmF0aW9uLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyJpbXBvcnQgeyBEdXJhdGlvbiBhcyBCYXNlIH0gZnJvbSBcIkB0YWkta3VuL3N1cnJlYWxkYi9kZWNvZGVvbmx5LWRhdGF0eXBlc1wiO1xuaW1wb3J0IHsgTnVtYmVyUmFuZ2VFcnJvciB9IGZyb20gXCJAdGFpLWt1bi9zdXJyZWFsZGIvZXJyb3JzXCI7XG5pbXBvcnQgeyBDQk9SX1RBR19EVVJBVElPTiwgdHlwZSBFbmNvZGFibGUgfSBmcm9tIFwiLi9zcGVjXCI7XG5cbmV4cG9ydCB0eXBlICogZnJvbSBcIi4uL2RlY29kZS1vbmx5L2R1cmF0aW9uXCI7XG5cbmNvbnN0IFNFQ09ORFNfUEVSX01JTlVURSA9IDYwbjtcbmNvbnN0IFNFQ09ORFNfUEVSX0hPVVIgPSA2MG4gKiBTRUNPTkRTX1BFUl9NSU5VVEU7XG5jb25zdCBTRUNPTkRTX1BFUl9EQVkgPSAyNG4gKiBTRUNPTkRTX1BFUl9IT1VSO1xuY29uc3QgU0VDT05EU19QRVJfV0VFSyA9IDduICogU0VDT05EU19QRVJfREFZO1xuY29uc3QgU0VDT05EU19QRVJfWUVBUiA9IDM2NW4gKiBTRUNPTkRTX1BFUl9EQVk7XG5jb25zdCBOQU5PU0VDT05EU19QRVJfTUlDUk9TRUNPTkQgPSAxXzAwMG47XG5jb25zdCBOQU5PU0VDT05EU19QRVJfTUlMTElTRUNPTkQgPSAxXzAwMF8wMDBuO1xuY29uc3QgTkFOT1NFQ09ORFNfUEVSX1NFQ09ORCA9IDFfMDAwXzAwMF8wMDBuO1xuXG5jb25zdCBKU19NQVhfU0FGRV9VTlNJR05FRF9JTlRFR0VSID0gOTAwNzE5OTI1NDc0MDk5MW47IC8vIDJeNTMtMVxuXG4vKipcbiAqIFtBUEkgUmVmZXJlbmNlXShodHRwczovL3RhaS1rdW4uZ2l0aHViLmlvL3N1cnJlYWxkYi5qcy92Mi9hcGkvZGF0YS9kdXJhdGlvbilcbiAqL1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgRHVyYXRpb24gZXh0ZW5kcyBCYXNlIGltcGxlbWVudHMgRW5jb2RhYmxlIHtcbiAgLy8gZHByaW50LWlnbm9yZVxuICBwYXJzZSgpOiB7XG4gICAgeWVhcnM/OiBudW1iZXI7XG4gICAgd2Vla3M/OiBudW1iZXI7XG4gICAgZGF5cz86IG51bWJlcjtcbiAgICBob3Vycz86IG51bWJlcjtcbiAgICBtaW51dGVzPzogbnVtYmVyO1xuICAgIHNlY29uZHM/OiBudW1iZXI7XG4gICAgbWlsbGlzZWNvbmRzPzogbnVtYmVyO1xuICAgIG1pY3Jvc2Vjb25kcz86IG51bWJlcjtcbiAgICBuYW5vc2Vjb25kcz86IG51bWJlcjtcbiAgfSB7XG4gICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL3N1cnJlYWxkYi9zdXJyZWFsZGIvYmxvYi92Mi4wLjEvY29yZS9zcmMvc3FsL2R1cmF0aW9uLnJzI0wxNjZcblxuICAgIGxldCBzZWNzID0gdGhpcy5zZWNvbmRzO1xuICAgIGxldCBuYW5vID0gQmlnSW50KHRoaXMubmFub3NlY29uZHMpO1xuXG4gICAgaWYgKHNlY3MgPT09IDBuICYmIG5hbm8gPT09IDBuKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBuYW5vc2Vjb25kczogMCxcbiAgICAgIH1cbiAgICB9XG5cbiAgICBsZXQgeWVhciA9IHNlY3MgLyBTRUNPTkRTX1BFUl9ZRUFSO1xuICAgICAgICBzZWNzID0gc2VjcyAlIFNFQ09ORFNfUEVSX1lFQVI7XG4gICAgbGV0IHdlZWsgPSBzZWNzIC8gU0VDT05EU19QRVJfV0VFSztcbiAgICAgICAgc2VjcyA9IHNlY3MgJSBTRUNPTkRTX1BFUl9XRUVLO1xuICAgIGxldCBkYXlzID0gc2VjcyAvIFNFQ09ORFNfUEVSX0RBWTtcbiAgICAgICAgc2VjcyA9IHNlY3MgJSBTRUNPTkRTX1BFUl9EQVk7XG4gICAgbGV0IGhvdXIgPSBzZWNzIC8gU0VDT05EU19QRVJfSE9VUjtcbiAgICAgICAgc2VjcyA9IHNlY3MgJSBTRUNPTkRTX1BFUl9IT1VSO1xuICAgIGxldCBtaW5zID0gc2VjcyAvIFNFQ09ORFNfUEVSX01JTlVURTtcbiAgICAgICAgc2VjcyA9IHNlY3MgJSBTRUNPTkRTX1BFUl9NSU5VVEU7XG4gICAgbGV0IG1zZWMgPSBuYW5vIC8gTkFOT1NFQ09ORFNfUEVSX01JTExJU0VDT05EO1xuICAgICAgICBuYW5vID0gbmFubyAlIE5BTk9TRUNPTkRTX1BFUl9NSUxMSVNFQ09ORDtcbiAgICBsZXQgdXNlYyA9IG5hbm8gLyBOQU5PU0VDT05EU19QRVJfTUlDUk9TRUNPTkQ7XG4gICAgICAgIG5hbm8gPSBuYW5vICUgTkFOT1NFQ09ORFNfUEVSX01JQ1JPU0VDT05EO1xuXG4gICAgY29uc3Qgbzoge1xuICAgICAgeWVhcnM/OiBudW1iZXJcbiAgICAgIHdlZWtzPzogbnVtYmVyXG4gICAgICBkYXlzPzogbnVtYmVyXG4gICAgICBob3Vycz86IG51bWJlclxuICAgICAgbWludXRlcz86IG51bWJlclxuICAgICAgc2Vjb25kcz86IG51bWJlclxuICAgICAgbWlsbGlzZWNvbmRzPzogbnVtYmVyXG4gICAgICBtaWNyb3NlY29uZHM/OiBudW1iZXJcbiAgICAgIG5hbm9zZWNvbmRzPzogbnVtYmVyXG4gICAgfSA9IHt9XG5cbiAgICBpZiAoeWVhcikgby55ZWFycyAgICAgICAgPSBOdW1iZXIoeWVhcik7XG4gICAgaWYgKHdlZWspIG8ud2Vla3MgICAgICAgID0gTnVtYmVyKHdlZWspO1xuICAgIGlmIChkYXlzKSBvLmRheXMgICAgICAgICA9IE51bWJlcihkYXlzKTtcbiAgICBpZiAoaG91cikgby5ob3VycyAgICAgICAgPSBOdW1iZXIoaG91cik7XG4gICAgaWYgKG1pbnMpIG8ubWludXRlcyAgICAgID0gTnVtYmVyKG1pbnMpO1xuICAgIGlmIChzZWNzKSBvLnNlY29uZHMgICAgICA9IE51bWJlcihzZWNzKTtcbiAgICBpZiAobXNlYykgby5taWxsaXNlY29uZHMgPSBOdW1iZXIobXNlYyk7XG4gICAgaWYgKHVzZWMpIG8ubWljcm9zZWNvbmRzID0gTnVtYmVyKHVzZWMpO1xuICAgIGlmIChuYW5vKSBvLm5hbm9zZWNvbmRzICA9IE51bWJlcihuYW5vKTtcblxuICAgIHJldHVybiBvXG4gIH1cblxuICBvdmVycmlkZSB2YWx1ZU9mKCk6IGJpZ2ludCB7XG4gICAgcmV0dXJuIHRoaXMuc2Vjb25kcyAqIE5BTk9TRUNPTkRTX1BFUl9TRUNPTkQgKyBCaWdJbnQodGhpcy5uYW5vc2Vjb25kcyk7XG4gIH1cblxuICAvLyBkcHJpbnQtaWdub3JlXG4gIG92ZXJyaWRlIHRvU3RyaW5nKCk6IHN0cmluZyB7XG4gICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL3N1cnJlYWxkYmRiL3N1cnJlYWxkYmRiL2Jsb2IvdjEuNS4yL2NvcmUvc3FsL2R1cmF0aW9uLnJzI0wxNTktTDIxN1xuXG4gICAgY29uc3QgbyA9IHRoaXMucGFyc2UoKTtcbiAgICBsZXQgcyA9IFwiXCI7XG5cbiAgICBpZiAoXCJ5ZWFyc1wiICAgICAgICBpbiBvKSBzICs9IG8ueWVhcnMgICAgICAgICsgXCJ5XCI7XG4gICAgaWYgKFwid2Vla3NcIiAgICAgICAgaW4gbykgcyArPSBvLndlZWtzICAgICAgICArIFwid1wiO1xuICAgIGlmIChcImRheXNcIiAgICAgICAgIGluIG8pIHMgKz0gby5kYXlzICAgICAgICAgKyBcImRcIjtcbiAgICBpZiAoXCJob3Vyc1wiICAgICAgICBpbiBvKSBzICs9IG8uaG91cnMgICAgICAgICsgXCJoXCI7XG4gICAgaWYgKFwibWludXRlc1wiICAgICAgaW4gbykgcyArPSBvLm1pbnV0ZXMgICAgICArIFwibVwiO1xuICAgIGlmIChcInNlY29uZHNcIiAgICAgIGluIG8pIHMgKz0gby5zZWNvbmRzICAgICAgKyBcInNcIjtcbiAgICBpZiAoXCJtaWxsaXNlY29uZHNcIiBpbiBvKSBzICs9IG8ubWlsbGlzZWNvbmRzICsgXCJtc1wiO1xuICAgIGlmIChcIm1pY3Jvc2Vjb25kc1wiIGluIG8pIHMgKz0gby5taWNyb3NlY29uZHMgKyBcIlx1MDBCNXNcIjtcbiAgICBpZiAoXCJuYW5vc2Vjb25kc1wiICBpbiBvKSBzICs9IG8ubmFub3NlY29uZHMgICsgXCJuc1wiO1xuXG4gICAgcmV0dXJuIHNcbiAgfVxuXG4gIFtTeW1ib2wudG9QcmltaXRpdmVdKGhpbnQ6IFwiZGVmYXVsdFwiIHwgXCJzdHJpbmdcIik6IHN0cmluZztcbiAgW1N5bWJvbC50b1ByaW1pdGl2ZV0oaGludDogXCJudW1iZXJcIik6IG51bWJlcjtcbiAgW1N5bWJvbC50b1ByaW1pdGl2ZV0oaGludDogc3RyaW5nKTogc3RyaW5nIHwgbnVtYmVyO1xuICBbU3ltYm9sLnRvUHJpbWl0aXZlXShoaW50OiBzdHJpbmcpOiBzdHJpbmcgfCBudW1iZXIge1xuICAgIHN3aXRjaCAoaGludCkge1xuICAgICAgY2FzZSBcIm51bWJlclwiOiB7XG4gICAgICAgIGNvbnN0IG1zID0gdGhpcy5zZWNvbmRzICogMV8wMDBuXG4gICAgICAgICAgKyBCaWdJbnQodGhpcy5uYW5vc2Vjb25kcykgLyAxXzAwMF8wMDBuO1xuXG4gICAgICAgIGlmIChtcyA+IEpTX01BWF9TQUZFX1VOU0lHTkVEX0lOVEVHRVIgfHwgbXMgPCAwbikge1xuICAgICAgICAgIHRocm93IG5ldyBOdW1iZXJSYW5nZUVycm9yKFswbiwgSlNfTUFYX1NBRkVfVU5TSUdORURfSU5URUdFUl0sIG1zLCB7XG4gICAgICAgICAgICBpbnRlZ2VyOiB0cnVlLFxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIE51bWJlcihtcykgKyAodGhpcy5uYW5vc2Vjb25kcyAlIDFlNikgLyAxZTY7XG4gICAgICB9XG5cbiAgICAgIGNhc2UgXCJzdHJpbmdcIjpcbiAgICAgIGNhc2UgXCJkZWZhdWx0XCI6XG4gICAgICAgIHJldHVybiB0aGlzLnRvU3RyaW5nKCk7XG5cbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHRocm93IFR5cGVFcnJvcihcIkludmFsaWQgaGludDogXCIgKyBTdHJpbmcoaGludCkpO1xuICAgIH1cbiAgfVxuXG4gIHRvQ0JPUigpOiBbXG4gICAgdGFnOiB0eXBlb2YgQ0JPUl9UQUdfRFVSQVRJT04sXG4gICAgdmFsdWU6IFtzZWNvbmRzOiBiaWdpbnQsIG5hbm9zZWNvbmRzOiBudW1iZXJdLFxuICBdIHtcbiAgICByZXR1cm4gW1xuICAgICAgQ0JPUl9UQUdfRFVSQVRJT04sXG4gICAgICBbdGhpcy5zZWNvbmRzLCB0aGlzLm5hbm9zZWNvbmRzXSxcbiAgICBdO1xuICB9XG5cbiAgdG9KU09OKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMudG9TdHJpbmcoKTtcbiAgfVxuXG4gIHRvU3VycWwoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy50b1N0cmluZygpO1xuICB9XG5cbiAgdG9QbGFpbk9iamVjdCgpOiB7XG4gICAgc2Vjb25kczogYmlnaW50O1xuICAgIG5hbm9zZWNvbmRzOiBudW1iZXI7XG4gIH0ge1xuICAgIHJldHVybiB7XG4gICAgICBzZWNvbmRzOiB0aGlzLnNlY29uZHMsXG4gICAgICBuYW5vc2Vjb25kczogdGhpcy5uYW5vc2Vjb25kcyxcbiAgICB9O1xuICB9XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsa0NBQWlDO0FBQ2pDLG9CQUFpQztBQUNqQyxrQkFBa0Q7QUFJbEQsSUFBTSxxQkFBcUI7QUFDM0IsSUFBTSxtQkFBbUIsTUFBTTtBQUMvQixJQUFNLGtCQUFrQixNQUFNO0FBQzlCLElBQU0sbUJBQW1CLEtBQUs7QUFDOUIsSUFBTSxtQkFBbUIsT0FBTztBQUNoQyxJQUFNLDhCQUE4QjtBQUNwQyxJQUFNLDhCQUE4QjtBQUNwQyxJQUFNLHlCQUF5QjtBQUUvQixJQUFNLCtCQUErQjtBQUtyQyxJQUFxQixZQUFyQixNQUFxQixrQkFBaUIsNEJBQUFBLFNBQTBCO0FBQUE7QUFBQSxFQUU5RCxRQVVFO0FBR0EsUUFBSSxPQUFPLEtBQUs7QUFDaEIsUUFBSSxPQUFPLE9BQU8sS0FBSyxX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