UNPKG

@tai-kun/surrealdb

Version:

The SurrealDB SDK for JavaScript

109 lines (107 loc) 9.01 kB
"use strict"; var __create = Object.create; var __defProp = Object.defineProperty; var __getOwnPropDesc = Object.getOwnPropertyDescriptor; var __getOwnPropNames = Object.getOwnPropertyNames; var __getProtoOf = Object.getPrototypeOf; 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 __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps( // If the importer is in node compatibility mode or this is not an ESM // file that has been converted to a CommonJS file using a Babel- // compatible transform (i.e. "__esModule" has not been set), then set // "default" to the CommonJS "module.exports" for node compatibility. isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, mod )); var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); // src/utils/task-queue.ts var task_queue_exports = {}; __export(task_queue_exports, { default: () => TaskQueue }); module.exports = __toCommonJS(task_queue_exports); var import_make_abort_api = __toESM(require("./make-abort-api.cjs"), 1); var import_stateful_promise = __toESM(require("./stateful-promise.cjs"), 1); var _TaskQueue = class _TaskQueue { constructor() { this._queue = []; this._idle = []; } rm(task) { const i = this._queue.indexOf(task); if (i >= 0) { this._queue.splice(i, 1); if (this._queue.length <= 0) { while (this._idle.length > 0) { this._idle.shift()(); } } } } /** * [API Reference](https://tai-kun.github.io/surrealdb.js/v2/api/utils/task-queue/#count) */ get count() { return this._queue.length; } /** * [API Reference](https://tai-kun.github.io/surrealdb.js/v2/api/utils/task-queue/#add) */ add(runner, options = {}) { let signal, abort; try { [signal, abort] = (0, import_make_abort_api.default)(options.signal); } catch (e) { return import_stateful_promise.default.reject(e); } const task = {}; task.abort = abort; task.promise = import_stateful_promise.default.try(runner, { signal }).then( (x) => { this.rm(task); return x; }, (e) => { this.rm(task); throw e; } ); this._queue.push(task); return task.promise; } /** * [API Reference](https://tai-kun.github.io/surrealdb.js/v2/api/utils/task-queue/#idle) */ idle() { if (this._queue.length <= 0) { return import_stateful_promise.default.resolve(); } return new import_stateful_promise.default((resolve) => { this._idle.push(resolve); }); } /** * [API Reference](https://tai-kun.github.io/surrealdb.js/v2/api/utils/task-queue/#abort) */ abort(reason) { for (const t of this._queue) { t.abort(reason); } } }; __name(_TaskQueue, "TaskQueue"); var TaskQueue = _TaskQueue; //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL3V0aWxzL3Rhc2stcXVldWUudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbImltcG9ydCBtYWtlQWJvcnRBcGkgZnJvbSBcIi4vbWFrZS1hYm9ydC1hcGlcIjtcbmltcG9ydCBTdGF0ZWZ1bFByb21pc2UgZnJvbSBcIi4vc3RhdGVmdWwtcHJvbWlzZVwiO1xuXG5pbnRlcmZhY2UgVGFzazxUVmFsdWUgPSB1bmtub3duPiB7XG4gIHJlYWRvbmx5IHByb21pc2U6IFN0YXRlZnVsUHJvbWlzZTxUVmFsdWU+O1xuICByZWFkb25seSBhYm9ydDogKHJlYXNvbj86IHVua25vd24pID0+IHZvaWQ7XG59XG5cbi8qKlxuICogW0FQSSBSZWZlcmVuY2VdKGh0dHBzOi8vdGFpLWt1bi5naXRodWIuaW8vc3VycmVhbGRiLmpzL3YyL2FwaS91dGlscy90YXNrLXF1ZXVlLyNhZGQpXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVGFza1J1bm5lckFyZ3Mge1xuICBzaWduYWw6IEFib3J0U2lnbmFsO1xufVxuXG4vKipcbiAqIFtBUEkgUmVmZXJlbmNlXShodHRwczovL3RhaS1rdW4uZ2l0aHViLmlvL3N1cnJlYWxkYi5qcy92Mi9hcGkvdXRpbHMvdGFzay1xdWV1ZS8jYWRkKVxuICovXG5leHBvcnQgaW50ZXJmYWNlIFRhc2tPcHRpb25zIHtcbiAgcmVhZG9ubHkgc2lnbmFsPzogQWJvcnRTaWduYWwgfCB1bmRlZmluZWQ7XG59XG5cbi8qKlxuICogW0FQSSBSZWZlcmVuY2VdKGh0dHBzOi8vdGFpLWt1bi5naXRodWIuaW8vc3VycmVhbGRiLmpzL3YyL2FwaS91dGlscy90YXNrLXF1ZXVlLylcbiAqL1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgVGFza1F1ZXVlIHtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IF9xdWV1ZTogVGFza1tdID0gW107XG4gIHByb3RlY3RlZCByZWFkb25seSBfaWRsZTogKCgpID0+IHZvaWQpW10gPSBbXTtcblxuICBwcm90ZWN0ZWQgcm0odGFzazogVGFzayk6IHZvaWQge1xuICAgIGNvbnN0IGkgPSB0aGlzLl9xdWV1ZS5pbmRleE9mKHRhc2spO1xuXG4gICAgaWYgKGkgPj0gMCkge1xuICAgICAgdGhpcy5fcXVldWUuc3BsaWNlKGksIDEpO1xuXG4gICAgICBpZiAodGhpcy5fcXVldWUubGVuZ3RoIDw9IDApIHtcbiAgICAgICAgd2hpbGUgKHRoaXMuX2lkbGUubGVuZ3RoID4gMCkge1xuICAgICAgICAgIHRoaXMuX2lkbGUuc2hpZnQoKSEoKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBbQVBJIFJlZmVyZW5jZV0oaHR0cHM6Ly90YWkta3VuLmdpdGh1Yi5pby9zdXJyZWFsZGIuanMvdjIvYXBpL3V0aWxzL3Rhc2stcXVldWUvI2NvdW50KVxuICAgKi9cbiAgZ2V0IGNvdW50KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuX3F1ZXVlLmxlbmd0aDtcbiAgfVxuXG4gIC8qKlxuICAgKiBbQVBJIFJlZmVyZW5jZV0oaHR0cHM6Ly90YWkta3VuLmdpdGh1Yi5pby9zdXJyZWFsZGIuanMvdjIvYXBpL3V0aWxzL3Rhc2stcXVldWUvI2FkZClcbiAgICovXG4gIGFkZDxUVmFsdWU+KFxuICAgIHJ1bm5lcjogKGFyZ3M6IFRhc2tSdW5uZXJBcmdzKSA9PiBUVmFsdWUgfCBQcm9taXNlTGlrZTxUVmFsdWU+LFxuICAgIG9wdGlvbnM6IFRhc2tPcHRpb25zIHwgdW5kZWZpbmVkID0ge30sXG4gICk6IFN0YXRlZnVsUHJvbWlzZTxUVmFsdWU+IHtcbiAgICBsZXQgc2lnbmFsOiBBYm9ydFNpZ25hbCwgYWJvcnQ6IChyZWFzb24/OiB1bmtub3duKSA9PiB2b2lkO1xuXG4gICAgdHJ5IHtcbiAgICAgIFtzaWduYWwsIGFib3J0XSA9IG1ha2VBYm9ydEFwaShvcHRpb25zLnNpZ25hbCk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgcmV0dXJuIFN0YXRlZnVsUHJvbWlzZS5yZWplY3QoZSk7XG4gICAgfVxuXG4gICAgY29uc3QgdGFzayA9IHt9IGFzIHsgLXJlYWRvbmx5IFtQIGluIGtleW9mIFRhc2s8VFZhbHVlPl06IFRhc2s8VFZhbHVlPltQXSB9O1xuICAgIHRhc2suYWJvcnQgPSBhYm9ydDtcbiAgICB0YXNrLnByb21pc2UgPSBTdGF0ZWZ1bFByb21pc2UudHJ5KHJ1bm5lciwgeyBzaWduYWwgfSkudGhlbihcbiAgICAgICh4KTogVFZhbHVlID0+IHtcbiAgICAgICAgdGhpcy5ybSh0YXNrKTtcbiAgICAgICAgcmV0dXJuIHg7XG4gICAgICB9LFxuICAgICAgKGUpOiBuZXZlciA9PiB7XG4gICAgICAgIHRoaXMucm0odGFzayk7XG4gICAgICAgIHRocm93IGU7XG4gICAgICB9LFxuICAgICk7XG4gICAgdGhpcy5fcXVldWUucHVzaCh0YXNrKTtcblxuICAgIHJldHVybiB0YXNrLnByb21pc2U7XG4gIH1cblxuICAvKipcbiAgICogW0FQSSBSZWZlcmVuY2VdKGh0dHBzOi8vdGFpLWt1bi5naXRodWIuaW8vc3VycmVhbGRiLmpzL3YyL2FwaS91dGlscy90YXNrLXF1ZXVlLyNpZGxlKVxuICAgKi9cbiAgaWRsZSgpOiBTdGF0ZWZ1bFByb21pc2U8dm9pZD4ge1xuICAgIGlmICh0aGlzLl9xdWV1ZS5sZW5ndGggPD0gMCkge1xuICAgICAgcmV0dXJuIFN0YXRlZnVsUHJvbWlzZS5yZXNvbHZlKCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG5ldyBTdGF0ZWZ1bFByb21pc2UocmVzb2x2ZSA9PiB7XG4gICAgICB0aGlzLl9pZGxlLnB1c2gocmVzb2x2ZSk7XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogW0FQSSBSZWZlcmVuY2VdKGh0dHBzOi8vdGFpLWt1bi5naXRodWIuaW8vc3VycmVhbGRiLmpzL3YyL2FwaS91dGlscy90YXNrLXF1ZXVlLyNhYm9ydClcbiAgICovXG4gIGFib3J0KHJlYXNvbj86IHVua25vd24pOiB2b2lkIHtcbiAgICBmb3IgKGNvbnN0IHQgb2YgdGhpcy5fcXVldWUpIHtcbiAgICAgIHQuYWJvcnQocmVhc29uKTtcbiAgICB9XG4gIH1cbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsNEJBQXlCO0FBQ3pCLDhCQUE0QjtBQXdCNUIsSUFBcUIsYUFBckIsTUFBcUIsV0FBVTtBQUFBLEVBQS9CO0FBQ0UsU0FBbUIsU0FBaUIsQ0FBQztBQUNyQyxTQUFtQixRQUF3QixDQUFDO0FBQUE7QUFBQSxFQUVsQyxHQUFHLE1BQWtCO0FBQzdCLFVBQU0sSUFBSSxLQUFLLE9BQU8sUUFBUSxJQUFJO0FBRWxDLFFBQUksS0FBSyxHQUFHO0FBQ1YsV0FBSyxPQUFPLE9BQU8sR0FBRyxDQUFDO0FBRXZCLFVBQUksS0FBSyxPQUFPLFVBQVUsR0FBRztBQUMzQixlQUFPLEtBQUssTUFBTSxTQUFTLEdBQUc7QUFDNUIsZUFBSyxNQUFNLE1BQU0sRUFBRztBQUFBLFFBQ3RCO0FBQUEsTUFDRjtBQUFBLElBQ0Y7QUFBQSxFQUNGO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFLQSxJQUFJLFFBQWdCO0FBQ2xCLFdBQU8sS0FBSyxPQUFPO0FBQUEsRUFDckI7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQUtBLElBQ0UsUUFDQSxVQUFtQyxDQUFDLEdBQ1g7QUFDekIsUUFBSSxRQUFxQjtBQUV6QixRQUFJO0FBQ0YsT0FBQyxRQUFRLEtBQUssUUFBSSxzQkFBQUEsU0FBYSxRQUFRLE1BQU07QUFBQSxJQUMvQyxTQUFTLEdBQUc7QUFDVixhQUFPLHdCQUFBQyxRQUFnQixPQUFPLENBQUM7QUFBQSxJQUNqQztBQUVBLFVBQU0sT0FBTyxDQUFDO0FBQ2QsU0FBSyxRQUFRO0FBQ2IsU0FBSyxVQUFVLHdCQUFBQSxRQUFnQixJQUFJLFFBQVEsRUFBRSxPQUFPLENBQUMsRUFBRTtBQUFBLE1BQ3JELENBQUMsTUFBYztBQUNiLGFBQUssR0FBRyxJQUFJO0FBQ1osZUFBTztBQUFBLE1BQ1Q7QUFBQSxNQUNBLENBQUMsTUFBYTtBQUNaLGFBQUssR0FBRyxJQUFJO0FBQ1osY0FBTTtBQUFBLE1BQ1I7QUFBQSxJQUNGO0FBQ0EsU0FBSyxPQUFPLEtBQUssSUFBSTtBQUVyQixXQUFPLEtBQUs7QUFBQSxFQUNkO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFLQSxPQUE4QjtBQUM1QixRQUFJLEtBQUssT0FBTyxVQUFVLEdBQUc7QUFDM0IsYUFBTyx3QkFBQUEsUUFBZ0IsUUFBUTtBQUFBLElBQ2pDO0FBRUEsV0FBTyxJQUFJLHdCQUFBQSxRQUFnQixhQUFXO0FBQ3BDLFdBQUssTUFBTSxLQUFLLE9BQU87QUFBQSxJQUN6QixDQUFDO0FBQUEsRUFDSDtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBS0EsTUFBTSxRQUF3QjtBQUM1QixlQUFXLEtBQUssS0FBSyxRQUFRO0FBQzNCLFFBQUUsTUFBTSxNQUFNO0FBQUEsSUFDaEI7QUFBQSxFQUNGO0FBQ0Y7QUE5RStCO0FBQS9CLElBQXFCLFlBQXJCOyIsCiAgIm5hbWVzIjogWyJtYWtlQWJvcnRBcGkiLCAiU3RhdGVmdWxQcm9taXNlIl0KfQo=