@knax/backend-utils
Version:
27 lines • 2.15 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
// @ts-ignore
const Validator = require("fastest-validator");
exports.validate = (config, body) => {
let schema = config.schema;
if (config.optionals) {
schema = Object.keys(schema).reduce((all, k) => {
const optional = config.optionals === '*' ? true : (config.optionals.indexOf(k) >= 0);
return Object.assign(Object.assign({}, all), { [k]: Object.assign(Object.assign({}, schema[k]), { optional }) });
}, {});
}
// @ts-ignore
const v = new Validator(config.config);
const result = v.compile(schema)(body);
if (Array.isArray(result)) {
throw {
message: 'Validation Error',
type: 'QueryValidationError',
detail: result
};
}
else {
return body;
}
};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsidmFsaWRhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsYUFBYTtBQUNiLCtDQUErQztBQVFsQyxRQUFBLFFBQVEsR0FBRyxDQUFDLE1BQXdCLEVBQUUsSUFBUyxFQUFFLEVBQUU7SUFFNUQsSUFBSSxNQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQztJQUUzQixJQUFJLE1BQU0sQ0FBQyxTQUFTLEVBQUU7UUFDbEIsTUFBTSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFO1lBRTNDLE1BQU0sUUFBUSxHQUFHLE1BQU0sQ0FBQyxTQUFTLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7WUFFdEYsdUNBQ08sR0FBRyxLQUNOLENBQUMsQ0FBQyxDQUFDLGtDQUNJLE1BQU0sQ0FBQyxDQUFDLENBQUMsS0FDWixRQUFRLE9BRWQ7UUFDTixDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7S0FDVjtJQUVELGFBQWE7SUFDYixNQUFNLENBQUMsR0FBRyxJQUFJLFNBQVMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDdkMsTUFBTSxNQUFNLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUV2QyxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQUU7UUFDdkIsTUFBTztZQUNILE9BQU8sRUFBRSxrQkFBa0I7WUFDM0IsSUFBSSxFQUFFLHNCQUFzQjtZQUM1QixNQUFNLEVBQUUsTUFBTTtTQUNqQixDQUFDO0tBQ0w7U0FBTTtRQUNILE9BQU8sSUFBSSxDQUFDO0tBQ2Y7QUFDTCxDQUFDLENBQUMifQ==