UNPKG

@imqueue/core

Version:

Simple JSON-based messaging queue for inter service communication

74 lines 2.75 kB
"use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; var desc = Object.getOwnPropertyDescriptor(m, k); if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { desc = { enumerable: true, get: function() { return m[k]; } }; } Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; })); var __exportStar = (this && this.__exportStar) || function(m, exports) { for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); }; Object.defineProperty(exports, "__esModule", { value: true }); /*! * Message Queue factory for @imqueue/core * * I'm Queue Software Project * Copyright (C) 2025 imqueue.com <support@imqueue.com> * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see <https://www.gnu.org/licenses/>. * * If you want to use this code in a closed source (commercial) project, you can * purchase a proprietary commercial license. Please contact us at * <support@imqueue.com> to get commercial licensing options. */ require("reflect-metadata"); const src_1 = require("./src"); __exportStar(require("./src"), exports); /** * Message Queue Factory */ class IMQ { /** * Instantiate proper message queue instance using given user-options * * @param {string} name * @param {IMQOptions} options * @param {IMQMode} mode * @return {IMessageQueue} */ static create(name, options = {}, mode = src_1.IMQMode.BOTH) { options = Object.assign({}, IMQ.options, options); let ClassName = `${options.vendor}Queue`; if (options.cluster || options.clusterManagers) { ClassName = `Clustered${ClassName}`; } const Adapter = require(`${__dirname}/src/${ClassName}.js`)[ClassName]; return new Adapter(name, options, mode); } } /** * Base generic queue factory options * * @type {Partial<IMQOptions>} */ IMQ.options = { vendor: 'Redis', // default vendor }; exports.default = IMQ; //# sourceMappingURL=index.js.map