anyone 2.0.0 → 2.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (115) hide show
  1. package/CHANGELOG.md +1 -16
  2. package/README.md +26 -98
  3. package/all/package.json +12 -5
  4. package/any/package.json +12 -5
  5. package/dist/all-G56EfCZm.cjs +18 -0
  6. package/dist/all-G56EfCZm.cjs.map +1 -0
  7. package/dist/all-jZqtYMoF.mjs +13 -0
  8. package/dist/all-jZqtYMoF.mjs.map +1 -0
  9. package/dist/any-7W0t-5U9.cjs +18 -0
  10. package/dist/any-7W0t-5U9.cjs.map +1 -0
  11. package/dist/any-Bu9n0b6b.mjs +13 -0
  12. package/dist/any-Bu9n0b6b.mjs.map +1 -0
  13. package/dist/anyone.cjs +10 -0
  14. package/dist/anyone.mjs +7 -0
  15. package/dist/exports/all.cjs +4 -0
  16. package/dist/exports/all.mjs +4 -0
  17. package/dist/exports/any.cjs +4 -0
  18. package/dist/exports/any.mjs +4 -0
  19. package/dist/exports/none.cjs +4 -0
  20. package/dist/exports/none.mjs +4 -0
  21. package/dist/exports/one.cjs +4 -0
  22. package/dist/exports/one.mjs +4 -0
  23. package/dist/none-BaiW3V_k.mjs +14 -0
  24. package/dist/none-BaiW3V_k.mjs.map +1 -0
  25. package/dist/none-BvnsAgF8.cjs +19 -0
  26. package/dist/none-BvnsAgF8.cjs.map +1 -0
  27. package/dist/one-C-TngTWp.cjs +23 -0
  28. package/dist/one-C-TngTWp.cjs.map +1 -0
  29. package/dist/one-D5UWawb-.mjs +18 -0
  30. package/dist/one-D5UWawb-.mjs.map +1 -0
  31. package/dist/runAnyoneMethods-BnV5_696.cjs +26 -0
  32. package/dist/runAnyoneMethods-BnV5_696.cjs.map +1 -0
  33. package/dist/runAnyoneMethods-CiYJATON.mjs +21 -0
  34. package/dist/runAnyoneMethods-CiYJATON.mjs.map +1 -0
  35. package/none/package.json +12 -5
  36. package/one/package.json +12 -5
  37. package/package.json +68 -146
  38. package/src/__tests__/all.test.ts +47 -0
  39. package/src/__tests__/any.test.ts +60 -0
  40. package/src/__tests__/anyoneTestValues.ts +3 -0
  41. package/src/__tests__/none.test.ts +60 -0
  42. package/src/__tests__/one.test.ts +56 -0
  43. package/src/__tests__/runAnyoneMethods.test.ts +43 -0
  44. package/src/anyone.ts +4 -0
  45. package/src/exports/all.ts +8 -0
  46. package/src/exports/any.ts +8 -0
  47. package/src/exports/none.ts +10 -0
  48. package/src/exports/one.ts +20 -0
  49. package/src/runner/runAnyoneMethods.ts +21 -0
  50. package/types/{all.d.ts → all-8-fac2En.d.mts} +4 -1
  51. package/types/all-8-fac2En.d.mts.map +1 -0
  52. package/types/all-DT3n67Q2.d.cts +8 -0
  53. package/types/all-DT3n67Q2.d.cts.map +1 -0
  54. package/types/{any.d.ts → any-BDnUW0EC.d.mts} +4 -1
  55. package/types/any-BDnUW0EC.d.mts.map +1 -0
  56. package/types/any-BMwz5-AB.d.cts +8 -0
  57. package/types/any-BMwz5-AB.d.cts.map +1 -0
  58. package/types/anyone.d.cts +5 -0
  59. package/types/anyone.d.mts +5 -0
  60. package/types/anyone.d.ts +5 -17
  61. package/types/exports/all.d.cts +2 -0
  62. package/types/exports/all.d.mts +2 -0
  63. package/types/exports/any.d.cts +2 -0
  64. package/types/exports/any.d.mts +2 -0
  65. package/types/exports/none.d.cts +2 -0
  66. package/types/exports/none.d.mts +2 -0
  67. package/types/exports/one.d.cts +2 -0
  68. package/types/exports/one.d.mts +2 -0
  69. package/types/{none.d.ts → none-CKjw9Aoz.d.mts} +4 -1
  70. package/types/none-CKjw9Aoz.d.mts.map +1 -0
  71. package/types/none-D0Wo1a6R.d.cts +8 -0
  72. package/types/none-D0Wo1a6R.d.cts.map +1 -0
  73. package/types/{one.d.ts → one-BuVF-m86.d.cts} +4 -1
  74. package/types/one-BuVF-m86.d.cts.map +1 -0
  75. package/types/one-PuTrzIUg.d.mts +8 -0
  76. package/types/one-PuTrzIUg.d.mts.map +1 -0
  77. package/vitest.config.ts +21 -0
  78. package/dist/cjs/all.development.js +0 -37
  79. package/dist/cjs/all.js +0 -7
  80. package/dist/cjs/all.production.js +0 -1
  81. package/dist/cjs/any.development.js +0 -37
  82. package/dist/cjs/any.js +0 -7
  83. package/dist/cjs/any.production.js +0 -1
  84. package/dist/cjs/anyone.development.js +0 -94
  85. package/dist/cjs/anyone.js +0 -7
  86. package/dist/cjs/anyone.production.js +0 -1
  87. package/dist/cjs/none.development.js +0 -47
  88. package/dist/cjs/none.js +0 -7
  89. package/dist/cjs/none.production.js +0 -1
  90. package/dist/cjs/one.development.js +0 -46
  91. package/dist/cjs/one.js +0 -7
  92. package/dist/cjs/one.production.js +0 -1
  93. package/dist/cjs/package.json +0 -1
  94. package/dist/es/all.development.js +0 -35
  95. package/dist/es/all.production.js +0 -1
  96. package/dist/es/any.development.js +0 -35
  97. package/dist/es/any.production.js +0 -1
  98. package/dist/es/anyone.development.js +0 -87
  99. package/dist/es/anyone.production.js +0 -1
  100. package/dist/es/none.development.js +0 -45
  101. package/dist/es/none.production.js +0 -1
  102. package/dist/es/one.development.js +0 -44
  103. package/dist/es/one.production.js +0 -1
  104. package/dist/es/package.json +0 -1
  105. package/dist/umd/all.development.js +0 -43
  106. package/dist/umd/all.production.js +0 -1
  107. package/dist/umd/any.development.js +0 -43
  108. package/dist/umd/any.production.js +0 -1
  109. package/dist/umd/anyone.development.js +0 -100
  110. package/dist/umd/anyone.production.js +0 -1
  111. package/dist/umd/none.development.js +0 -53
  112. package/dist/umd/none.production.js +0 -1
  113. package/dist/umd/one.development.js +0 -52
  114. package/dist/umd/one.production.js +0 -1
  115. package/tsconfig.json +0 -8
