UNPKG

4.13 kBJavaScriptView Raw
1"use strict";
2var __importDefault = (this && this.__importDefault) || function (mod) {
3 return (mod && mod.__esModule) ? mod : { "default": mod };
4};
5Object.defineProperty(exports, "__esModule", { value: true });
6const convict_1 = __importDefault(require("convict"));
7const job_schemas_1 = require("./job-schemas");
8// @ts-ignore
9const validateOptions = { allowed: true };
10/**
11 * Merges the provided inputSchema with commonSchema and then validates the
12 * provided opConfig against the resulting schema.
13 */
14function validateOpConfig(inputSchema, inputConfig) {
15 const schema = Object.assign({}, job_schemas_1.opSchema, inputSchema);
16 const config = convict_1.default(schema);
17 try {
18 config.load(inputConfig);
19 config.validate(validateOptions);
20 }
21 catch (err) {
22 throw new Error(`Validation failed for opConfig: ${inputConfig._op} - ${err.message}`);
23 }
24 return config.getProperties();
25}
26exports.validateOpConfig = validateOpConfig;
27/**
28 * Merges the provided inputSchema with commonSchema and then validates the
29 * provided apiConfig against the resulting schema.
30 */
31function validateAPIConfig(inputSchema, inputConfig) {
32 const schema = Object.assign({}, job_schemas_1.apiSchema, inputSchema);
33 const config = convict_1.default(schema);
34 try {
35 config.load(inputConfig);
36 config.validate(validateOptions);
37 }
38 catch (err) {
39 throw new Error(`Validation failed for apiConfig: ${inputConfig._name} - ${err.message}`);
40 }
41 return config.getProperties();
42}
43exports.validateAPIConfig = validateAPIConfig;
44/**
45 * Merges the provided inputSchema with commonSchema and then validates the
46 * provided jobConfig against the resulting schema.
47 */
48function validateJobConfig(inputSchema, inputConfig) {
49 const config = convict_1.default(inputSchema);
50 try {
51 config.load(inputConfig);
52 config.validate(validateOptions);
53 }
54 catch (err) {
55 throw new Error(`Validation failed for jobConfig: ${inputConfig.name} - ${err.stack}`);
56 }
57 return config.getProperties();
58}
59exports.validateJobConfig = validateJobConfig;
60//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLXZhbGlkYXRvcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvY29uZmlnLXZhbGlkYXRvcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxzREFBOEI7QUFFOUIsK0NBQW9EO0FBRXBELGFBQWE7QUFDYixNQUFNLGVBQWUsR0FBNEIsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLENBQUM7QUFFbkU7OztHQUdHO0FBQ0gsU0FBZ0IsZ0JBQWdCLENBQUksV0FBZ0MsRUFBRSxXQUFnQjtJQUNsRixNQUFNLE1BQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxzQkFBUSxFQUFFLFdBQVcsQ0FBaUMsQ0FBQztJQUN4RixNQUFNLE1BQU0sR0FBRyxpQkFBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBRS9CLElBQUk7UUFDQSxNQUFNLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ3pCLE1BQU0sQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDLENBQUM7S0FDcEM7SUFBQyxPQUFPLEdBQUcsRUFBRTtRQUNWLE1BQU0sSUFBSSxLQUFLLENBQUMsbUNBQW1DLFdBQVcsQ0FBQyxHQUFHLE1BQU0sR0FBRyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7S0FDMUY7SUFFRCxPQUFPLE1BQU0sQ0FBQyxhQUFhLEVBQUUsQ0FBQztBQUNsQyxDQUFDO0FBWkQsNENBWUM7QUFFRDs7O0dBR0c7QUFDSCxTQUFnQixpQkFBaUIsQ0FBSSxXQUFnQyxFQUFFLFdBQWdCO0lBQ25GLE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLHVCQUFTLEVBQUUsV0FBVyxDQUFrQyxDQUFDO0lBQzFGLE1BQU0sTUFBTSxHQUFHLGlCQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7SUFFL0IsSUFBSTtRQUNBLE1BQU0sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDekIsTUFBTSxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsQ0FBQztLQUNwQztJQUFDLE9BQU8sR0FBRyxFQUFFO1FBQ1YsTUFBTSxJQUFJLEtBQUssQ0FBQyxvQ0FBb0MsV0FBVyxDQUFDLEtBQUssTUFBTSxHQUFHLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztLQUM3RjtJQUVELE9BQU8sTUFBTSxDQUFDLGFBQWEsRUFBRSxDQUFDO0FBQ2xDLENBQUM7QUFaRCw4Q0FZQztBQUVEOzs7R0FHRztBQUNILFNBQWdCLGlCQUFpQixDQUFJLFdBQWdDLEVBQUUsV0FBZ0I7SUFDbkYsTUFBTSxNQUFNLEdBQUcsaUJBQU8sQ0FBQyxXQUFxRCxDQUFDLENBQUM7SUFFOUUsSUFBSTtRQUNBLE1BQU0sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDekIsTUFBTSxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsQ0FBQztLQUNwQztJQUFDLE9BQU8sR0FBRyxFQUFFO1FBQ1YsTUFBTSxJQUFJLEtBQUssQ0FBQyxvQ0FBb0MsV0FBVyxDQUFDLElBQUksTUFBTSxHQUFHLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztLQUMxRjtJQUVELE9BQU8sTUFBTSxDQUFDLGFBQWEsRUFBRSxDQUFDO0FBQ2xDLENBQUM7QUFYRCw4Q0FXQyJ9
\No newline at end of file