@tai-kun/surrealdb
Version:
The SurrealDB SDK for JavaScript
40 lines (38 loc) • 3.16 kB
JavaScript
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