UNPKG

evtstore

Version:

Event Sourcing with Node.JS

61 lines 4.47 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.createDomainV2 = exports.createDomain = void 0; const create_aggregate_1 = require("./create-aggregate"); const event_handler_1 = require("./event-handler"); function createDomain(opts, aggregates) { return createDomainV2(opts, aggregates); } exports.createDomain = createDomain; function createDomainV2(opts, aggregates) { const _store = {}; for (const [key, storableAgg] of Object.entries(aggregates)) { const aggOpts = { ...storableAgg, provider: opts.provider, useCache: opts.useCache, }; _store[key] = aggOpts.persistAggregate && aggOpts.version ? (0, create_aggregate_1.createPersistedAggregate)(aggOpts) : (0, create_aggregate_1.createProvidedAggregate)(aggOpts); } const createHandler = (bookmark, streams, options = {}) => { const callbacks = new Map(); const handler = new event_handler_1.EventHandler({ bookmark, provider: opts.provider, stream: streams, ...options, }); const handlerCallback = (id, event, meta) => { const cb = callbacks.get(`${meta.stream}-${event.type}`); if (!cb) return; return cb(id, event, meta); }; const handle = (stream, event, callback) => { callbacks.set(`${stream}-${event}`, callback); handler.handle(event, handlerCallback); }; return { handle, name: handler.name, start: handler.start, stop: handler.stop, runOnce: handler.runOnce, run: handler.run, setPosition: handler.setPosition, getPosition: handler.getPosition, reset: handler.reset, __handler: handler, }; }; const domain = _store; return { domain, createHandler, }; } exports.createDomainV2 = createDomainV2; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9tYWluLXYyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiZG9tYWluLXYyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHlEQUFzRjtBQUN0RixtREFBOEM7QUFzQzlDLFNBQWdCLFlBQVksQ0FBOEIsSUFBZSxFQUFFLFVBQWdCO0lBQ3pGLE9BQU8sY0FBYyxDQUFDLElBQUksRUFBRSxVQUFVLENBQUMsQ0FBQTtBQUN6QyxDQUFDO0FBRkQsb0NBRUM7QUFFRCxTQUFnQixjQUFjLENBQThCLElBQWUsRUFBRSxVQUFnQjtJQUUzRixNQUFNLE1BQU0sR0FBUSxFQUFFLENBQUE7SUFFdEIsS0FBSyxNQUFNLENBQUMsR0FBRyxFQUFFLFdBQVcsQ0FBQyxJQUFJLE1BQU0sQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLEVBQUU7UUFDM0QsTUFBTSxPQUFPLEdBQUc7WUFDZCxHQUFHLFdBQVc7WUFDZCxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVE7WUFDdkIsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRO1NBQ3hCLENBQUE7UUFFRCxNQUFNLENBQUMsR0FBRyxDQUFDO1lBQ1QsT0FBTyxDQUFDLGdCQUFnQixJQUFJLE9BQU8sQ0FBQyxPQUFPO2dCQUN6QyxDQUFDLENBQUMsSUFBQSwyQ0FBd0IsRUFBQyxPQUFPLENBQUM7Z0JBQ25DLENBQUMsQ0FBQyxJQUFBLDBDQUF1QixFQUFDLE9BQU8sQ0FBQyxDQUFBO0tBQ3ZDO0lBRUQsTUFBTSxhQUFhLEdBQUcsQ0FDcEIsUUFBeUIsRUFDekIsT0FBVSxFQUNWLFVBQTZCLEVBQUUsRUFDL0IsRUFBRTtRQUlGLE1BQU0sU0FBUyxHQUFHLElBQUksR0FBRyxFQUFjLENBQUE7UUFDdkMsTUFBTSxPQUFPLEdBQUcsSUFBSSw0QkFBWSxDQUFNO1lBQ3BDLFFBQVE7WUFDUixRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVE7WUFDdkIsTUFBTSxFQUFFLE9BQU87WUFDZixHQUFHLE9BQU87U0FDWCxDQUFDLENBQUE7UUFFRixNQUFNLGVBQWUsR0FBRyxDQUFDLEVBQVUsRUFBRSxLQUFZLEVBQUUsSUFBZSxFQUFFLEVBQUU7WUFDcEUsTUFBTSxFQUFFLEdBQUcsU0FBUyxDQUFDLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxNQUFNLElBQUksS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUE7WUFDeEQsSUFBSSxDQUFDLEVBQUU7Z0JBQUUsT0FBTTtZQUVmLE9BQU8sRUFBRSxDQUFDLEVBQUUsRUFBRSxLQUFZLEVBQUUsSUFBSSxDQUFDLENBQUE7UUFDbkMsQ0FBQyxDQUFBO1FBRUQsTUFBTSxNQUFNLEdBQUcsQ0FDYixNQUFjLEVBQ2QsS0FBVyxFQUNYLFFBSVEsRUFDUixFQUFFO1lBQ0YsU0FBUyxDQUFDLEdBQUcsQ0FBQyxHQUFHLE1BQU0sSUFBSSxLQUFLLEVBQUUsRUFBRSxRQUFlLENBQUMsQ0FBQTtZQUVwRCxPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxlQUFlLENBQUMsQ0FBQTtRQUN4QyxDQUFDLENBQUE7UUFFRCxPQUFPO1lBQ0wsTUFBTTtZQUNOLElBQUksRUFBRSxPQUFPLENBQUMsSUFBSTtZQUNsQixLQUFLLEVBQUUsT0FBTyxDQUFDLEtBQUs7WUFDcEIsSUFBSSxFQUFFLE9BQU8sQ0FBQyxJQUFJO1lBQ2xCLE9BQU8sRUFBRSxPQUFPLENBQUMsT0FBTztZQUN4QixHQUFHLEVBQUUsT0FBTyxDQUFDLEdBQUc7WUFDaEIsV0FBVyxFQUFFLE9BQU8sQ0FBQyxXQUFXO1lBQ2hDLFdBQVcsRUFBRSxPQUFPLENBQUMsV0FBVztZQUNoQyxLQUFLLEVBQUUsT0FBTyxDQUFDLEtBQUs7WUFDcEIsU0FBUyxFQUFFLE9BQU87U0FDbkIsQ0FBQTtJQUNILENBQUMsQ0FBQTtJQUVELE1BQU0sTUFBTSxHQUFHLE1BQXFCLENBQUE7SUFFcEMsT0FBTztRQUNMLE1BQU07UUFDTixhQUFhO0tBQ2QsQ0FBQTtBQUNILENBQUM7QUExRUQsd0NBMEVDIn0=