96 lines
2.4 KiB
JavaScript
96 lines
2.4 KiB
JavaScript
"use strict";
|
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
exports.and = exports.or = exports.not = exports.Contravariant = exports.getMonoidAll = exports.getSemigroupAll = exports.getMonoidAny = exports.getSemigroupAny = exports.URI = exports.contramap = void 0;
|
|
var function_1 = require("./function");
|
|
var contramap_ = function (predicate, f) { return (0, function_1.pipe)(predicate, (0, exports.contramap)(f)); };
|
|
/**
|
|
* @since 2.11.0
|
|
*/
|
|
var contramap = function (f) {
|
|
return function (predicate) {
|
|
return (0, function_1.flow)(f, predicate);
|
|
};
|
|
};
|
|
exports.contramap = contramap;
|
|
/**
|
|
* @category type lambdas
|
|
* @since 2.11.0
|
|
*/
|
|
exports.URI = 'Predicate';
|
|
/**
|
|
* @category instances
|
|
* @since 2.11.0
|
|
*/
|
|
var getSemigroupAny = function () { return ({
|
|
concat: function (first, second) { return (0, function_1.pipe)(first, (0, exports.or)(second)); }
|
|
}); };
|
|
exports.getSemigroupAny = getSemigroupAny;
|
|
/**
|
|
* @category instances
|
|
* @since 2.11.0
|
|
*/
|
|
var getMonoidAny = function () { return ({
|
|
concat: (0, exports.getSemigroupAny)().concat,
|
|
empty: function_1.constFalse
|
|
}); };
|
|
exports.getMonoidAny = getMonoidAny;
|
|
/**
|
|
* @category instances
|
|
* @since 2.11.0
|
|
*/
|
|
var getSemigroupAll = function () { return ({
|
|
concat: function (first, second) { return (0, function_1.pipe)(first, (0, exports.and)(second)); }
|
|
}); };
|
|
exports.getSemigroupAll = getSemigroupAll;
|
|
/**
|
|
* @category instances
|
|
* @since 2.11.0
|
|
*/
|
|
var getMonoidAll = function () { return ({
|
|
concat: (0, exports.getSemigroupAll)().concat,
|
|
empty: function_1.constTrue
|
|
}); };
|
|
exports.getMonoidAll = getMonoidAll;
|
|
/**
|
|
* @category instances
|
|
* @since 2.11.0
|
|
*/
|
|
exports.Contravariant = {
|
|
URI: exports.URI,
|
|
contramap: contramap_
|
|
};
|
|
// -------------------------------------------------------------------------------------
|
|
// utils
|
|
// -------------------------------------------------------------------------------------
|
|
/**
|
|
* @since 2.11.0
|
|
*/
|
|
var not = function (predicate) {
|
|
return function (a) {
|
|
return !predicate(a);
|
|
};
|
|
};
|
|
exports.not = not;
|
|
/**
|
|
* @since 2.11.0
|
|
*/
|
|
var or = function (second) {
|
|
return function (first) {
|
|
return function (a) {
|
|
return first(a) || second(a);
|
|
};
|
|
};
|
|
};
|
|
exports.or = or;
|
|
/**
|
|
* @since 2.11.0
|
|
*/
|
|
var and = function (second) {
|
|
return function (first) {
|
|
return function (a) {
|
|
return first(a) && second(a);
|
|
};
|
|
};
|
|
};
|
|
exports.and = and;
|