@azure/event-hubs
Version:
Azure Event Hubs SDK for JS.
68 lines (67 loc) • 2.01 kB
JavaScript
var __defProp = Object.defineProperty;
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
var __getOwnPropNames = Object.getOwnPropertyNames;
var __hasOwnProp = Object.prototype.hasOwnProperty;
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 __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
var awaitableQueue_exports = {};
__export(awaitableQueue_exports, {
AwaitableQueue: () => AwaitableQueue
});
module.exports = __toCommonJS(awaitableQueue_exports);
var import_core_util = require("@azure/core-util");
class AwaitableQueue {
_items;
_resolvers = [];
constructor() {
this._items = [];
}
size() {
return this._items.length;
}
/**
* Returns a Promise that will resolve with the next item in the queue.
*/
shift(options) {
const item = this._items.shift();
if (typeof item !== "undefined") {
return Promise.resolve(item);
}
return (0, import_core_util.createAbortablePromise)((resolve) => this._resolvers.push(resolve), {
...options,
cleanupBeforeAbort: () => this._resolvers.pop()
});
}
/**
* Appends new item to the queue.
*/
push(item) {
if (!this._resolveNextItem(item)) {
this._items.push(item);
}
}
_resolveNextItem(item) {
const resolver = this._resolvers.shift();
if (!resolver) {
return false;
}
resolver(item);
return true;
}
}
// Annotate the CommonJS export names for ESM import in node:
0 && (module.exports = {
AwaitableQueue
});
//# sourceMappingURL=awaitableQueue.js.map