@tai-kun/surrealdb
Version:
The SurrealDB SDK for JavaScript
109 lines (107 loc) • 9.01 kB
JavaScript
;
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=