UNPKG

resolve-local-event-broker

Version:

The reSolve framework's event broker for applications on a local machine.

33 lines (26 loc) 2.11 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _constants = require("../constants"); const operationTypesMap = new Map([[_constants.PrivateOperationType.PUSH_NOTIFICATIONS, 'pushNotificationAndGetSubscriptions'], [_constants.PrivateOperationType.PULL_NOTIFICATIONS, 'pullNotificationsAsBatchForSubscriber'], [_constants.PrivateOperationType.RESUME_SUBSCRIBER, 'resumeSubscriber'], [_constants.PrivateOperationType.ACKNOWLEDGE_BATCH, 'acknowledgeBatch'], [_constants.PrivateOperationType.FINALIZE_BATCH, 'finalizeAndReportBatch'], [_constants.PrivateOperationType.REQUEST_TIMEOUT, 'requestTimeout'], [_constants.PrivateOperationType.DELIVER_BATCH, 'deliverBatchForSubscriber'], [_constants.PublicOperationType.PUBLISH, 'publish'], [_constants.PublicOperationType.SUBSCRIBE, 'subscribe'], [_constants.PublicOperationType.RESUBSCRIBE, 'resubscribe'], [_constants.PublicOperationType.UNSUBSCRIBE, 'unsubscribe'], [_constants.PublicOperationType.ACKNOWLEDGE, 'acknowledge'], [_constants.PublicOperationType.STATUS, 'status'], [_constants.PublicOperationType.RESUME, 'resume'], [_constants.PublicOperationType.PAUSE, 'pause'], [_constants.PublicOperationType.RESET, 'reset'], [_constants.PublicOperationType.READ, 'read']]); const invokeOperation = async (pool, laziness, { type, payload }, timeout) => { const methodName = operationTypesMap.get(type); if (methodName == null) { throw new Error(`Invalid invoke operation type "${type}" with payload: ${JSON.stringify(payload)}`); } if (laziness === _constants.LazinessStrategy.EAGER) { pool.multiplexAsync(pool[methodName].bind(pool), pool, payload); } else if (laziness === _constants.LazinessStrategy.LAZY && !isNaN(+timeout) && +timeout > 0) { setTimeout(pool.multiplexAsync.bind(pool, pool[methodName].bind(pool), pool, payload), +timeout); } else { throw new Error(`Invalid invoke operation type "${type}" with payload: ${JSON.stringify(payload)}`); } }; var _default = invokeOperation; exports.default = _default; //# sourceMappingURL=invoke-operation.js.map