UNPKG

@azure/event-hubs

Version:
68 lines (67 loc) 2.01 kB
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