1 | "use strict";
|
2 | Object.defineProperty(exports, "__esModule", { value: true });
|
3 | exports.not = void 0;
|
4 | const random_id_1 = require("../utils/random-id");
|
5 | const predicate_1 = require("../predicates/predicate");
|
6 |
|
7 |
|
8 |
|
9 |
|
10 |
|
11 |
|
12 |
|
13 | const 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 /, '$¬ ').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 | };
|
28 | exports.not = not;
|