@fabrix/spool-broadcast
Version:
Spool: broadcast for Fabrix to implement CQRS and Event Sourcing
119 lines • 4.93 kB
JavaScript
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const joi_1 = __importDefault(require("@hapi/joi"));
const processorConfig_1 = require("./processorConfig");
const projectorConfig_1 = require("./projectorConfig");
const hookConfig_1 = require("./hookConfig");
const dispatcherConfig_1 = require("./dispatcherConfig");
const pipeConfig_1 = require("./pipeConfig");
exports.broadcastConfig = joi_1.default.object().keys({
prefix: joi_1.default.string().allow('', null),
live_mode: joi_1.default.boolean().required(),
auto_save: joi_1.default.boolean().required(),
auto_transaction: joi_1.default.boolean().required(),
profile: joi_1.default.string().allow(null).required(),
enabled: joi_1.default.boolean(),
auto_queue: joi_1.default.boolean(),
default_publish_timeout: joi_1.default.number().allow(null).required(),
profiles: joi_1.default.object().pattern(/^/, joi_1.default.array().items(joi_1.default.string())),
exchange_name: joi_1.default.string().allow(null),
connection: joi_1.default.object().keys({
unique: joi_1.default.string().allow(null),
exchange: joi_1.default.string().allow(null),
work_queue_name: joi_1.default.string().allow(null),
interrupt_queue_name: joi_1.default.string().allow(null),
poison_queue_name: joi_1.default.string().allow(null),
host: joi_1.default.string().allow(null),
user: joi_1.default.string().allow(null),
pass: joi_1.default.string().allow(null),
port: joi_1.default.number().allow(null),
vhost: joi_1.default.string().allow(null),
uri: joi_1.default.string().allow(null),
heartbeat: joi_1.default.number(),
timeout: joi_1.default.number().allow(null),
failAfter: joi_1.default.number(),
retryLimit: joi_1.default.number()
}).unknown(),
broadcasters: joi_1.default.object()
.pattern(joi_1.default.string(), [
joi_1.default.object({
trace: joi_1.default.boolean()
})
]),
projectors: joi_1.default.object()
.pattern(joi_1.default.string(), [
joi_1.default.object({
broadcasters: joi_1.default.object()
.pattern(joi_1.default.string(), [
joi_1.default.object()
.pattern(joi_1.default.string(), [
joi_1.default.object()
.pattern(joi_1.default.string(), [
projectorConfig_1.projectorConfig
])
])
])
})
]),
processors: joi_1.default.object().pattern(joi_1.default.string(), [
joi_1.default.object({
broadcasters: joi_1.default.object()
.pattern(joi_1.default.string(), [
joi_1.default.object()
.pattern(joi_1.default.string(), [
joi_1.default.object()
.pattern(joi_1.default.string(), [
processorConfig_1.processorConfig
])
])
])
})
]),
dispatchers: joi_1.default.object().pattern(joi_1.default.string(), [
joi_1.default.object({
broadcasters: joi_1.default.object()
.pattern(joi_1.default.string(), [
joi_1.default.object()
.pattern(joi_1.default.string(), [
joi_1.default.object()
.pattern(joi_1.default.string(), [
dispatcherConfig_1.dispatcherConfig
])
])
])
})
]),
hooks: joi_1.default.object().pattern(joi_1.default.string(), [
joi_1.default.object({
broadcasters: joi_1.default.object()
.pattern(joi_1.default.string(), [
joi_1.default.object()
.pattern(joi_1.default.string(), [
joi_1.default.object()
.pattern(joi_1.default.string(), [
hookConfig_1.hookConfig
])
])
])
})
]),
pipelines: joi_1.default.object().pattern(joi_1.default.string(), [
joi_1.default.object({
broadcasters: joi_1.default.object()
.pattern(joi_1.default.string(), [
joi_1.default.object()
.pattern(joi_1.default.string(), [
joi_1.default.object()
.pattern(joi_1.default.string(), [
pipeConfig_1.pipeConfig
])
])
])
})
]),
channels: joi_1.default.object()
});
//# sourceMappingURL=broadcastConfig.js.map