package/package.json CHANGED
@@ -1,166 +1,88 @@
1
1
  {
2
2
  "name": "anyone",
3
3
  "license": "MIT",
4
- "main": "./dist/cjs/anyone.js",
5
- "types": "./types/anyone.d.ts",
6
- "version": "2.0.0",
4
+ "main": "./dist/anyone.cjs",
5
+ "types": "./types/anyone.d.cts",
6
+ "version": "2.0.2",
7
7
  "author": "ealush",
8
8
  "scripts": {
9
9
  "test": "vx test",
10
10
  "build": "vx build",
11
11
  "release": "vx release"
12
12
  },
13
- "module": "./dist/es/anyone.production.js",
13
+ "dependencies": {
14
+ "vest-utils": "^2.0.2"
15
+ },
16
+ "module": "./dist/anyone.mjs",
17
+ "repository": {
18
+ "type": "git",
19
+ "url": "git+https://github.com/ealush/vest.git",
20
+ "directory": "packages/anyone"
21
+ },
22
+ "bugs": {
23
+ "url": "https://github.com/ealush/vest.git/issues"
24
+ },
25
+ "unpkg": "./dist/anyone.mjs",
26
+ "jsdelivr": "./dist/anyone.mjs",
27
+ "vxAllowResolve": [],
14
28
  "exports": {
29
+ "./anyone": {
30
+ "types": "./types/anyone.d.cts",
31
+ "require": "./dist/anyone.cjs",
32
+ "import": "./dist/anyone.mjs"
33
+ },
34
+ "./exports/all": {
35
+ "types": "./types/exports/all.d.cts",
36
+ "require": "./dist/exports/all.cjs",
37
+ "import": "./dist/exports/all.mjs"
38
+ },
39
+ "./exports/any": {
40
+ "types": "./types/exports/any.d.cts",
41
+ "require": "./dist/exports/any.cjs",
42
+ "import": "./dist/exports/any.mjs"
43
+ },
44
+ "./exports/none": {
45
+ "types": "./types/exports/none.d.cts",
46
+ "require": "./dist/exports/none.cjs",
47
+ "import": "./dist/exports/none.mjs"
48
+ },
49
+ "./exports/one": {
50
+ "types": "./types/exports/one.d.cts",
51
+ "require": "./dist/exports/one.cjs",
52
+ "import": "./dist/exports/one.mjs"
53
+ },
54
+ "./*": {
55
+ "types": "./types/anyone.d.cts",
56
+ "default": "./*"
57
+ },
58
+ ".": {
59
+ "types": "./types/anyone.d.cts",
60
+ "require": "./dist/anyone.cjs",
61
+ "import": "./dist/anyone.mjs"
62
+ },
63
+ "./package.json": "./package.json",
15
64
  "./all": {
16
- "production": {
17
- "types": "./types/all.d.ts",
18
- "browser": "./dist/es/all.production.js",
19
- "umd": "./dist/umd/all.production.js",
20
- "import": "./dist/es/all.production.js",
21
- "require": "./dist/cjs/all.production.js",
22
- "node": "./dist/cjs/all.production.js",
23
- "module": "./dist/es/all.production.js",
24
- "default": "./dist/cjs/all.production.js"
25
- },
26
- "development": {
27
- "types": "./types/all.d.ts",
28
- "browser": "./dist/es/all.development.js",
29
- "umd": "./dist/umd/all.development.js",
30
- "import": "./dist/es/all.development.js",
31
- "require": "./dist/cjs/all.development.js",
32
- "node": "./dist/cjs/all.development.js",
33
- "module": "./dist/es/all.development.js",
34
- "default": "./dist/cjs/all.development.js"
35
- },
36
- "types": "./types/all.d.ts",
37
- "browser": "./dist/es/all.production.js",
38
- "umd": "./dist/umd/all.production.js",
39
- "import": "./dist/es/all.production.js",
40
- "require": "./dist/cjs/all.production.js",
41
- "node": "./dist/cjs/all.production.js",
42
- "module": "./dist/es/all.production.js",
43
- "default": "./dist/cjs/all.production.js"
65
+ "types": "./types/exports/all.d.cts",
66
+ "require": "./dist/exports/all.cjs",
67
+ "import": "./dist/exports/all.mjs"
44
68
  },
45
69
  "./any": {
46
- "production": {
47
- "types": "./types/any.d.ts",
48
- "browser": "./dist/es/any.production.js",
49
- "umd": "./dist/umd/any.production.js",
50
- "import": "./dist/es/any.production.js",
51
- "require": "./dist/cjs/any.production.js",
52
- "node": "./dist/cjs/any.production.js",
53
- "module": "./dist/es/any.production.js",
54
- "default": "./dist/cjs/any.production.js"
55
- },
56
- "development": {
57
- "types": "./types/any.d.ts",
58
- "browser": "./dist/es/any.development.js",
59
- "umd": "./dist/umd/any.development.js",
60
- "import": "./dist/es/any.development.js",
61
- "require": "./dist/cjs/any.development.js",
62
- "node": "./dist/cjs/any.development.js",
63
- "module": "./dist/es/any.development.js",
64
- "default": "./dist/cjs/any.development.js"
65
- },
66
- "types": "./types/any.d.ts",
67
- "browser": "./dist/es/any.production.js",
68
- "umd": "./dist/umd/any.production.js",
69
- "import": "./dist/es/any.production.js",
70
- "require": "./dist/cjs/any.production.js",
71
- "node": "./dist/cjs/any.production.js",
72
- "module": "./dist/es/any.production.js",
73
- "default": "./dist/cjs/any.production.js"
70
+ "types": "./types/exports/any.d.cts",
71
+ "require": "./dist/exports/any.cjs",
72
+ "import": "./dist/exports/any.mjs"
74
73
  },
75
74
  "./none": {
76
- "production": {
77
- "types": "./types/none.d.ts",
78
- "browser": "./dist/es/none.production.js",
79
- "umd": "./dist/umd/none.production.js",
80
- "import": "./dist/es/none.production.js",
81
- "require": "./dist/cjs/none.production.js",
82
- "node": "./dist/cjs/none.production.js",
83
- "module": "./dist/es/none.production.js",
84
- "default": "./dist/cjs/none.production.js"
85
- },
86
- "development": {
87
- "types": "./types/none.d.ts",
88
- "browser": "./dist/es/none.development.js",
89
- "umd": "./dist/umd/none.development.js",
90
- "import": "./dist/es/none.development.js",
91
- "require": "./dist/cjs/none.development.js",
92
- "node": "./dist/cjs/none.development.js",
93
- "module": "./dist/es/none.development.js",
94
- "default": "./dist/cjs/none.development.js"
95
- },
96
- "types": "./types/none.d.ts",
97
- "browser": "./dist/es/none.production.js",
98
- "umd": "./dist/umd/none.production.js",
99
- "import": "./dist/es/none.production.js",
100
- "require": "./dist/cjs/none.production.js",
101
- "node": "./dist/cjs/none.production.js",
102
- "module": "./dist/es/none.production.js",
103
- "default": "./dist/cjs/none.production.js"
75
+ "types": "./types/exports/none.d.cts",
76
+ "require": "./dist/exports/none.cjs",
77
+ "import": "./dist/exports/none.mjs"
104
78
  },
105
79
  "./one": {
106
- "production": {
107
- "types": "./types/one.d.ts",
108
- "browser": "./dist/es/one.production.js",
109
- "umd": "./dist/umd/one.production.js",
110
- "import": "./dist/es/one.production.js",
111
- "require": "./dist/cjs/one.production.js",
112
- "node": "./dist/cjs/one.production.js",
113
- "module": "./dist/es/one.production.js",
114
- "default": "./dist/cjs/one.production.js"
115
- },
116
- "development": {
117
- "types": "./types/one.d.ts",
118
- "browser": "./dist/es/one.development.js",
119
- "umd": "./dist/umd/one.development.js",
120
- "import": "./dist/es/one.development.js",
121
- "require": "./dist/cjs/one.development.js",
122
- "node": "./dist/cjs/one.development.js",
123
- "module": "./dist/es/one.development.js",
124
- "default": "./dist/cjs/one.development.js"
125
- },
126
- "types": "./types/one.d.ts",
127
- "browser": "./dist/es/one.production.js",
128
- "umd": "./dist/umd/one.production.js",
129
- "import": "./dist/es/one.production.js",
130
- "require": "./dist/cjs/one.production.js",
131
- "node": "./dist/cjs/one.production.js",
132
- "module": "./dist/es/one.production.js",
133
- "default": "./dist/cjs/one.production.js"
80
+ "types": "./types/exports/one.d.cts",
81
+ "require": "./dist/exports/one.cjs",
82
+ "import": "./dist/exports/one.mjs"
134
83
  },
135
- ".": {
136
- "development": {
137
- "types": "./types/anyone.d.ts",
138
- "browser": "./dist/es/anyone.development.js",
139
- "umd": "./dist/umd/anyone.development.js",
140
- "import": "./dist/es/anyone.development.js",
141
- "require": "./dist/cjs/anyone.development.js",
142
- "node": "./dist/cjs/anyone.development.js",
143
- "module": "./dist/es/anyone.development.js",
144
- "default": "./dist/cjs/anyone.development.js"
145
- },
146
- "types": "./types/anyone.d.ts",
147
- "browser": "./dist/es/anyone.production.js",
148
- "umd": "./dist/umd/anyone.production.js",
149
- "import": "./dist/es/anyone.production.js",
150
- "require": "./dist/cjs/anyone.production.js",
151
- "node": "./dist/cjs/anyone.production.js",
152
- "module": "./dist/es/anyone.production.js",
153
- "default": "./dist/cjs/anyone.production.js"
154
- },
155
- "./package.json": "./package.json",
156
- "./": "./"
157
- },
158
- "repository": {
159
- "type": "git",
160
- "url": "https://github.com/ealush/vest.git",
161
- "directory": "packages/anyone"
162
- },
163
- "bugs": {
164
- "url": "https://github.com/ealush/vest.git/issues"
84
+ "./anyone.d.ts": "./types/anyone.d.ts",
85
+ "./types/*": "./types/*",
86
+ "./dist/*": "./dist/*"
165
87
  }
166
88
  }
