ts-cast
Version:
Runtime typechecking
24 lines (23 loc) • 1.11 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.and = exports.or = exports.not = void 0;
var predicate_1 = require("./predicate");
var names_1 = require("../helpers/names");
var not = function (predicate) { return (0, names_1.withName)(function (value) { return !predicate(value); }, "not ".concat((0, predicate_1.predicateName)(predicate))); };
exports.not = not;
var or = function () {
var predicates = [];
for (var _i = 0; _i < arguments.length; _i++) {
predicates[_i] = arguments[_i];
}
return (0, names_1.withName)(function (value) { return predicates.some(function (p) { return p(value); }); }, (0, names_1.joinNames)(predicates.map(predicate_1.predicateName), 'or'));
};
exports.or = or;
var and = function () {
var predicates = [];
for (var _i = 0; _i < arguments.length; _i++) {
predicates[_i] = arguments[_i];
}
return (0, names_1.withName)(function (value) { return predicates.every(function (p) { return p(value); }); }, (0, names_1.joinNames)(predicates.map(predicate_1.predicateName), 'and'));
};
exports.and = and;