ivr-tester-cli
Version:
CLI for automated testing of IVR call flows
39 lines (38 loc) • 1.53 kB
JavaScript
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.validateConfig = void 0;
const joi_1 = __importDefault(require("joi"));
const jsonTranscriberSchema = joi_1.default.object({
name: joi_1.default.string().required(),
options: joi_1.default.object().optional().default({}),
});
const jsonConfigSchema = joi_1.default.object({
localServerPort: joi_1.default.number().port().optional().default(8080),
transcriber: jsonTranscriberSchema.required(),
recording: joi_1.default.object({
audio: joi_1.default.object({
outputPath: joi_1.default.string().required(),
filename: joi_1.default.alternatives().try(joi_1.default.string(), joi_1.default.function()).optional(),
}).optional(),
transcript: joi_1.default.object({
outputPath: joi_1.default.string().required(),
filename: joi_1.default.alternatives().try(joi_1.default.string(), joi_1.default.function()).optional(),
includeResponse: joi_1.default.boolean().optional(),
}).optional(),
}).optional(),
}).required();
const validateConfig = (config) => {
const { error, value } = jsonConfigSchema.validate(config, {
presence: "required",
});
if (error) {
return { error };
}
else {
return { config: value };
}
};
exports.validateConfig = validateConfig;