@gabliam/amqp
Version:
amqp plugin for gabliam
34 lines (33 loc) • 1.17 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.configurationValidator = void 0;
const core_1 = require("@gabliam/core");
const constants_1 = require("./constants");
const queueOptionsValidator = core_1.Joi.object().keys({
exclusive: core_1.Joi.boolean(),
durable: core_1.Joi.boolean(),
autoDelete: core_1.Joi.boolean(),
});
const queueConfigurationValidator = core_1.Joi.object().keys({
queueName: core_1.Joi.string()
.trim()
.required(),
options: queueOptionsValidator.default(),
});
const queuesValidor = core_1.Joi.object()
.pattern(/.*/, queueConfigurationValidator)
.min(1);
const connectionValidator = core_1.Joi.object().keys({
name: core_1.Joi.string()
.trim()
.default('default'),
url: core_1.Joi.string()
.trim()
.required(),
undefinedValue: core_1.Joi.string()
.trim()
.default(constants_1.UNDEFINED_VALUE),
queues: queuesValidor,
gzipEnabled: core_1.Joi.boolean().default(false),
});
exports.configurationValidator = core_1.Joi.alternatives(connectionValidator, core_1.Joi.array().items(connectionValidator));