28 lines
1 KiB
JavaScript
28 lines
1 KiB
JavaScript
"use strict";
|
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
exports.not = void 0;
|
|
const random_id_1 = require("../utils/random-id");
|
|
const predicate_1 = require("../predicates/predicate");
|
|
/**
|
|
Operator which inverts the following validation.
|
|
|
|
@hidden
|
|
|
|
@param predictate - Predicate to wrap inside the operator.
|
|
*/
|
|
const not = (predicate) => {
|
|
const originalAddValidator = predicate.addValidator;
|
|
predicate.addValidator = (validator) => {
|
|
const { validator: fn, message, negatedMessage } = validator;
|
|
const placeholder = random_id_1.default();
|
|
validator.message = (value, label) => (negatedMessage ?
|
|
negatedMessage(value, label) :
|
|
message(value, placeholder).replace(/ to /, '$¬ ').replace(placeholder, label));
|
|
validator.validator = (value) => !fn(value);
|
|
predicate[predicate_1.validatorSymbol].push(validator);
|
|
predicate.addValidator = originalAddValidator;
|
|
return predicate;
|
|
};
|
|
return predicate;
|
|
};
|
|
exports.not = not;
|