UNPKG

@tai-kun/surrealdb

Version:

The SurrealDB SDK for JavaScript

118 lines (116 loc) 13.8 kB
var __defProp = Object.defineProperty; var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); // src/utils/stateful-promise.ts var _StatefulPromise = class _StatefulPromise { /** * [API Reference](https://tai-kun.github.io/surrealdb.js/v2/api/utils/stateful-promise/#constructor) */ constructor(executor) { this._state = "pending"; this._promise = new Promise(executor).then( (value) => { this._value = value; this._state = "fulfilled"; }, (reason) => { this._value = reason; this._state = "rejected"; } ); } /** * [API Reference](https://tai-kun.github.io/surrealdb.js/v2/api/utils/stateful-promise/#resolve) */ static resolve(value) { if (value && typeof value === "object" && value.constructor === this) { return value; } return new this((resolve) => resolve(value)); } /** * [API Reference](https://tai-kun.github.io/surrealdb.js/v2/api/utils/stateful-promise/#reject) */ static reject(reason) { return new this((_, reject) => reject(reason)); } /** * [API Reference](https://tai-kun.github.io/surrealdb.js/v2/api/utils/stateful-promise/#withresolvers) */ static withResolvers() { let resolve; let reject; const promise = new this((res, rej) => { resolve = res; reject = rej; }); return { promise, resolve, reject }; } /** * [API Reference](https://tai-kun.github.io/surrealdb.js/v2/api/utils/stateful-promise/#try) */ static try(func, ...args) { return new this((resolve, reject) => { try { resolve(func(...args)); } catch (e) { reject(e); } }); } static allRejected(promises, extract = (x) => x) { return new this((resolve) => { const items = Array.from(promises); if (items.length <= 0) { return resolve([]); } const errors = []; let remaining = items.length; for (let i = 0, len = items.length; i < len; i++) { tick(extract(items[i])); } function tick(item) { if (item instanceof _StatefulPromise) { item.then(tick, (e) => errors.push(e) && tick()); } else if (--remaining <= 0) { resolve(errors); } } __name(tick, "tick"); }); } /** * [API Reference](https://tai-kun.github.io/surrealdb.js/v2/api/utils/stateful-promise/#state) */ get state() { return this._state; } /** * [API Reference](https://tai-kun.github.io/surrealdb.js/v2/api/utils/stateful-promise/#then) */ then(onFulfilled, onRejected) { const This = this.constructor; return new This((resolve, reject) => { (this._promise || Promise.resolve()).then(() => { this._promise = null; onFulfilled ||= /* @__PURE__ */ __name((x) => x, "onFulfilled"); onRejected ||= /* @__PURE__ */ __name((x) => { throw x; }, "onRejected"); return this._state === "fulfilled" ? onFulfilled(this._value) : onRejected(this._value); }).then(resolve, reject); }); } get [Symbol.toStringTag]() { return "StatefulPromise"; } }; __name(_StatefulPromise, "StatefulPromise"); var StatefulPromise = _StatefulPromise; export { StatefulPromise as default }; //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL3V0aWxzL3N0YXRlZnVsLXByb21pc2UudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogW0FQSSBSZWZlcmVuY2VdKGh0dHBzOi8vdGFpLWt1bi5naXRodWIuaW8vc3VycmVhbGRiLmpzL3YyL2FwaS91dGlscy9zdGF0ZWZ1bC1wcm9taXNlLyNzdGF0ZSlcbiAqL1xuZXhwb3J0IHR5cGUgU3RhdGVmdWxQcm9taXNlU3RhdGUgPSBcInBlbmRpbmdcIiB8IFwiZnVsZmlsbGVkXCIgfCBcInJlamVjdGVkXCI7XG5cbi8qKlxuICogW0FQSSBSZWZlcmVuY2VdKGh0dHBzOi8vdGFpLWt1bi5naXRodWIuaW8vc3VycmVhbGRiLmpzL3YyL2FwaS91dGlscy9zdGF0ZWZ1bC1wcm9taXNlLyNjb25zdHJ1Y3RvcilcbiAqL1xuZXhwb3J0IHR5cGUgU3RhdGVmdWxQcm9taXNlRXhlY3V0b3I8VFZhbHVlPiA9IChcbiAgcmVzb2x2ZTogKHZhbHVlOiBUVmFsdWUgfCBQcm9taXNlTGlrZTxUVmFsdWU+KSA9PiB2b2lkLFxuICByZWplY3Q6IChyZWFzb246IHVua25vd24pID0+IHZvaWQsXG4pID0+IHZvaWQ7XG5cbi8qKlxuICogW0FQSSBSZWZlcmVuY2VdKGh0dHBzOi8vdGFpLWt1bi5naXRodWIuaW8vc3VycmVhbGRiLmpzL3YyL2FwaS91dGlscy9zdGF0ZWZ1bC1wcm9taXNlLylcbiAqL1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgU3RhdGVmdWxQcm9taXNlPFRWYWx1ZT4gaW1wbGVtZW50cyBQcm9taXNlTGlrZTxUVmFsdWU+IHtcbiAgLyoqXG4gICAqIFtBUEkgUmVmZXJlbmNlXShodHRwczovL3RhaS1rdW4uZ2l0aHViLmlvL3N1cnJlYWxkYi5qcy92Mi9hcGkvdXRpbHMvc3RhdGVmdWwtcHJvbWlzZS8jcmVzb2x2ZSlcbiAgICovXG4gIHN0YXRpYyByZXNvbHZlPFRWYWx1ZSA9IHZvaWQ+KHZhbHVlPzogVFZhbHVlIHwgUHJvbWlzZUxpa2U8VFZhbHVlPikge1xuICAgIGlmICh2YWx1ZSAmJiB0eXBlb2YgdmFsdWUgPT09IFwib2JqZWN0XCIgJiYgdmFsdWUuY29uc3RydWN0b3IgPT09IHRoaXMpIHtcbiAgICAgIHJldHVybiB2YWx1ZSBhcyBuZXZlcjtcbiAgICB9XG5cbiAgICByZXR1cm4gbmV3IHRoaXM8VFZhbHVlPihyZXNvbHZlID0+IHJlc29sdmUodmFsdWUhKSk7XG4gIH1cblxuICAvKipcbiAgICogW0FQSSBSZWZlcmVuY2VdKGh0dHBzOi8vdGFpLWt1bi5naXRodWIuaW8vc3VycmVhbGRiLmpzL3YyL2FwaS91dGlscy9zdGF0ZWZ1bC1wcm9taXNlLyNyZWplY3QpXG4gICAqL1xuICBzdGF0aWMgcmVqZWN0PFRWYWx1ZSA9IG5ldmVyPihyZWFzb24/OiB1bmtub3duKTogU3RhdGVmdWxQcm9taXNlPFRWYWx1ZT4ge1xuICAgIHJldHVybiBuZXcgdGhpczxUVmFsdWU+KChfLCByZWplY3QpID0+IHJlamVjdChyZWFzb24pKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBbQVBJIFJlZmVyZW5jZV0oaHR0cHM6Ly90YWkta3VuLmdpdGh1Yi5pby9zdXJyZWFsZGIuanMvdjIvYXBpL3V0aWxzL3N0YXRlZnVsLXByb21pc2UvI3dpdGhyZXNvbHZlcnMpXG4gICAqL1xuICBzdGF0aWMgd2l0aFJlc29sdmVyczxUVmFsdWU+KCk6IHtcbiAgICBwcm9taXNlOiBTdGF0ZWZ1bFByb21pc2U8VFZhbHVlPjtcbiAgICByZXNvbHZlOiAodmFsdWU6IFRWYWx1ZSB8IFByb21pc2VMaWtlPFRWYWx1ZT4pID0+IHZvaWQ7XG4gICAgcmVqZWN0OiAocmVhc29uOiB1bmtub3duKSA9PiB2b2lkO1xuICB9IHtcbiAgICBsZXQgcmVzb2x2ZTogKHZhbHVlOiBUVmFsdWUgfCBQcm9taXNlTGlrZTxUVmFsdWU+KSA9PiB2b2lkO1xuICAgIGxldCByZWplY3Q6IChyZWFzb246IHVua25vd24pID0+IHZvaWQ7XG4gICAgY29uc3QgcHJvbWlzZSA9IG5ldyB0aGlzPFRWYWx1ZT4oKHJlcywgcmVqKSA9PiB7XG4gICAgICByZXNvbHZlID0gcmVzO1xuICAgICAgcmVqZWN0ID0gcmVqO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIHByb21pc2UsXG4gICAgICByZXNvbHZlOiByZXNvbHZlISxcbiAgICAgIHJlamVjdDogcmVqZWN0ISxcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIFtBUEkgUmVmZXJlbmNlXShodHRwczovL3RhaS1rdW4uZ2l0aHViLmlvL3N1cnJlYWxkYi5qcy92Mi9hcGkvdXRpbHMvc3RhdGVmdWwtcHJvbWlzZS8jdHJ5KVxuICAgKi9cbiAgc3RhdGljIHRyeTxUVmFsdWUsIFRBcmdzIGV4dGVuZHMgcmVhZG9ubHkgdW5rbm93bltdPihcbiAgICBmdW5jOiAoLi4uYXJnczogVEFyZ3MpID0+IFRWYWx1ZSB8IFByb21pc2VMaWtlPFRWYWx1ZT4sXG4gICAgLi4uYXJnczogVEFyZ3NcbiAgKTogU3RhdGVmdWxQcm9taXNlPFRWYWx1ZT4ge1xuICAgIHJldHVybiBuZXcgdGhpczxUVmFsdWU+KChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIHRyeSB7XG4gICAgICAgIHJlc29sdmUoZnVuYyguLi5hcmdzKSk7XG4gICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIHJlamVjdChlKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBbQVBJIFJlZmVyZW5jZV0oaHR0cHM6Ly90YWkta3VuLmdpdGh1Yi5pby9zdXJyZWFsZGIuanMvdjIvYXBpL3V0aWxzL3N0YXRlZnVsLXByb21pc2UvI2FsbHJlamVjdGVkKVxuICAgKi9cbiAgc3RhdGljIGFsbFJlamVjdGVkKHByb21pc2VzOiBJdGVyYWJsZTx1bmtub3duPik6IFN0YXRlZnVsUHJvbWlzZTx1bmtub3duW10+O1xuXG4gIC8qKlxuICAgKiBbQVBJIFJlZmVyZW5jZV0oaHR0cHM6Ly90YWkta3VuLmdpdGh1Yi5pby9zdXJyZWFsZGIuanMvdjIvYXBpL3V0aWxzL3N0YXRlZnVsLXByb21pc2UvI2FsbHJlamVjdGVkKVxuICAgKi9cbiAgc3RhdGljIGFsbFJlamVjdGVkPFRJdGVtPihcbiAgICBwcm9taXNlczogSXRlcmFibGU8VEl0ZW0+LFxuICAgIGV4dHJhY3Q6IChpdGVtOiBUSXRlbSkgPT4gdW5rbm93bixcbiAgKTogU3RhdGVmdWxQcm9taXNlPHVua25vd25bXT47XG5cbiAgc3RhdGljIGFsbFJlamVjdGVkKFxuICAgIHByb21pc2VzOiBJdGVyYWJsZTx1bmtub3duPixcbiAgICBleHRyYWN0OiAoaXRlbTogdW5rbm93bikgPT4gdW5rbm93biA9IHggPT4geCxcbiAgKTogU3RhdGVmdWxQcm9taXNlPHVua25vd25bXT4ge1xuICAgIHJldHVybiBuZXcgdGhpczx1bmtub3duW10+KHJlc29sdmUgPT4ge1xuICAgICAgY29uc3QgaXRlbXMgPSBBcnJheS5mcm9tKHByb21pc2VzKTtcblxuICAgICAgaWYgKGl0ZW1zLmxlbmd0aCA8PSAwKSB7XG4gICAgICAgIHJldHVybiByZXNvbHZlKFtdKTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgZXJyb3JzOiB1bmtub3duW10gPSBbXTtcbiAgICAgIGxldCByZW1haW5pbmcgPSBpdGVtcy5sZW5ndGg7XG5cbiAgICAgIGZvciAobGV0IGkgPSAwLCBsZW4gPSBpdGVtcy5sZW5ndGg7IGkgPCBsZW47IGkrKykge1xuICAgICAgICB0aWNrKGV4dHJhY3QoaXRlbXNbaV0pKTtcbiAgICAgIH1cblxuICAgICAgZnVuY3Rpb24gdGljayhpdGVtPzogdW5rbm93bik6IHZvaWQge1xuICAgICAgICBpZiAoaXRlbSBpbnN0YW5jZW9mIFN0YXRlZnVsUHJvbWlzZSkge1xuICAgICAgICAgIGl0ZW0udGhlbih0aWNrLCBlID0+IGVycm9ycy5wdXNoKGUpICYmIHRpY2soKSk7XG4gICAgICAgIH0gZWxzZSBpZiAoLS1yZW1haW5pbmcgPD0gMCkge1xuICAgICAgICAgIHJlc29sdmUoZXJyb3JzKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHJvdGVjdGVkIF92YWx1ZTogYW55O1xuICBwcm90ZWN0ZWQgX3N0YXRlOiBTdGF0ZWZ1bFByb21pc2VTdGF0ZSA9IFwicGVuZGluZ1wiO1xuICBwcm90ZWN0ZWQgX3Byb21pc2U6IFByb21pc2U8dm9pZD4gfCBudWxsO1xuXG4gIC8qKlxuICAgKiBbQVBJIFJlZmVyZW5jZV0oaHR0cHM6Ly90YWkta3VuLmdpdGh1Yi5pby9zdXJyZWFsZGIuanMvdjIvYXBpL3V0aWxzL3N0YXRlZnVsLXByb21pc2UvI2NvbnN0cnVjdG9yKVxuICAgKi9cbiAgY29uc3RydWN0b3IoZXhlY3V0b3I6IFN0YXRlZnVsUHJvbWlzZUV4ZWN1dG9yPFRWYWx1ZT4pIHtcbiAgICB0aGlzLl9wcm9taXNlID0gbmV3IFByb21pc2U8VFZhbHVlPihleGVjdXRvcikudGhlbihcbiAgICAgIHZhbHVlID0+IHtcbiAgICAgICAgdGhpcy5fdmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgdGhpcy5fc3RhdGUgPSBcImZ1bGZpbGxlZFwiO1xuICAgICAgfSxcbiAgICAgIHJlYXNvbiA9PiB7XG4gICAgICAgIHRoaXMuX3ZhbHVlID0gcmVhc29uO1xuICAgICAgICB0aGlzLl9zdGF0ZSA9IFwicmVqZWN0ZWRcIjtcbiAgICAgIH0sXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBbQVBJIFJlZmVyZW5jZV0oaHR0cHM6Ly90YWkta3VuLmdpdGh1Yi5pby9zdXJyZWFsZGIuanMvdjIvYXBpL3V0aWxzL3N0YXRlZnVsLXByb21pc2UvI3N0YXRlKVxuICAgKi9cbiAgZ2V0IHN0YXRlKCk6IFN0YXRlZnVsUHJvbWlzZVN0YXRlIHtcbiAgICByZXR1cm4gdGhpcy5fc3RhdGU7XG4gIH1cblxuICAvKipcbiAgICogW0FQSSBSZWZlcmVuY2VdKGh0dHBzOi8vdGFpLWt1bi5naXRodWIuaW8vc3VycmVhbGRiLmpzL3YyL2FwaS91dGlscy9zdGF0ZWZ1bC1wcm9taXNlLyN0aGVuKVxuICAgKi9cbiAgdGhlbjxURnVsZmlsbGVkVmFsdWUgPSBUVmFsdWUsIFRSZWplY3RlZFZhbHVlID0gbmV2ZXI+KFxuICAgIG9uRnVsZmlsbGVkPzpcbiAgICAgIHwgKCh2YWx1ZTogVFZhbHVlKSA9PiBURnVsZmlsbGVkVmFsdWUgfCBQcm9taXNlTGlrZTxURnVsZmlsbGVkVmFsdWU+KVxuICAgICAgfCB1bmRlZmluZWRcbiAgICAgIHwgbnVsbCxcbiAgICBvblJlamVjdGVkPzpcbiAgICAgIHwgKChyZWFzb246IHVua25vd24pID0+IFRSZWplY3RlZFZhbHVlIHwgUHJvbWlzZUxpa2U8VFJlamVjdGVkVmFsdWU+KVxuICAgICAgfCB1bmRlZmluZWRcbiAgICAgIHwgbnVsbCxcbiAgKTogU3RhdGVmdWxQcm9taXNlPFRGdWxmaWxsZWRWYWx1ZSB8IFRSZWplY3RlZFZhbHVlPiB7XG4gICAgY29uc3QgVGhpcyA9IHRoaXMuY29uc3RydWN0b3IgYXMgdHlwZW9mIFN0YXRlZnVsUHJvbWlzZTxcbiAgICAgIFRGdWxmaWxsZWRWYWx1ZSB8IFRSZWplY3RlZFZhbHVlXG4gICAgPjtcblxuICAgIHJldHVybiBuZXcgVGhpcygocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICAodGhpcy5fcHJvbWlzZSB8fCBQcm9taXNlLnJlc29sdmUoKSlcbiAgICAgICAgLnRoZW4oKCkgPT4ge1xuICAgICAgICAgIC8vIFx1NEUwRFx1ODk4MVx1MzA2Qlx1MzA2QVx1MzA2M1x1MzA1RiBQcm9taXNlIFx1MzBBQVx1MzBENlx1MzBCOFx1MzBBN1x1MzBBRlx1MzBDOFx1MzA0QyBHQyBcdTMwNkJcdTMwODhcdTMwNjNcdTMwNjZcdTMwRTFcdTMwRTJcdTMwRUFcdTMwNEJcdTMwODlcdTk1OEJcdTY1M0VcdTMwNTVcdTMwOENcdTMwOEJcdTMwNTNcdTMwNjhcdTMwOTJcdTRGQzNcdTMwNTlcdTMwNUZcdTMwODFcdTMwNkJcdTMwMDFcbiAgICAgICAgICAvLyBgdGhpcy5fcHJvbWlzZWAgXHUzMDkyIGBudWxsYCBcdTMwNkJcdThBMkRcdTVCOUFcdTMwNTdcdTMwN0VcdTMwNTlcdTMwMDJcbiAgICAgICAgICB0aGlzLl9wcm9taXNlID0gbnVsbDtcbiAgICAgICAgICBvbkZ1bGZpbGxlZCB8fD0geCA9PiB4IGFzIGFueTtcbiAgICAgICAgICBvblJlamVjdGVkIHx8PSB4ID0+IHtcbiAgICAgICAgICAgIHRocm93IHg7XG4gICAgICAgICAgfTtcblxuICAgICAgICAgIHJldHVybiB0aGlzLl9zdGF0ZSA9PT0gXCJmdWxmaWxsZWRcIlxuICAgICAgICAgICAgPyBvbkZ1bGZpbGxlZCh0aGlzLl92YWx1ZSlcbiAgICAgICAgICAgIDogb25SZWplY3RlZCh0aGlzLl92YWx1ZSk7XG4gICAgICAgIH0pXG4gICAgICAgIC50aGVuKHJlc29sdmUsIHJlamVjdCk7XG4gICAgfSk7XG4gIH1cblxuICBnZXQgW1N5bWJvbC50b1N0cmluZ1RhZ10oKTogc3RyaW5nIHtcbiAgICByZXR1cm4gXCJTdGF0ZWZ1bFByb21pc2VcIjtcbiAgfVxufVxuIl0sCiAgIm1hcHBpbmdzIjogIjs7OztBQWdCQSxJQUFxQixtQkFBckIsTUFBcUIsaUJBQXVEO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUF5RzFFLFlBQVksVUFBMkM7QUFOdkQsU0FBVSxTQUErQjtBQU92QyxTQUFLLFdBQVcsSUFBSSxRQUFnQixRQUFRLEVBQUU7QUFBQSxNQUM1QyxXQUFTO0FBQ1AsYUFBSyxTQUFTO0FBQ2QsYUFBSyxTQUFTO0FBQUEsTUFDaEI7QUFBQSxNQUNBLFlBQVU7QUFDUixhQUFLLFNBQVM7QUFDZCxhQUFLLFNBQVM7QUFBQSxNQUNoQjtBQUFBLElBQ0Y7QUFBQSxFQUNGO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFoSEEsT0FBTyxRQUF1QixPQUFzQztBQUNsRSxRQUFJLFNBQVMsT0FBTyxVQUFVLFlBQVksTUFBTSxnQkFBZ0IsTUFBTTtBQUNwRSxhQUFPO0FBQUEsSUFDVDtBQUVBLFdBQU8sSUFBSSxLQUFhLGFBQVcsUUFBUSxLQUFNLENBQUM7QUFBQSxFQUNwRDtBQUFBO0FBQUE7QUFB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