UNPKG

resolve-local-event-broker

Version:

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

69 lines (57 loc) 1.43 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _resolveLocalRpc = require("resolve-local-rpc"); const getProvider = (host, key) => { switch (key) { case 'BeginXATransaction': case 'CommitXATransaction': case 'RollbackXATransaction': case 'Drop': case 'SendEvents': return host.eventListener; case 'LoadEvents': case 'SaveEvent': return host.eventStore; default: { throw new Error(`Invalid key ${key}`); } } }; const createAndInitConsumer = async config => { const { baseResolve, initResolve, disposeResolve, address } = config; const consumerMethod = async (key, ...args) => { const currentResolve = Object.create(baseResolve); try { await initResolve(currentResolve); const provider = getProvider(currentResolve, key); const result = await provider[key](...args); return result; } finally { await disposeResolve(currentResolve); } }; const consumer = new Proxy({}, { get(_, key) { return consumerMethod.bind(null, key); }, set() { throw new Error(`Consumer API is immutable`); } }); return await (0, _resolveLocalRpc.createServer)({ hostObject: consumer, address }); }; var _default = createAndInitConsumer; exports.default = _default; //# sourceMappingURL=index.js.map