@@ -0,0 +1,47 @@
1
+ import { sample, random } from 'lodash';
2
+ import { describe, it, expect } from 'vitest';
3
+
4
+ import { TRUTHY_VALUES, FALSY_VALUES } from './anyoneTestValues';
5
+
6
+ import all from '../exports/all';
7
+
8
+ describe('methods/all', () => {
9
+ describe('When only falsy values', () => {
10
+ it('Should return false', () => {
11
+ expect(
12
+ all(
13
+ ...Array.from({ length: random(1, 10) }, (_, i) =>
14
+ i % 2 === 0 ? sample(FALSY_VALUES) : sample(FALSY_VALUES),
15
+ ),
16
+ ),
17
+ ).toBe(false);
18
+ });
19
+ });
20
+
21
+ describe('When only truthy values', () => {
22
+ it('Should return true', () => {
23
+ expect(
24
+ all(
25
+ ...Array.from({ length: random(1, 10) }, (_, i) =>
26
+ i % 2 === 0 ? sample(TRUTHY_VALUES) : sample(TRUTHY_VALUES),
27
+ ),
28
+ ),
29
+ ).toBe(true);
30
+ });
31
+ });
32
+
33
+ describe('When some truthy values', () => {
34
+ it('Should return false', () => {
35
+ expect(
36
+ all.apply(null, [
37
+ ...Array.from({ length: random(1, 10) }, (_, i) =>
38
+ i % 2 === 0 ? sample(FALSY_VALUES) : sample(FALSY_VALUES),
39
+ ),
40
+ ...Array.from({ length: random(1, 10) }, (_, i) =>
41
+ i % 2 === 0 ? sample(TRUTHY_VALUES) : sample(TRUTHY_VALUES),
42
+ ),
43
+ ]),
44
+ ).toBe(false);
45
+ });
46
+ });
47
+ });
@@ -0,0 +1,60 @@
1
+ import { sample, random } from 'lodash';
2
+ import { describe, it, expect } from 'vitest';
3
+
4
+ import { TRUTHY_VALUES, FALSY_VALUES } from './anyoneTestValues';
5
+
6
+ import any from '../exports/any';
7
+
8
+ describe('methods/any', () => {
9
+ describe('When only falsy values', () => {
10
+ it('Should return false', () => {
11
+ expect(
12
+ any(
13
+ ...Array.from({ length: random(1, 10) }, (_, i) =>
14
+ i % 2 === 0 ? sample(FALSY_VALUES) : sample(FALSY_VALUES),
15
+ ),
16
+ ),
17
+ ).toBe(false);
18
+ });
19
+ });
20
+
21
+ describe('When only truthy values', () => {
22
+ it('Should return true', () => {
23
+ expect(
24
+ any(
25
+ ...Array.from({ length: random(1, 10) }, (_, i) =>
26
+ i % 2 === 0 ? sample(TRUTHY_VALUES) : sample(TRUTHY_VALUES),
27
+ ),
28
+ ),
29
+ ).toBe(true);
30
+ });
31
+ });
32
+
33
+ describe('When one truthy value', () => {
34
+ it('Should return true', () => {
35
+ expect(
36
+ any.apply(null, [
37
+ ...Array.from({ length: random(1, 10) }, (_, i) =>
38
+ i % 2 === 0 ? sample(FALSY_VALUES) : sample(FALSY_VALUES),
39
+ ),
40
+ sample(TRUTHY_VALUES),
41
+ ]),
42
+ ).toBe(true);
43
+ });
44
+ });
45
+
46
+ describe('When some truthy values', () => {
47
+ it('Should return true', () => {
48
+ expect(
49
+ any.apply(null, [
50
+ ...Array.from({ length: random(1, 10) }, (_, i) =>
51
+ i % 2 === 0 ? sample(FALSY_VALUES) : sample(FALSY_VALUES),
52
+ ),
53
+ ...Array.from({ length: random(1, 10) }, (_, i) =>
54
+ i % 2 === 0 ? sample(TRUTHY_VALUES) : sample(TRUTHY_VALUES),
55
+ ),
56
+ ]),
57
+ ).toBe(true);
58
+ });
59
+ });
60
+ });
@@ -0,0 +1,3 @@
1
+ export const FALSY_VALUES = [false, 0, null, undefined, '', NaN];
2
+
3
+ export const TRUTHY_VALUES = [true, 1, 'true', [], {}];
@@ -0,0 +1,60 @@
1
+ import { sample, random } from 'lodash';
2
+ import { describe, it, expect } from 'vitest';
3
+
4
+ import { TRUTHY_VALUES, FALSY_VALUES } from './anyoneTestValues';
5
+
6
+ import none from '../exports/none';
7
+
8
+ describe('methods/none', () => {
9
+ describe('When only falsy values', () => {
10
+ it('Should return true', () => {
11
+ expect(
12
+ none(
13
+ ...Array.from({ length: random(1, 10) }, (_, i) =>
14
+ i % 2 === 0 ? sample(FALSY_VALUES) : sample(FALSY_VALUES),
15
+ ),
16
+ ),
17
+ ).toBe(true);
18
+ });
19
+ });
20
+
21
+ describe('When only truthy values', () => {
22
+ it('Should return false', () => {
23
+ expect(
24
+ none(
25
+ ...Array.from({ length: random(1, 10) }, (_, i) =>
26
+ i % 2 === 0 ? sample(TRUTHY_VALUES) : sample(TRUTHY_VALUES),
27
+ ),
28
+ ),
29
+ ).toBe(false);
30
+ });
31
+ });
32
+
33
+ describe('When one truthy value', () => {
34
+ it('Should return false', () => {
35
+ expect(
36
+ none.apply(null, [
37
+ ...Array.from({ length: random(1, 10) }, (_, i) =>
38
+ i % 2 === 0 ? sample(FALSY_VALUES) : sample(FALSY_VALUES),
39
+ ),
40
+ sample(TRUTHY_VALUES),
41
+ ]),
42
+ ).toBe(false);
43
+ });
44
+ });
45
+
46
+ describe('When some truthy values', () => {
47
+ it('Should return false', () => {
48
+ expect(
49
+ none.apply(null, [
50
+ ...Array.from({ length: random(1, 10) }, (_, i) =>
51
+ i % 2 === 0 ? sample(FALSY_VALUES) : sample(FALSY_VALUES),
52
+ ),
53
+ ...Array.from({ length: random(1, 10) }, (_, i) =>
54
+ i % 2 === 0 ? sample(TRUTHY_VALUES) : sample(TRUTHY_VALUES),
55
+ ),
56
+ ]),
57
+ ).toBe(false);
58
+ });
59
+ });
60
+ });
@@ -0,0 +1,56 @@
1
+ import { sample, random } from 'lodash';
2
+ import { describe, it, expect } from 'vitest';
3
+
4
+ import { TRUTHY_VALUES, FALSY_VALUES } from './anyoneTestValues';
5
+
6
+ import one from '../exports/one';
7
+
8
+ describe('methods/one', () => {
9
+ describe('When only falsy values', () => {
10
+ it('Should return false', () => {
11
+ expect(
12
+ one(
13
+ ...Array.from({ length: random(1, 10) }, (_, i) =>
14
+ i % 2 === 0 ? sample(FALSY_VALUES) : sample(FALSY_VALUES),
15
+ ),
16
+ ),
17
+ ).toBe(false);
18
+ });
19
+ });
20
+
21
+ describe('When only truthy values', () => {
22
+ it('Should return false', () => {
23
+ expect(
24
+ one(
25
+ ...Array.from({ length: random(2, 10) }, (_, i) =>
26
+ i % 2 === 0 ? sample(TRUTHY_VALUES) : sample(TRUTHY_VALUES),
27
+ ),
28
+ ),
29
+ ).toBe(false);
30
+ });
31
+ });
32
+
33
+ describe('When one truthy value', () => {
34
+ it('Should return true', () => {
35
+ expect(
36
+ one(
37
+ ...Array.from({ length: random(1, 10) }, (_, i) =>
38
+ i % 2 === 0 ? sample(FALSY_VALUES) : sample(FALSY_VALUES),
39
+ ),
40
+ sample(TRUTHY_VALUES),
41
+ ),
42
+ ).toBe(true);
43
+ });
44
+ });
45
+
46
+ describe('When some truthy values', () => {
47
+ it('Should return false', () => {
48
+ expect(
49
+ one(
50
+ ...Array.from({ length: random(2, 10) }, () => sample(TRUTHY_VALUES)),
51
+ ...Array.from({ length: random(1, 10) }, () => sample(FALSY_VALUES)),
52
+ ),
53
+ ).toBe(false);
54
+ });
55
+ });
56
+ });
@@ -0,0 +1,43 @@
1
+ import { describe, it, expect } from 'vitest';
2
+
3
+ import { FALSY_VALUES, TRUTHY_VALUES } from './anyoneTestValues';
4
+
5
+ import run from '../runner/runAnyoneMethods';
6
+
7
+ describe('lib/run', () => {
8
+ describe('When value is falsy', () => {
9
+ it.each([FALSY_VALUES])('Should return `false` ("%s")', value =>
10
+ expect(run(value)).toBe(false),
11
+ );
12
+ });
13
+
14
+ describe('When value is truthy', () => {
15
+ it.each([TRUTHY_VALUES])('Should return `true` ("%s")', value =>
16
+ expect(run(value)).toBe(true),
17
+ );
18
+ });
19
+
20
+ describe('When value is a function', () => {
21
+ describe('When value is falsy', () => {
22
+ it.each([FALSY_VALUES])('Should return `false` ("%s")', value =>
23
+ expect(run(() => value)).toBe(false),
24
+ );
25
+ });
26
+
27
+ describe('When value is truthy', () => {
28
+ it.each([TRUTHY_VALUES])('Should return `true` ("%s")', value =>
29
+ expect(run(() => value)).toBe(true),
30
+ );
31
+ });
32
+ });
33
+
34
+ describe('When the function throws an error', () => {
35
+ it('Should return false', () => {
36
+ expect(
37
+ run(() => {
38
+ throw new Error();
39
+ }),
40
+ ).toBe(false);
41
+ });
42
+ });
43
+ });
package/src/anyone.ts ADDED
@@ -0,0 +1,4 @@
1
+ export { default as all } from './exports/all';
2
+ export { default as any } from './exports/any';
3
+ export { default as none } from './exports/none';
4
+ export { default as one } from './exports/one';
@@ -0,0 +1,8 @@
1
+ import run from '../runner/runAnyoneMethods';
2
+
3
+ /**
4
+ * Checks that at all passed arguments evaluate to a truthy value.
5
+ */
6
+ export default function all(...args: unknown[]): boolean {
7
+ return args.every(run);
8
+ }
@@ -0,0 +1,8 @@
1
+ import run from '../runner/runAnyoneMethods';
2
+
3
+ /**
4
+ * Checks that at least one passed argument evaluates to a truthy value.
5
+ */
6
+ export default function any(...args: unknown[]): boolean {
7
+ return args.some(run);
8
+ }
@@ -0,0 +1,10 @@
1
+ import { bindNot } from 'vest-utils';
2
+
3
+ import run from '../runner/runAnyoneMethods';
4
+
5
+ /**
6
+ * Checks that at none of the passed arguments evaluate to a truthy value.
7
+ */
8
+ export default function none(...args: unknown[]): boolean {
9
+ return args.every(bindNot(run));
10
+ }
@@ -0,0 +1,20 @@
1
+ import run from '../runner/runAnyoneMethods';
2
+
3
+ /**
4
+ * Checks that at only one passed argument evaluates to a truthy value.
5
+ */
6
+ export default function one(...args: unknown[]): boolean {
7
+ let count = 0;
8
+
9
+ for (let i = 0; i < args.length; i++) {
10
+ if (run(args[i])) {
11
+ count++;
12
+ }
13
+
14
+ if (count > 1) {
15
+ return false;
16
+ }
17
+ }
18
+
19
+ return count === 1;
20
+ }
@@ -0,0 +1,21 @@
1
+ import { isFunction } from 'vest-utils';
2
+
3
+ /**
4
+ * Accepts a value or a function, and coerces it into a boolean value
5
+ */
6
+ export default function run(arg: unknown): boolean {
7
+ if (isFunction(arg)) {
8
+ try {
9
+ return check(arg());
10
+ } catch (err) {
11
+ return false;
12
+ }
13
+ }
14
+
15
+ return check(arg);
16
+ }
17
+
18
+ function check(value: unknown): boolean {
19
+ // We use abstract equality intentionally here. This enables falsy valueOf support.
20
+ return Array.isArray(value) ? true : value != false && Boolean(value);
21
+ }
@@ -1,5 +1,8 @@
1
+ //#region src/exports/all.d.ts
1
2
  /**
2
3
  * Checks that at all passed arguments evaluate to a truthy value.
3
4
  */
