UNPKG

@tai-kun/surrealdb

Version:

The SurrealDB SDK for JavaScript

40 lines (38 loc) 3.16 kB
var __defProp = Object.defineProperty; var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); // src/utils/serial.ts import { NumberRangeError } from "../errors/index.mjs"; var MAX_SAFE_INTEGER = 9007199254740991; var _Serial = class _Serial { /** * [API Reference](https://tai-kun.github.io/surrealdb.js/v2/api/utils/serial/#constructor) */ constructor(max = MAX_SAFE_INTEGER) { this._id = 0; if (Number.isSafeInteger(max) && max > 0) { this._max = max; } else { throw new NumberRangeError([1, MAX_SAFE_INTEGER], max, { integer: true }); } } /** * [API Reference](https://tai-kun.github.io/surrealdb.js/v2/api/utils/serial/#next) */ next() { return this._id = this._id % this._max + 1; } /** * [API Reference](https://tai-kun.github.io/surrealdb.js/v2/api/utils/serial/#reset) */ reset() { this._id = 0; } }; __name(_Serial, "Serial"); var Serial = _Serial; export { Serial as default }; //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL3V0aWxzL3NlcmlhbC50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiaW1wb3J0IHsgTnVtYmVyUmFuZ2VFcnJvciB9IGZyb20gXCJAdGFpLWt1bi9zdXJyZWFsZGIvZXJyb3JzXCI7XG5cbmNvbnN0IE1BWF9TQUZFX0lOVEVHRVIgPSA5MDA3MTk5MjU0NzQwOTkxO1xuXG4vKipcbiAqIFtBUEkgUmVmZXJlbmNlXShodHRwczovL3RhaS1rdW4uZ2l0aHViLmlvL3N1cnJlYWxkYi5qcy92Mi9hcGkvdXRpbHMvc2VyaWFsLylcbiAqL1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgU2VyaWFsIHtcbiAgcHJvdGVjdGVkIF9pZCA9IDA7XG4gIHByb3RlY3RlZCBfbWF4OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFtBUEkgUmVmZXJlbmNlXShodHRwczovL3RhaS1rdW4uZ2l0aHViLmlvL3N1cnJlYWxkYi5qcy92Mi9hcGkvdXRpbHMvc2VyaWFsLyNjb25zdHJ1Y3RvcilcbiAgICovXG4gIGNvbnN0cnVjdG9yKG1heDogbnVtYmVyIHwgdW5kZWZpbmVkID0gTUFYX1NBRkVfSU5URUdFUikge1xuICAgIGlmIChOdW1iZXIuaXNTYWZlSW50ZWdlcihtYXgpICYmIG1heCA+IDApIHtcbiAgICAgIHRoaXMuX21heCA9IG1heDtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhyb3cgbmV3IE51bWJlclJhbmdlRXJyb3IoWzEsIE1BWF9TQUZFX0lOVEVHRVJdLCBtYXgsIHtcbiAgICAgICAgaW50ZWdlcjogdHJ1ZSxcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBbQVBJIFJlZmVyZW5jZV0oaHR0cHM6Ly90YWkta3VuLmdpdGh1Yi5pby9zdXJyZWFsZGIuanMvdjIvYXBpL3V0aWxzL3NlcmlhbC8jbmV4dClcbiAgICovXG4gIG5leHQoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gKHRoaXMuX2lkID0gdGhpcy5faWQgJSB0aGlzLl9tYXggKyAxKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBbQVBJIFJlZmVyZW5jZV0oaHR0cHM6Ly90YWkta3VuLmdpdGh1Yi5pby9zdXJyZWFsZGIuanMvdjIvYXBpL3V0aWxzL3NlcmlhbC8jcmVzZXQpXG4gICAqL1xuICByZXNldCgpOiB2b2lkIHtcbiAgICB0aGlzLl9pZCA9IDA7XG4gIH1cbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7QUFBQSxTQUFTLHdCQUF3QjtBQUVqQyxJQUFNLG1CQUFtQjtBQUt6QixJQUFxQixVQUFyQixNQUFxQixRQUFPO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFPMUIsWUFBWSxNQUEwQixrQkFBa0I7QUFOeEQsU0FBVSxNQUFNO0FBT2QsUUFBSSxPQUFPLGNBQWMsR0FBRyxLQUFLLE1BQU0sR0FBRztBQUN4QyxXQUFLLE9BQU87QUFBQSxJQUNkLE9BQU87QUFDTCxZQUFNLElBQUksaUJBQWlCLENBQUMsR0FBRyxnQkFBZ0IsR0FBRyxLQUFLO0FBQUEsUUFDckQsU0FBUztBQUFBLE1BQ1gsQ0FBQztBQUFBLElBQ0g7QUFBQSxFQUNGO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFLQSxPQUFlO0FBQ2IsV0FBUSxLQUFLLE1BQU0sS0FBSyxNQUFNLEtBQUssT0FBTztBQUFBLEVBQzVDO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFLQSxRQUFjO0FBQ1osU0FBSyxNQUFNO0FBQUEsRUFDYjtBQUNGO0FBOUI0QjtBQUE1QixJQUFxQixTQUFyQjsiLAogICJuYW1lcyI6IFtdCn0K