evtstore
Version:
Event Sourcing with Node.JS
45 lines • 3.46 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.createHandler = void 0;
const event_handler_1 = require("./event-handler");
function createHandler(options) {
const handler = new event_handler_1.EventHandler({
bookmark: options.bookmark,
provider: options.provider,
stream: options.streams,
hooks: options.hooks,
alwaysTailStream: options.alwaysTailStream,
tailStream: options.tailStream,
continueOnError: options.continueOnError,
});
const callbacks = new Map();
const handle = (stream, type, callback) => {
callbacks.set(`${stream.toString()}-${type}`, callback);
handler.handle(type, (id, event, meta) => {
const cb = callbacks.get(`${meta.stream}-${event.type}`);
if (!cb)
return;
return cb(id, event, meta);
});
};
const handleStream = (stream, handlers) => {
for (const [type, handler] of Object.entries(handlers)) {
handle(stream, type, handler);
}
};
return {
handle,
handleStream,
start: handler.start,
stop: handler.stop,
runOnce: handler.runOnce,
run: handler.run,
setPosition: handler.setPosition,
getPosition: handler.getPosition,
reset: handler.reset,
__handler: handler,
name: handler.name,
};
}
exports.createHandler = createHandler;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLWhhbmRsZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJjcmVhdGUtaGFuZGxlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxtREFBOEM7QUFpQjlDLFNBQWdCLGFBQWEsQ0FBd0MsT0FBc0I7SUFDekYsTUFBTSxPQUFPLEdBQUcsSUFBSSw0QkFBWSxDQUFDO1FBQy9CLFFBQVEsRUFBRSxPQUFPLENBQUMsUUFBUTtRQUMxQixRQUFRLEVBQUUsT0FBTyxDQUFDLFFBQVE7UUFDMUIsTUFBTSxFQUFFLE9BQU8sQ0FBQyxPQUFtQjtRQUNuQyxLQUFLLEVBQUUsT0FBTyxDQUFDLEtBQUs7UUFDcEIsZ0JBQWdCLEVBQUUsT0FBTyxDQUFDLGdCQUFnQjtRQUMxQyxVQUFVLEVBQUUsT0FBTyxDQUFDLFVBQVU7UUFDOUIsZUFBZSxFQUFFLE9BQU8sQ0FBQyxlQUFlO0tBQ3pDLENBQUMsQ0FBQTtJQUlGLE1BQU0sU0FBUyxHQUFHLElBQUksR0FBRyxFQUFjLENBQUE7SUFFdkMsTUFBTSxNQUFNLEdBQXlCLENBQUMsTUFBTSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsRUFBRTtRQUM5RCxTQUFTLENBQUMsR0FBRyxDQUFDLEdBQUcsTUFBTSxDQUFDLFFBQVEsRUFBRSxJQUFJLElBQUksRUFBRSxFQUFFLFFBQWUsQ0FBQyxDQUFBO1FBRTlELE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsRUFBRTtZQUN2QyxNQUFNLEVBQUUsR0FBRyxTQUFTLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLE1BQU0sSUFBSSxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQTtZQUN4RCxJQUFJLENBQUMsRUFBRTtnQkFBRSxPQUFNO1lBRWYsT0FBTyxFQUFFLENBQUMsRUFBRSxFQUFFLEtBQVksRUFBRSxJQUFJLENBQUMsQ0FBQTtRQUNuQyxDQUFDLENBQUMsQ0FBQTtJQUNKLENBQUMsQ0FBQTtJQUVELE1BQU0sWUFBWSxHQUFHLENBQXVCLE1BQVMsRUFBRSxRQUE4QixFQUFFLEVBQUU7UUFDdkYsS0FBSyxNQUFNLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxJQUFJLE1BQU0sQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEVBQUU7WUFDdEQsTUFBTSxDQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUUsT0FBYyxDQUFDLENBQUE7U0FDckM7SUFDSCxDQUFDLENBQUE7SUFFRCxPQUFPO1FBQ0wsTUFBTTtRQUNOLFlBQVk7UUFDWixLQUFLLEVBQUUsT0FBTyxDQUFDLEtBQUs7UUFDcEIsSUFBSSxFQUFFLE9BQU8sQ0FBQyxJQUFJO1FBQ2xCLE9BQU8sRUFBRSxPQUFPLENBQUMsT0FBTztRQUN4QixHQUFHLEVBQUUsT0FBTyxDQUFDLEdBQUc7UUFDaEIsV0FBVyxFQUFFLE9BQU8sQ0FBQyxXQUFXO1FBQ2hDLFdBQVcsRUFBRSxPQUFPLENBQUMsV0FBVztRQUNoQyxLQUFLLEVBQUUsT0FBTyxDQUFDLEtBQUs7UUFDcEIsU0FBUyxFQUFFLE9BQU87UUFDbEIsSUFBSSxFQUFFLE9BQU8sQ0FBQyxJQUFJO0tBQ25CLENBQUE7QUFDSCxDQUFDO0FBN0NELHNDQTZDQyJ9