4
5
  declare function all(...args: unknown[]): boolean;
5
- export { all as default };
6
+ //#endregion
7
+ export { all as t };
8
+ //# sourceMappingURL=all-8-fac2En.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"all-8-fac2En.d.mts","names":["all","default"],"sources":["../src/exports/all.d.ts"],"sourcesContent":["/**\n * Checks that at all passed arguments evaluate to a truthy value.\n */\nexport default function all(...args: unknown[]): boolean;\n"],"mappings":";;;;iBAGwBA,GAAAA"}
@@ -0,0 +1,8 @@
1
+ //#region src/exports/all.d.ts
2
+ /**
3
+ * Checks that at all passed arguments evaluate to a truthy value.
4
+ */
5
+ declare function all(...args: unknown[]): boolean;
6
+ //#endregion
7
+ export { all as t };
8
+ //# sourceMappingURL=all-DT3n67Q2.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"all-DT3n67Q2.d.cts","names":["all","default"],"sources":["../src/exports/all.d.ts"],"sourcesContent":["/**\n * Checks that at all passed arguments evaluate to a truthy value.\n */\nexport default function all(...args: unknown[]): boolean;\n"],"mappings":";;;;iBAGwBA,GAAAA"}
@@ -1,5 +1,8 @@
1
+ //#region src/exports/any.d.ts
1
2
  /**
2
3
  * Checks that at least one passed argument evaluates to a truthy value.
3
4
  */
