acelga-bus
Version:
An extensible typescript message bus with support for middlewares
34 lines • 1.51 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const eventstore = require("geteventstore-promise");
const backoff = require("backoff");
const debug = require("debug");
const eventstoreBus_1 = require("./eventstoreBus");
const factoryRepository_1 = require("./factoryRepository");
const eventstoreConsumer_1 = require("./eventstoreConsumer");
function create(connectionOptions, streamName, startPosition = 0, errorLogger) {
const logger = errorLogger || debug('EventStoryBus:error');
const client = createEventstoreConnection(connectionOptions);
const backoffStrategy = createBackoff();
const eventFactory = createEventFactoryRepository();
const eventstoreClient = createEventstoreClient(client, logger, backoffStrategy, streamName, startPosition);
return new eventstoreBus_1.EventStoreBus(eventstoreClient, logger, eventFactory);
}
exports.create = create;
function createBackoff() {
return backoff.fibonacci({
randomisationFactor: 0,
initialDelay: 300,
maxDelay: 7000,
});
}
function createEventstoreConnection(options) {
return eventstore.http(options);
}
function createEventFactoryRepository() {
return new factoryRepository_1.EventFactoryRespository();
}
function createEventstoreClient(client, errorLogger, backoffStrategy, streamName, startPosition = 0) {
return new eventstoreConsumer_1.EventstoreClient(client, errorLogger, backoffStrategy, streamName, startPosition);
}
//# sourceMappingURL=index.js.map