UNPKG

1.04 kBJavaScriptView Raw
1"use strict";
2Object.defineProperty(exports, "__esModule", { value: true });
3exports.not = void 0;
4const random_id_1 = require("../utils/random-id");
5const predicate_1 = require("../predicates/predicate");
6/**
7Operator which inverts the following validation.
8
9@hidden
10
11@param predictate - Predicate to wrap inside the operator.
12*/
13const not = (predicate) => {
14 const originalAddValidator = predicate.addValidator;
15 predicate.addValidator = (validator) => {
16 const { validator: fn, message, negatedMessage } = validator;
17 const placeholder = random_id_1.default();
18 validator.message = (value, label) => (negatedMessage ?
19 negatedMessage(value, label) :
20 message(value, placeholder).replace(/ to /, '$&not ').replace(placeholder, label));
21 validator.validator = (value) => !fn(value);
22 predicate[predicate_1.validatorSymbol].push(validator);
23 predicate.addValidator = originalAddValidator;
24 return predicate;
25 };
26 return predicate;
27};
28exports.not = not;