4
5
  declare function any(...args: unknown[]): boolean;
5
- export { any as default };
6
+ //#endregion
7
+ export { any as t };
8
+ //# sourceMappingURL=any-BDnUW0EC.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"any-BDnUW0EC.d.mts","names":["any","default"],"sources":["../src/exports/any.d.ts"],"sourcesContent":["/**\n * Checks that at least one passed argument evaluates to a truthy value.\n */\nexport default function any(...args: unknown[]): boolean;\n"],"mappings":";;;;iBAGwBA,GAAAA"}
@@ -0,0 +1,8 @@
1
+ //#region src/exports/any.d.ts
2
+ /**
3
+ * Checks that at least one passed argument evaluates to a truthy value.
4
+ */
5
+ declare function any(...args: unknown[]): boolean;
6
+ //#endregion
7
+ export { any as t };
8
+ //# sourceMappingURL=any-BMwz5-AB.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"any-BMwz5-AB.d.cts","names":["any","default"],"sources":["../src/exports/any.d.ts"],"sourcesContent":["/**\n * Checks that at least one passed argument evaluates to a truthy value.\n */\nexport default function any(...args: unknown[]): boolean;\n"],"mappings":";;;;iBAGwBA,GAAAA"}
@@ -0,0 +1,5 @@
1
+ import { t as all } from "./all-DT3n67Q2.cjs";
2
+ import { t as any } from "./any-BMwz5-AB.cjs";
3
+ import { t as none } from "./none-D0Wo1a6R.cjs";
4
+ import { t as one } from "./one-BuVF-m86.cjs";
5
+ export { all, any, none, one };
@@ -0,0 +1,5 @@
1
+ import { t as all } from "./all-8-fac2En.mjs";
2
+ import { t as any } from "./any-BDnUW0EC.mjs";
3
+ import { t as none } from "./none-CKjw9Aoz.mjs";
4
+ import { t as one } from "./one-PuTrzIUg.mjs";
5
+ export { all, any, none, one };