1 | import randomId from '../utils/random-id.js';
|
2 | import { validatorSymbol } from '../predicates/predicate.js';
|
3 |
|
4 |
|
5 |
|
6 |
|
7 |
|
8 |
|
9 |
|
10 | export const not = (predicate) => {
|
11 | const originalAddValidator = predicate.addValidator;
|
12 | predicate.addValidator = (validator) => {
|
13 | const { validator: function_, message, negatedMessage } = validator;
|
14 | const placeholder = randomId();
|
15 | validator.message = (value, label) => (negatedMessage
|
16 | ? negatedMessage(value, label)
|
17 | : message(value, placeholder).replace(/ to /, '$¬ ').replace(placeholder, label));
|
18 | validator.validator = (value) => !function_(value);
|
19 | predicate[validatorSymbol].push(validator);
|
20 | predicate.addValidator = originalAddValidator;
|
21 | return predicate;
|
22 | };
|
23 | return predicate;
|
24 | };
|