@tai-kun/surrealdb
Version:
The SurrealDB SDK for JavaScript
114 lines (112 loc) • 13.3 kB
JavaScript
var __defProp = Object.defineProperty;
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
// src/data-types/encodable/duration.ts
import { Duration as Base } from "../decode-only/index.mjs";
import { NumberRangeError } from "../../errors/index.mjs";
import { CBOR_TAG_DURATION } from "./spec.mjs";
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 Base {
// 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 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 [
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;
export {
Duration as default
};
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2RhdGEtdHlwZXMvZW5jb2RhYmxlL2R1cmF0aW9uLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyJpbXBvcnQgeyBEdXJhdGlvbiBhcyBCYXNlIH0gZnJvbSBcIkB0YWkta3VuL3N1cnJlYWxkYi9kZWNvZGVvbmx5LWRhdGF0eXBlc1wiO1xuaW1wb3J0IHsgTnVtYmVyUmFuZ2VFcnJvciB9IGZyb20gXCJAdGFpLWt1bi9zdXJyZWFsZGIvZXJyb3JzXCI7XG5pbXBvcnQgeyBDQk9SX1RBR19EVVJBVElPTiwgdHlwZSBFbmNvZGFibGUgfSBmcm9tIFwiLi9zcGVjXCI7XG5cbmV4cG9ydCB0eXBlICogZnJvbSBcIi4uL2RlY29kZS1vbmx5L2R1cmF0aW9uXCI7XG5cbmNvbnN0IFNFQ09ORFNfUEVSX01JTlVURSA9IDYwbjtcbmNvbnN0IFNFQ09ORFNfUEVSX0hPVVIgPSA2MG4gKiBTRUNPTkRTX1BFUl9NSU5VVEU7XG5jb25zdCBTRUNPTkRTX1BFUl9EQVkgPSAyNG4gKiBTRUNPTkRTX1BFUl9IT1VSO1xuY29uc3QgU0VDT05EU19QRVJfV0VFSyA9IDduICogU0VDT05EU19QRVJfREFZO1xuY29uc3QgU0VDT05EU19QRVJfWUVBUiA9IDM2NW4gKiBTRUNPTkRTX1BFUl9EQVk7XG5jb25zdCBOQU5PU0VDT05EU19QRVJfTUlDUk9TRUNPTkQgPSAxXzAwMG47XG5jb25zdCBOQU5PU0VDT05EU19QRVJfTUlMTElTRUNPTkQgPSAxXzAwMF8wMDBuO1xuY29uc3QgTkFOT1NFQ09ORFNfUEVSX1NFQ09ORCA9IDFfMDAwXzAwMF8wMDBuO1xuXG5jb25zdCBKU19NQVhfU0FGRV9VTlNJR05FRF9JTlRFR0VSID0gOTAwNzE5OTI1NDc0MDk5MW47IC8vIDJeNTMtMVxuXG4vKipcbiAqIFtBUEkgUmVmZXJlbmNlXShodHRwczovL3RhaS1rdW4uZ2l0aHViLmlvL3N1cnJlYWxkYi5qcy92Mi9hcGkvZGF0YS9kdXJhdGlvbilcbiAqL1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgRHVyYXRpb24gZXh0ZW5kcyBCYXNlIGltcGxlbWVudHMgRW5jb2RhYmxlIHtcbiAgLy8gZHByaW50LWlnbm9yZVxuICBwYXJzZSgpOiB7XG4gICAgeWVhcnM/OiBudW1iZXI7XG4gICAgd2Vla3M/OiBudW1iZXI7XG4gICAgZGF5cz86IG51bWJlcjtcbiAgICBob3Vycz86IG51bWJlcjtcbiAgICBtaW51dGVzPzogbnVtYmVyO1xuICAgIHNlY29uZHM/OiBudW1iZXI7XG4gICAgbWlsbGlzZWNvbmRzPzogbnVtYmVyO1xuICAgIG1pY3Jvc2Vjb25kcz86IG51bWJlcjtcbiAgICBuYW5vc2Vjb25kcz86IG51bWJlcjtcbiAgfSB7XG4gICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL3N1cnJlYWxkYi9zdXJyZWFsZGIvYmxvYi92Mi4wLjEvY29yZS9zcmMvc3FsL2R1cmF0aW9uLnJzI0wxNjZcblxuICAgIGxldCBzZWNzID0gdGhpcy5zZWNvbmRzO1xuICAgIGxldCBuYW5vID0gQmlnSW50KHRoaXMubmFub3NlY29uZHMpO1xuXG4gICAgaWYgKHNlY3MgPT09IDBuICYmIG5hbm8gPT09IDBuKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBuYW5vc2Vjb25kczogMCxcbiAgICAgIH1cbiAgICB9XG5cbiAgICBsZXQgeWVhciA9IHNlY3MgLyBTRUNPTkRTX1BFUl9ZRUFSO1xuICAgICAgICBzZWNzID0gc2VjcyAlIFNFQ09ORFNfUEVSX1lFQVI7XG4gICAgbGV0IHdlZWsgPSBzZWNzIC8gU0VDT05EU19QRVJfV0VFSztcbiAgICAgICAgc2VjcyA9IHNlY3MgJSBTRUNPTkRTX1BFUl9XRUVLO1xuICAgIGxldCBkYXlzID0gc2VjcyAvIFNFQ09ORFNfUEVSX0RBWTtcbiAgICAgICAgc2VjcyA9IHNlY3MgJSBTRUNPTkRTX1BFUl9EQVk7XG4gICAgbGV0IGhvdXIgPSBzZWNzIC8gU0VDT05EU19QRVJfSE9VUjtcbiAgICAgICAgc2VjcyA9IHNlY3MgJSBTRUNPTkRTX1BFUl9IT1VSO1xuICAgIGxldCBtaW5zID0gc2VjcyAvIFNFQ09ORFNfUEVSX01JTlVURTtcbiAgICAgICAgc2VjcyA9IHNlY3MgJSBTRUNPTkRTX1BFUl9NSU5VVEU7XG4gICAgbGV0IG1zZWMgPSBuYW5vIC8gTkFOT1NFQ09ORFNfUEVSX01JTExJU0VDT05EO1xuICAgICAgICBuYW5vID0gbmFubyAlIE5BTk9TRUNPTkRTX1BFUl9NSUxMSVNFQ09ORDtcbiAgICBsZXQgdXNlYyA9IG5hbm8gLyBOQU5PU0VDT05EU19QRVJfTUlDUk9TRUNPTkQ7XG4gICAgICAgIG5hbm8gPSBuYW5vICUgTkFOT1NFQ09ORFNfUEVSX01JQ1JPU0VDT05EO1xuXG4gICAgY29uc3Qgbzoge1xuICAgICAgeWVhcnM/OiBudW1iZXJcbiAgICAgIHdlZWtzPzogbnVtYmVyXG4gICAgICBkYXlzPzogbnVtYmVyXG4gICAgICBob3Vycz86IG51bWJlclxuICAgICAgbWludXRlcz86IG51bWJlclxuICAgICAgc2Vjb25kcz86IG51bWJlclxuICAgICAgbWlsbGlzZWNvbmRzPzogbnVtYmVyXG4gICAgICBtaWNyb3NlY29uZHM/OiBudW1iZXJcbiAgICAgIG5hbm9zZWNvbmRzPzogbnVtYmVyXG4gICAgfSA9IHt9XG5cbiAgICBpZiAoeWVhcikgby55ZWFycyAgICAgICAgPSBOdW1iZXIoeWVhcik7XG4gICAgaWYgKHdlZWspIG8ud2Vla3MgICAgICAgID0gTnVtYmVyKHdlZWspO1xuICAgIGlmIChkYXlzKSBvLmRheXMgICAgICAgICA9IE51bWJlcihkYXlzKTtcbiAgICBpZiAoaG91cikgby5ob3VycyAgICAgICAgPSBOdW1iZXIoaG91cik7XG4gICAgaWYgKG1pbnMpIG8ubWludXRlcyAgICAgID0gTnVtYmVyKG1pbnMpO1xuICAgIGlmIChzZWNzKSBvLnNlY29uZHMgICAgICA9IE51bWJlcihzZWNzKTtcbiAgICBpZiAobXNlYykgby5taWxsaXNlY29uZHMgPSBOdW1iZXIobXNlYyk7XG4gICAgaWYgKHVzZWMpIG8ubWljcm9zZWNvbmRzID0gTnVtYmVyKHVzZWMpO1xuICAgIGlmIChuYW5vKSBvLm5hbm9zZWNvbmRzICA9IE51bWJlcihuYW5vKTtcblxuICAgIHJldHVybiBvXG4gIH1cblxuICBvdmVycmlkZSB2YWx1ZU9mKCk6IGJpZ2ludCB7XG4gICAgcmV0dXJuIHRoaXMuc2Vjb25kcyAqIE5BTk9TRUNPTkRTX1BFUl9TRUNPTkQgKyBCaWdJbnQodGhpcy5uYW5vc2Vjb25kcyk7XG4gIH1cblxuICAvLyBkcHJpbnQtaWdub3JlXG4gIG92ZXJyaWRlIHRvU3RyaW5nKCk6IHN0cmluZyB7XG4gICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL3N1cnJlYWxkYmRiL3N1cnJlYWxkYmRiL2Jsb2IvdjEuNS4yL2NvcmUvc3FsL2R1cmF0aW9uLnJzI0wxNTktTDIxN1xuXG4gICAgY29uc3QgbyA9IHRoaXMucGFyc2UoKTtcbiAgICBsZXQgcyA9IFwiXCI7XG5cbiAgICBpZiAoXCJ5ZWFyc1wiICAgICAgICBpbiBvKSBzICs9IG8ueWVhcnMgICAgICAgICsgXCJ5XCI7XG4gICAgaWYgKFwid2Vla3NcIiAgICAgICAgaW4gbykgcyArPSBvLndlZWtzICAgICAgICArIFwid1wiO1xuICAgIGlmIChcImRheXNcIiAgICAgICAgIGluIG8pIHMgKz0gby5kYXlzICAgICAgICAgKyBcImRcIjtcbiAgICBpZiAoXCJob3Vyc1wiICAgICAgICBpbiBvKSBzICs9IG8uaG91cnMgICAgICAgICsgXCJoXCI7XG4gICAgaWYgKFwibWludXRlc1wiICAgICAgaW4gbykgcyArPSBvLm1pbnV0ZXMgICAgICArIFwibVwiO1xuICAgIGlmIChcInNlY29uZHNcIiAgICAgIGluIG8pIHMgKz0gby5zZWNvbmRzICAgICAgKyBcInNcIjtcbiAgICBpZiAoXCJtaWxsaXNlY29uZHNcIiBpbiBvKSBzICs9IG8ubWlsbGlzZWNvbmRzICsgXCJtc1wiO1xuICAgIGlmIChcIm1pY3Jvc2Vjb25kc1wiIGluIG8pIHMgKz0gby5taWNyb3NlY29uZHMgKyBcIlx1MDBCNXNcIjtcbiAgICBpZiAoXCJuYW5vc2Vjb25kc1wiICBpbiBvKSBzICs9IG8ubmFub3NlY29uZHMgICsgXCJuc1wiO1xuXG4gICAgcmV0dXJuIHNcbiAgfVxuXG4gIFtTeW1ib2wudG9QcmltaXRpdmVdKGhpbnQ6IFwiZGVmYXVsdFwiIHwgXCJzdHJpbmdcIik6IHN0cmluZztcbiAgW1N5bWJvbC50b1ByaW1pdGl2ZV0oaGludDogXCJudW1iZXJcIik6IG51bWJlcjtcbiAgW1N5bWJvbC50b1ByaW1pdGl2ZV0oaGludDogc3RyaW5nKTogc3RyaW5nIHwgbnVtYmVyO1xuICBbU3ltYm9sLnRvUHJpbWl0aXZlXShoaW50OiBzdHJpbmcpOiBzdHJpbmcgfCBudW1iZXIge1xuICAgIHN3aXRjaCAoaGludCkge1xuICAgICAgY2FzZSBcIm51bWJlclwiOiB7XG4gICAgICAgIGNvbnN0IG1zID0gdGhpcy5zZWNvbmRzICogMV8wMDBuXG4gICAgICAgICAgKyBCaWdJbnQodGhpcy5uYW5vc2Vjb25kcykgLyAxXzAwMF8wMDBuO1xuXG4gICAgICAgIGlmIChtcyA+IEpTX01BWF9TQUZFX1VOU0lHTkVEX0lOVEVHRVIgfHwgbXMgPCAwbikge1xuICAgICAgICAgIHRocm93IG5ldyBOdW1iZXJSYW5nZUVycm9yKFswbiwgSlNfTUFYX1NBRkVfVU5TSUdORURfSU5URUdFUl0sIG1zLCB7XG4gICAgICAgICAgICBpbnRlZ2VyOiB0cnVlLFxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIE51bWJlcihtcykgKyAodGhpcy5uYW5vc2Vjb25kcyAlIDFlNikgLyAxZTY7XG4gICAgICB9XG5cbiAgICAgIGNhc2UgXCJzdHJpbmdcIjpcbiAgICAgIGNhc2UgXCJkZWZhdWx0XCI6XG4gICAgICAgIHJldHVybiB0aGlzLnRvU3RyaW5nKCk7XG5cbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHRocm93IFR5cGVFcnJvcihcIkludmFsaWQgaGludDogXCIgKyBTdHJpbmcoaGludCkpO1xuICAgIH1cbiAgfVxuXG4gIHRvQ0JPUigpOiBbXG4gICAgdGFnOiB0eXBlb2YgQ0JPUl9UQUdfRFVSQVRJT04sXG4gICAgdmFsdWU6IFtzZWNvbmRzOiBiaWdpbnQsIG5hbm9zZWNvbmRzOiBudW1iZXJdLFxuICBdIHtcbiAgICByZXR1cm4gW1xuICAgICAgQ0JPUl9UQUdfRFVSQVRJT04sXG4gICAgICBbdGhpcy5zZWNvbmRzLCB0aGlzLm5hbm9zZWNvbmRzXSxcbiAgICBdO1xuICB9XG5cbiAgdG9KU09OKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMudG9TdHJpbmcoKTtcbiAgfVxuXG4gIHRvU3VycWwoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy50b1N0cmluZygpO1xuICB9XG5cbiAgdG9QbGFpbk9iamVjdCgpOiB7XG4gICAgc2Vjb25kczogYmlnaW50O1xuICAgIG5hbm9zZWNvbmRzOiBudW1iZXI7XG4gIH0ge1xuICAgIHJldHVybiB7XG4gICAgICBzZWNvbmRzOiB0aGlzLnNlY29uZHMsXG4gICAgICBuYW5vc2Vjb25kczogdGhpcy5uYW5vc2Vjb25kcyxcbiAgICB9O1xuICB9XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7O0FBQUEsU0FBUyxZQUFZLFlBQVk7QUFDakMsU0FBUyx3QkFBd0I7QUFDakMsU0FBUyx5QkFBeUM7QUFJbEQsSUFBTSxxQkFBcUI7QUFDM0IsSUFBTSxtQkFBbUIsTUFBTTtBQUMvQixJQUFNLGtCQUFrQixNQUFNO0FBQzlCLElBQU0sbUJBQW1CLEtBQUs7QUFDOUIsSUFBTSxtQkFBbUIsT0FBTztBQUNoQyxJQUFNLDhCQUE4QjtBQUNwQyxJQUFNLDhCQUE4QjtBQUNwQyxJQUFNLHlCQUF5QjtBQUUvQixJQUFNLCtCQUErQjtBQUtyQyxJQUFxQixZQUFyQixNQUFxQixrQkFBaUIsS0FBMEI7QUFBQTtBQUFBLEVBRTlELFFBVUU7QUFHQSxRQUFJLE9BQU8sS0FBSztBQUNoQixRQUFJLE9BQU8sT0FBTyxLQUFLLFdBQVc7QUFFbEMsUUFBSSxTQUFTLE1BQU0sU0FBUyxJ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