26 lines
973 B
JavaScript
26 lines
973 B
JavaScript
"use strict";
|
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
exports.StandardValidation = void 0;
|
|
const utils_1 = require("../utils");
|
|
class StandardValidation {
|
|
constructor(validator, negated, options = [],
|
|
// For testing only.
|
|
// Deliberately not calling it `toString` in order to not override `Object.prototype.toString`.
|
|
stringify = utils_1.toString) {
|
|
this.validator = validator;
|
|
this.negated = negated;
|
|
this.options = options;
|
|
this.stringify = stringify;
|
|
}
|
|
async run(context, value, meta) {
|
|
const values = Array.isArray(value) ? value : [value];
|
|
values.forEach(value => {
|
|
const result = this.validator(this.stringify(value), ...this.options);
|
|
if (this.negated ? result : !result) {
|
|
context.addError({ type: 'field', message: this.message, value, meta });
|
|
}
|
|
});
|
|
}
|
|
}
|
|
exports.StandardValidation = StandardValidation;
|