-
Notifications
You must be signed in to change notification settings - Fork 0
/
index.js
65 lines (54 loc) · 1.41 KB
/
index.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
module.exports.isTrue = function isTrue(value) {
return !!value;
};
module.exports.isFalse = function isFalse(value) {
return !value;
};
module.exports.isResultFalse = function isResultFalse(fn) {
return function (...values) {
return module.exports.isFalse(fn(...values));
};
};
module.exports.isEveryResultTrue = function isEveryResultTrue(...fns) {
return function (...values) {
return fns.every(fn => module.exports.isTrue(fn(...values)));
};
};
module.exports.isAnyResultTrue = function isAnyResultTrue(...fns) {
return function (...values) {
return fns.some(fn => module.exports.isTrue(fn(...values)));
};
};
module.exports.startsWith = function startsWith(match) {
return function (value) {
return value.startsWith(match);
};
};
module.exports.endsWith = function endsWith(match) {
return function (value) {
return value.endsWith(match);
};
};
module.exports.equivalentTo = function equivalentTo(match) {
return function (value) {
return value === match;
};
};
module.exports.argumentOne = function argumentOne(fn) {
return function (param) {
return fn(param);
};
};
module.exports.argumentTwo = function argumentTwo(fn) {
return function (_one, param) {
return fn(param);
};
};
module.exports.keyOf = function keyOf(index, fn) {
return function (value) {
if (fn === undefined) {
return value[index];
}
return fn(value[index]);
};
};