UNPKG

firestore-queue

Version:

A powerful, scalable queue system built on Google Firestore with time-based indexing, auto-configuration, and connection reuse

72 lines 1.84 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.QueueManager = void 0; const FireQueue_1 = require("../core/FireQueue"); /** * Queue Manager for handling multiple queues */ class QueueManager { constructor() { this.queues = new Map(); } /** * Add a queue to the manager */ addQueue(name, config) { if (this.queues.has(name)) { throw new Error(`Queue '${name}' already exists`); } const queue = new FireQueue_1.FireQueue(config); this.queues.set(name, queue); return queue; } /** * Get a queue by name */ getQueue(name) { return this.queues.get(name); } /** * Initialize all queues */ async initializeAll() { const initPromises = Array.from(this.queues.values()).map(queue => queue.initialize()); await Promise.all(initPromises); } /** * Get metrics for all queues */ async getAllMetrics() { const metrics = {}; for (const [name, queue] of this.queues) { metrics[name] = await queue.getMetrics(); } return metrics; } /** * Shutdown all queues */ async shutdownAll() { const shutdownPromises = Array.from(this.queues.values()).map(queue => queue.shutdown()); await Promise.all(shutdownPromises); this.queues.clear(); } /** * List all queue names */ listQueues() { return Array.from(this.queues.keys()); } /** * Remove a queue */ async removeQueue(name) { const queue = this.queues.get(name); if (queue) { await queue.shutdown(); this.queues.delete(name); } } } exports.QueueManager = QueueManager; //# sourceMappingURL=QueueManager.js.map