evtstore
Version:
Event Sourcing with Node.JS
61 lines • 4.47 kB
JavaScript
;
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=