@valkyriestudios/utils 5.2.0 → 5.3.0
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.
- package/.nyc_output/42fb4596-cca6-4b5f-9d84-4dfa81222f86.json +1 -0
- package/.nyc_output/e5760d4f-f98f-4742-ab93-9fe7645e0319.json +1 -0
- package/.nyc_output/processinfo/42fb4596-cca6-4b5f-9d84-4dfa81222f86.json +1 -0
- package/.nyc_output/processinfo/e5760d4f-f98f-4742-ab93-9fe7645e0319.json +1 -0
- package/.nyc_output/processinfo/index.json +1 -1
- package/CHANGELOG.md +12 -0
- package/README.md +57 -51
- package/array/dedupe.js +3 -4
- package/array/is.js +0 -1
- package/array/isNotEmpty.js +0 -3
- package/array/join.js +1 -15
- package/array/mapFn.js +2 -15
- package/array/mapKey.js +1 -13
- package/array/mapPrimitive.js +1 -14
- package/array/shuffle.js +17 -0
- package/boolean/is.js +0 -1
- package/caching/memoize.js +14 -10
- package/coverage/lcov-report/index.html +17 -17
- package/coverage/lcov-report/src/array/dedupe.js.html +1 -1
- package/coverage/lcov-report/src/array/index.html +21 -6
- package/coverage/lcov-report/src/array/is.js.html +2 -2
- package/coverage/lcov-report/src/array/isNotEmpty.js.html +3 -3
- package/coverage/lcov-report/src/array/join.js.html +1 -1
- package/coverage/lcov-report/src/array/mapFn.js.html +1 -1
- package/coverage/lcov-report/src/array/mapKey.js.html +1 -1
- package/coverage/lcov-report/src/array/mapPrimitive.js.html +1 -1
- package/coverage/lcov-report/src/array/shuffle.js.html +133 -0
- package/coverage/lcov-report/src/boolean/index.html +1 -1
- package/coverage/lcov-report/src/boolean/is.js.html +1 -1
- package/coverage/lcov-report/src/caching/index.html +7 -7
- package/coverage/lcov-report/src/caching/memoize.js.html +39 -21
- package/coverage/lcov-report/src/date/index.html +1 -1
- package/coverage/lcov-report/src/date/is.js.html +1 -1
- package/coverage/lcov-report/src/deep/define.js.html +1 -1
- package/coverage/lcov-report/src/deep/freeze.js.html +1 -1
- package/coverage/lcov-report/src/deep/get.js.html +1 -1
- package/coverage/lcov-report/src/deep/index.html +1 -1
- package/coverage/lcov-report/src/deep/seal.js.html +1 -1
- package/coverage/lcov-report/src/deep/set.js.html +1 -1
- package/coverage/lcov-report/src/equal.js.html +1 -1
- package/coverage/lcov-report/src/function/index.html +1 -1
- package/coverage/lcov-report/src/function/is.js.html +2 -2
- package/coverage/lcov-report/src/function/noop.js.html +1 -1
- package/coverage/lcov-report/src/function/noopresolve.js.html +1 -1
- package/coverage/lcov-report/src/function/noopreturn.js.html +1 -1
- package/coverage/lcov-report/src/function/sleep.js.html +1 -1
- package/coverage/lcov-report/src/hash/fnv1A.js.html +13 -13
- package/coverage/lcov-report/src/hash/guid.js.html +1 -1
- package/coverage/lcov-report/src/hash/index.html +1 -1
- package/coverage/lcov-report/src/index.html +1 -1
- package/coverage/lcov-report/src/is.js.html +1 -1
- package/coverage/lcov-report/src/number/index.html +1 -1
- package/coverage/lcov-report/src/number/is.js.html +1 -1
- package/coverage/lcov-report/src/number/isAbove.js.html +1 -1
- package/coverage/lcov-report/src/number/isBelow.js.html +1 -1
- package/coverage/lcov-report/src/number/isBetween.js.html +1 -1
- package/coverage/lcov-report/src/number/isInteger.js.html +1 -1
- package/coverage/lcov-report/src/number/isIntegerAbove.js.html +1 -1
- package/coverage/lcov-report/src/number/isIntegerBelow.js.html +1 -1
- package/coverage/lcov-report/src/number/isIntegerBetween.js.html +1 -1
- package/coverage/lcov-report/src/number/isNumericalNaN.js.html +1 -1
- package/coverage/lcov-report/src/number/randomBetween.js.html +1 -1
- package/coverage/lcov-report/src/number/round.js.html +1 -1
- package/coverage/lcov-report/src/number/toPercentage.js.html +1 -1
- package/coverage/lcov-report/src/object/define.js.html +1 -1
- package/coverage/lcov-report/src/object/defineFrozen.js.html +1 -1
- package/coverage/lcov-report/src/object/defineSealed.js.html +1 -1
- package/coverage/lcov-report/src/object/forValues.js.html +1 -1
- package/coverage/lcov-report/src/object/index.html +1 -1
- package/coverage/lcov-report/src/object/is.js.html +1 -1
- package/coverage/lcov-report/src/object/isNotEmpty.js.html +1 -1
- package/coverage/lcov-report/src/object/merge.js.html +1 -1
- package/coverage/lcov-report/src/object/pick.js.html +1 -1
- package/coverage/lcov-report/src/object/zip.js.html +1 -1
- package/coverage/lcov-report/src/regexp/index.html +1 -1
- package/coverage/lcov-report/src/regexp/is.js.html +1 -1
- package/coverage/lcov-report/src/string/index.html +1 -1
- package/coverage/lcov-report/src/string/is.js.html +2 -2
- package/coverage/lcov-report/src/string/isBetween.js.html +1 -1
- package/coverage/lcov-report/src/string/isNotEmpty.js.html +1 -1
- package/coverage/lcov-report/src/string/shorten.js.html +1 -1
- package/coverage/lcov.info +84 -55
- package/date/is.js +0 -1
- package/deep/define.js +0 -3
- package/deep/freeze.js +0 -5
- package/deep/get.js +2 -12
- package/deep/seal.js +0 -5
- package/deep/set.js +2 -12
- package/equal.js +0 -13
- package/function/is.js +0 -1
- package/function/noop.js +2 -2
- package/function/noopresolve.js +0 -1
- package/function/noopreturn.js +0 -1
- package/function/sleep.js +0 -1
- package/hash/fnv1A.js +1 -10
- package/hash/guid.js +2 -2
- package/is.js +0 -21
- package/number/is.js +0 -3
- package/number/isAbove.js +0 -3
- package/number/isBelow.js +0 -3
- package/number/isBetween.js +0 -3
- package/number/isInteger.js +0 -3
- package/number/isIntegerAbove.js +0 -4
- package/number/isIntegerBelow.js +0 -4
- package/number/isIntegerBetween.js +0 -4
- package/number/randomBetween.js +0 -3
- package/number/round.js +1 -4
- package/number/toPercentage.js +0 -4
- package/object/define.js +0 -5
- package/object/defineFrozen.js +0 -3
- package/object/defineSealed.js +0 -3
- package/object/forValues.js +0 -7
- package/object/is.js +0 -1
- package/object/isNotEmpty.js +0 -3
- package/object/merge.js +0 -8
- package/object/pick.js +0 -9
- package/object/zip.js +0 -6
- package/package.json +6 -6
- package/regexp/is.js +0 -1
- package/string/is.js +0 -1
- package/string/isBetween.js +0 -4
- package/string/isNotEmpty.js +0 -3
- package/string/shorten.js +0 -5
- package/.nyc_output/58f73d7a-e507-4792-bfca-ebfb34732639.json +0 -1
- package/.nyc_output/86a24097-14b3-4c83-9aaf-69614f599a22.json +0 -1
- package/.nyc_output/processinfo/58f73d7a-e507-4792-bfca-ebfb34732639.json +0 -1
- package/.nyc_output/processinfo/86a24097-14b3-4c83-9aaf-69614f599a22.json +0 -1
package/array/shuffle.js
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: !0
|
|
5
|
+
});
|
|
6
|
+
exports["default"] = shuffle;
|
|
7
|
+
var _isNotEmpty = _interopRequireDefault(require("./isNotEmpty"));
|
|
8
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
9
|
+
function shuffle(arr) {
|
|
10
|
+
if (!(0, _isNotEmpty["default"])(arr)) return;
|
|
11
|
+
for (var i = arr.length - 1; i > 0; i--) {
|
|
12
|
+
var j = Math.floor(Math.random() * (i + 1));
|
|
13
|
+
var _ref = [arr[j], arr[i]];
|
|
14
|
+
arr[i] = _ref[0];
|
|
15
|
+
arr[j] = _ref[1];
|
|
16
|
+
}
|
|
17
|
+
}
|
package/boolean/is.js
CHANGED
package/caching/memoize.js
CHANGED
|
@@ -4,17 +4,21 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: !0
|
|
5
5
|
});
|
|
6
6
|
exports["default"] = _default;
|
|
7
|
-
|
|
7
|
+
var _is = _interopRequireDefault(require("../function/is"));
|
|
8
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
8
9
|
function _default(fn) {
|
|
9
|
-
var
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
10
|
+
var resolver = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : !1;
|
|
11
|
+
var has_resolver = (0, _is["default"])(resolver);
|
|
12
|
+
var memoized = function memoized() {
|
|
13
|
+
var key = has_resolver ? resolver.apply(this, arguments) : arguments[0];
|
|
14
|
+
|
|
15
|
+
if (memoized.cache.has(key)) return memoized.cache.get(key);
|
|
16
|
+
|
|
17
|
+
var result = fn.apply(this, arguments);
|
|
14
18
|
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
cache[key] = fn.apply(void 0, args);
|
|
18
|
-
return cache[key];
|
|
19
|
+
memoized.cache.set(key, result);
|
|
20
|
+
return result;
|
|
19
21
|
};
|
|
22
|
+
memoized.cache = new Map();
|
|
23
|
+
return memoized;
|
|
20
24
|
}
|
|
@@ -23,30 +23,30 @@
|
|
|
23
23
|
<div class='clearfix'>
|
|
24
24
|
|
|
25
25
|
<div class='fl pad1y space-right2'>
|
|
26
|
-
<span class="strong">98.
|
|
26
|
+
<span class="strong">98.92% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>
|
|
28
|
+
<span class='fraction'>461/466</span>
|
|
29
29
|
</div>
|
|
30
30
|
|
|
31
31
|
|
|
32
32
|
<div class='fl pad1y space-right2'>
|
|
33
|
-
<span class="strong">95.
|
|
33
|
+
<span class="strong">95.46% </span>
|
|
34
34
|
<span class="quiet">Branches</span>
|
|
35
|
-
<span class='fraction'>
|
|
35
|
+
<span class='fraction'>442/463</span>
|
|
36
36
|
</div>
|
|
37
37
|
|
|
38
38
|
|
|
39
39
|
<div class='fl pad1y space-right2'>
|
|
40
|
-
<span class="strong">97.
|
|
40
|
+
<span class="strong">97.18% </span>
|
|
41
41
|
<span class="quiet">Functions</span>
|
|
42
|
-
<span class='fraction'>
|
|
42
|
+
<span class='fraction'>69/71</span>
|
|
43
43
|
</div>
|
|
44
44
|
|
|
45
45
|
|
|
46
46
|
<div class='fl pad1y space-right2'>
|
|
47
|
-
<span class="strong">99.
|
|
47
|
+
<span class="strong">99.2% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>
|
|
49
|
+
<span class='fraction'>376/379</span>
|
|
50
50
|
</div>
|
|
51
51
|
|
|
52
52
|
|
|
@@ -99,13 +99,13 @@
|
|
|
99
99
|
<div class="chart"><div class="cover-fill cover-full" style="width: 100%"></div><div class="cover-empty" style="width: 0%"></div></div>
|
|
100
100
|
</td>
|
|
101
101
|
<td data-value="100" class="pct high">100%</td>
|
|
102
|
-
<td data-value="
|
|
103
|
-
<td data-value="98.
|
|
104
|
-
<td data-value="
|
|
102
|
+
<td data-value="105" class="abs high">105/105</td>
|
|
103
|
+
<td data-value="98.91" class="pct high">98.91%</td>
|
|
104
|
+
<td data-value="92" class="abs high">91/92</td>
|
|
105
105
|
<td data-value="100" class="pct high">100%</td>
|
|
106
|
-
<td data-value="
|
|
106
|
+
<td data-value="9" class="abs high">9/9</td>
|
|
107
107
|
<td data-value="100" class="pct high">100%</td>
|
|
108
|
-
<td data-value="
|
|
108
|
+
<td data-value="83" class="abs high">83/83</td>
|
|
109
109
|
</tr>
|
|
110
110
|
|
|
111
111
|
<tr>
|
|
@@ -129,13 +129,13 @@
|
|
|
129
129
|
<div class="chart"><div class="cover-fill cover-full" style="width: 100%"></div><div class="cover-empty" style="width: 0%"></div></div>
|
|
130
130
|
</td>
|
|
131
131
|
<td data-value="100" class="pct high">100%</td>
|
|
132
|
-
<td data-value="
|
|
132
|
+
<td data-value="12" class="abs high">12/12</td>
|
|
133
133
|
<td data-value="100" class="pct high">100%</td>
|
|
134
|
-
<td data-value="
|
|
134
|
+
<td data-value="8" class="abs high">8/8</td>
|
|
135
135
|
<td data-value="100" class="pct high">100%</td>
|
|
136
136
|
<td data-value="2" class="abs high">2/2</td>
|
|
137
137
|
<td data-value="100" class="pct high">100%</td>
|
|
138
|
-
<td data-value="
|
|
138
|
+
<td data-value="11" class="abs high">11/11</td>
|
|
139
139
|
</tr>
|
|
140
140
|
|
|
141
141
|
<tr>
|
|
@@ -266,7 +266,7 @@
|
|
|
266
266
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
267
267
|
Code coverage generated by
|
|
268
268
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
269
|
-
at Sun
|
|
269
|
+
at Sun Nov 20 2022 13:07:50 GMT+0100 (Central European Standard Time)
|
|
270
270
|
</div>
|
|
271
271
|
<script src="prettify.js"></script>
|
|
272
272
|
<script>
|
|
@@ -139,7 +139,7 @@ export default function (val = []) {
|
|
|
139
139
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
140
140
|
Code coverage generated by
|
|
141
141
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
142
|
-
at Sun
|
|
142
|
+
at Sun Nov 20 2022 13:07:50 GMT+0100 (Central European Standard Time)
|
|
143
143
|
</div>
|
|
144
144
|
<script src="../../prettify.js"></script>
|
|
145
145
|
<script>
|
|
@@ -25,28 +25,28 @@
|
|
|
25
25
|
<div class='fl pad1y space-right2'>
|
|
26
26
|
<span class="strong">100% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>
|
|
28
|
+
<span class='fraction'>105/105</span>
|
|
29
29
|
</div>
|
|
30
30
|
|
|
31
31
|
|
|
32
32
|
<div class='fl pad1y space-right2'>
|
|
33
|
-
<span class="strong">98.
|
|
33
|
+
<span class="strong">98.91% </span>
|
|
34
34
|
<span class="quiet">Branches</span>
|
|
35
|
-
<span class='fraction'>
|
|
35
|
+
<span class='fraction'>91/92</span>
|
|
36
36
|
</div>
|
|
37
37
|
|
|
38
38
|
|
|
39
39
|
<div class='fl pad1y space-right2'>
|
|
40
40
|
<span class="strong">100% </span>
|
|
41
41
|
<span class="quiet">Functions</span>
|
|
42
|
-
<span class='fraction'>
|
|
42
|
+
<span class='fraction'>9/9</span>
|
|
43
43
|
</div>
|
|
44
44
|
|
|
45
45
|
|
|
46
46
|
<div class='fl pad1y space-right2'>
|
|
47
47
|
<span class="strong">100% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>
|
|
49
|
+
<span class='fraction'>83/83</span>
|
|
50
50
|
</div>
|
|
51
51
|
|
|
52
52
|
|
|
@@ -183,6 +183,21 @@
|
|
|
183
183
|
<td data-value="18" class="abs high">18/18</td>
|
|
184
184
|
</tr>
|
|
185
185
|
|
|
186
|
+
<tr>
|
|
187
|
+
<td class="file high" data-value="shuffle.js"><a href="shuffle.js.html">shuffle.js</a></td>
|
|
188
|
+
<td data-value="100" class="pic high">
|
|
189
|
+
<div class="chart"><div class="cover-fill cover-full" style="width: 100%"></div><div class="cover-empty" style="width: 0%"></div></div>
|
|
190
|
+
</td>
|
|
191
|
+
<td data-value="100" class="pct high">100%</td>
|
|
192
|
+
<td data-value="9" class="abs high">9/9</td>
|
|
193
|
+
<td data-value="100" class="pct high">100%</td>
|
|
194
|
+
<td data-value="2" class="abs high">2/2</td>
|
|
195
|
+
<td data-value="100" class="pct high">100%</td>
|
|
196
|
+
<td data-value="1" class="abs high">1/1</td>
|
|
197
|
+
<td data-value="100" class="pct high">100%</td>
|
|
198
|
+
<td data-value="5" class="abs high">5/5</td>
|
|
199
|
+
</tr>
|
|
200
|
+
|
|
186
201
|
</tbody>
|
|
187
202
|
</table>
|
|
188
203
|
</div>
|
|
@@ -191,7 +206,7 @@
|
|
|
191
206
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
192
207
|
Code coverage generated by
|
|
193
208
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
194
|
-
at Sun
|
|
209
|
+
at Sun Nov 20 2022 13:07:50 GMT+0100 (Central European Standard Time)
|
|
195
210
|
</div>
|
|
196
211
|
<script src="../../prettify.js"></script>
|
|
197
212
|
<script>
|
|
@@ -71,7 +71,7 @@
|
|
|
71
71
|
<a name='L6'></a><a href='#L6'>6</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral"> </span>
|
|
72
72
|
<span class="cline-any cline-neutral"> </span>
|
|
73
73
|
<span class="cline-any cline-neutral"> </span>
|
|
74
|
-
<span class="cline-any cline-yes">
|
|
74
|
+
<span class="cline-any cline-yes">3301516x</span>
|
|
75
75
|
<span class="cline-any cline-neutral"> </span>
|
|
76
76
|
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">'use strict';
|
|
77
77
|
|
|
@@ -85,7 +85,7 @@ export default function (val) {
|
|
|
85
85
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
86
86
|
Code coverage generated by
|
|
87
87
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
88
|
-
at Sun
|
|
88
|
+
at Sun Nov 20 2022 13:07:50 GMT+0100 (Central European Standard Time)
|
|
89
89
|
</div>
|
|
90
90
|
<script src="../../prettify.js"></script>
|
|
91
91
|
<script>
|
|
@@ -76,8 +76,8 @@
|
|
|
76
76
|
<span class="cline-any cline-yes">1x</span>
|
|
77
77
|
<span class="cline-any cline-neutral"> </span>
|
|
78
78
|
<span class="cline-any cline-neutral"> </span>
|
|
79
|
-
<span class="cline-any cline-yes">
|
|
80
|
-
<span class="cline-any cline-yes">
|
|
79
|
+
<span class="cline-any cline-yes">3300600x</span>
|
|
80
|
+
<span class="cline-any cline-yes">3300418x</span>
|
|
81
81
|
<span class="cline-any cline-neutral"> </span>
|
|
82
82
|
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">'use strict';
|
|
83
83
|
|
|
@@ -94,7 +94,7 @@ export default function (val) {
|
|
|
94
94
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
95
95
|
Code coverage generated by
|
|
96
96
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
97
|
-
at Sun
|
|
97
|
+
at Sun Nov 20 2022 13:07:50 GMT+0100 (Central European Standard Time)
|
|
98
98
|
</div>
|
|
99
99
|
<script src="../../prettify.js"></script>
|
|
100
100
|
<script>
|
|
@@ -169,7 +169,7 @@ export default function (arr, options = {}) {
|
|
|
169
169
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
170
170
|
Code coverage generated by
|
|
171
171
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
172
|
-
at Sun
|
|
172
|
+
at Sun Nov 20 2022 13:07:50 GMT+0100 (Central European Standard Time)
|
|
173
173
|
</div>
|
|
174
174
|
<script src="../../prettify.js"></script>
|
|
175
175
|
<script>
|
|
@@ -169,7 +169,7 @@ export default function (arr, fn, opts = {}) {
|
|
|
169
169
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
170
170
|
Code coverage generated by
|
|
171
171
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
172
|
-
at Sun
|
|
172
|
+
at Sun Nov 20 2022 13:07:50 GMT+0100 (Central European Standard Time)
|
|
173
173
|
</div>
|
|
174
174
|
<script src="../../prettify.js"></script>
|
|
175
175
|
<script>
|
|
@@ -145,7 +145,7 @@ export default function (arr, key, opts = {}) {
|
|
|
145
145
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
146
146
|
Code coverage generated by
|
|
147
147
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
148
|
-
at Sun
|
|
148
|
+
at Sun Nov 20 2022 13:07:50 GMT+0100 (Central European Standard Time)
|
|
149
149
|
</div>
|
|
150
150
|
<script src="../../prettify.js"></script>
|
|
151
151
|
<script>
|
|
@@ -178,7 +178,7 @@ export default function (arr, opts = {}) {
|
|
|
178
178
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
179
179
|
Code coverage generated by
|
|
180
180
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
181
|
-
at Sun
|
|
181
|
+
at Sun Nov 20 2022 13:07:50 GMT+0100 (Central European Standard Time)
|
|
182
182
|
</div>
|
|
183
183
|
<script src="../../prettify.js"></script>
|
|
184
184
|
<script>
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
|
|
2
|
+
<!doctype html>
|
|
3
|
+
<html lang="en">
|
|
4
|
+
|
|
5
|
+
<head>
|
|
6
|
+
<title>Code coverage report for src/array/shuffle.js</title>
|
|
7
|
+
<meta charset="utf-8" />
|
|
8
|
+
<link rel="stylesheet" href="../../prettify.css" />
|
|
9
|
+
<link rel="stylesheet" href="../../base.css" />
|
|
10
|
+
<link rel="shortcut icon" type="image/x-icon" href="../../favicon.png" />
|
|
11
|
+
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
12
|
+
<style type='text/css'>
|
|
13
|
+
.coverage-summary .sorter {
|
|
14
|
+
background-image: url(../../sort-arrow-sprite.png);
|
|
15
|
+
}
|
|
16
|
+
</style>
|
|
17
|
+
</head>
|
|
18
|
+
|
|
19
|
+
<body>
|
|
20
|
+
<div class='wrapper'>
|
|
21
|
+
<div class='pad1'>
|
|
22
|
+
<h1><a href="../../index.html">All files</a> / <a href="index.html">src/array</a> shuffle.js</h1>
|
|
23
|
+
<div class='clearfix'>
|
|
24
|
+
|
|
25
|
+
<div class='fl pad1y space-right2'>
|
|
26
|
+
<span class="strong">100% </span>
|
|
27
|
+
<span class="quiet">Statements</span>
|
|
28
|
+
<span class='fraction'>9/9</span>
|
|
29
|
+
</div>
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
<div class='fl pad1y space-right2'>
|
|
33
|
+
<span class="strong">100% </span>
|
|
34
|
+
<span class="quiet">Branches</span>
|
|
35
|
+
<span class='fraction'>2/2</span>
|
|
36
|
+
</div>
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
<div class='fl pad1y space-right2'>
|
|
40
|
+
<span class="strong">100% </span>
|
|
41
|
+
<span class="quiet">Functions</span>
|
|
42
|
+
<span class='fraction'>1/1</span>
|
|
43
|
+
</div>
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
<div class='fl pad1y space-right2'>
|
|
47
|
+
<span class="strong">100% </span>
|
|
48
|
+
<span class="quiet">Lines</span>
|
|
49
|
+
<span class='fraction'>5/5</span>
|
|
50
|
+
</div>
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
</div>
|
|
54
|
+
<p class="quiet">
|
|
55
|
+
Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
|
|
56
|
+
</p>
|
|
57
|
+
<template id="filterTemplate">
|
|
58
|
+
<div class="quiet">
|
|
59
|
+
Filter:
|
|
60
|
+
<input oninput="onInput()" type="search" id="fileSearch">
|
|
61
|
+
</div>
|
|
62
|
+
</template>
|
|
63
|
+
</div>
|
|
64
|
+
<div class='status-line high'></div>
|
|
65
|
+
<pre><table class="coverage">
|
|
66
|
+
<tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
|
|
67
|
+
<a name='L2'></a><a href='#L2'>2</a>
|
|
68
|
+
<a name='L3'></a><a href='#L3'>3</a>
|
|
69
|
+
<a name='L4'></a><a href='#L4'>4</a>
|
|
70
|
+
<a name='L5'></a><a href='#L5'>5</a>
|
|
71
|
+
<a name='L6'></a><a href='#L6'>6</a>
|
|
72
|
+
<a name='L7'></a><a href='#L7'>7</a>
|
|
73
|
+
<a name='L8'></a><a href='#L8'>8</a>
|
|
74
|
+
<a name='L9'></a><a href='#L9'>9</a>
|
|
75
|
+
<a name='L10'></a><a href='#L10'>10</a>
|
|
76
|
+
<a name='L11'></a><a href='#L11'>11</a>
|
|
77
|
+
<a name='L12'></a><a href='#L12'>12</a>
|
|
78
|
+
<a name='L13'></a><a href='#L13'>13</a>
|
|
79
|
+
<a name='L14'></a><a href='#L14'>14</a>
|
|
80
|
+
<a name='L15'></a><a href='#L15'>15</a>
|
|
81
|
+
<a name='L16'></a><a href='#L16'>16</a>
|
|
82
|
+
<a name='L17'></a><a href='#L17'>17</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral"> </span>
|
|
83
|
+
<span class="cline-any cline-neutral"> </span>
|
|
84
|
+
<span class="cline-any cline-yes">1x</span>
|
|
85
|
+
<span class="cline-any cline-neutral"> </span>
|
|
86
|
+
<span class="cline-any cline-neutral"> </span>
|
|
87
|
+
<span class="cline-any cline-neutral"> </span>
|
|
88
|
+
<span class="cline-any cline-neutral"> </span>
|
|
89
|
+
<span class="cline-any cline-neutral"> </span>
|
|
90
|
+
<span class="cline-any cline-neutral"> </span>
|
|
91
|
+
<span class="cline-any cline-yes">3300327x</span>
|
|
92
|
+
<span class="cline-any cline-neutral"> </span>
|
|
93
|
+
<span class="cline-any cline-yes">3300301x</span>
|
|
94
|
+
<span class="cline-any cline-yes">57702709x</span>
|
|
95
|
+
<span class="cline-any cline-yes">57702709x</span>
|
|
96
|
+
<span class="cline-any cline-neutral"> </span>
|
|
97
|
+
<span class="cline-any cline-neutral"> </span>
|
|
98
|
+
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">'use strict';
|
|
99
|
+
|
|
100
|
+
import isNotEmptyArray from './isNotEmpty';
|
|
101
|
+
|
|
102
|
+
// Fisher - Yates shuffle O(n)
|
|
103
|
+
// https://en.wikipedia.org/wiki/Fisher%E2%80%93Yates_shuffle
|
|
104
|
+
//
|
|
105
|
+
// @param array arr Array to shuffle
|
|
106
|
+
export default function shuffle (arr) {
|
|
107
|
+
if (!isNotEmptyArray(arr)) return;
|
|
108
|
+
|
|
109
|
+
for (let i = arr.length - 1; i > 0; i--) {
|
|
110
|
+
const j = Math.floor(Math.random() * (i + 1)); // Random index from 0 to i
|
|
111
|
+
[arr[i], arr[j]] = [arr[j], arr[i]]; // Swap elements
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
</pre></td></tr></table></pre>
|
|
115
|
+
|
|
116
|
+
<div class='push'></div><!-- for sticky footer -->
|
|
117
|
+
</div><!-- /wrapper -->
|
|
118
|
+
<div class='footer quiet pad2 space-top1 center small'>
|
|
119
|
+
Code coverage generated by
|
|
120
|
+
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
121
|
+
at Sun Nov 20 2022 13:07:50 GMT+0100 (Central European Standard Time)
|
|
122
|
+
</div>
|
|
123
|
+
<script src="../../prettify.js"></script>
|
|
124
|
+
<script>
|
|
125
|
+
window.onload = function () {
|
|
126
|
+
prettyPrint();
|
|
127
|
+
};
|
|
128
|
+
</script>
|
|
129
|
+
<script src="../../sorter.js"></script>
|
|
130
|
+
<script src="../../block-navigation.js"></script>
|
|
131
|
+
</body>
|
|
132
|
+
</html>
|
|
133
|
+
|
|
@@ -101,7 +101,7 @@
|
|
|
101
101
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
102
102
|
Code coverage generated by
|
|
103
103
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
104
|
-
at Sun
|
|
104
|
+
at Sun Nov 20 2022 13:07:50 GMT+0100 (Central European Standard Time)
|
|
105
105
|
</div>
|
|
106
106
|
<script src="../../prettify.js"></script>
|
|
107
107
|
<script>
|
|
@@ -85,7 +85,7 @@ export default function (val) {
|
|
|
85
85
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
86
86
|
Code coverage generated by
|
|
87
87
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
88
|
-
at Sun
|
|
88
|
+
at Sun Nov 20 2022 13:07:50 GMT+0100 (Central European Standard Time)
|
|
89
89
|
</div>
|
|
90
90
|
<script src="../../prettify.js"></script>
|
|
91
91
|
<script>
|
|
@@ -25,14 +25,14 @@
|
|
|
25
25
|
<div class='fl pad1y space-right2'>
|
|
26
26
|
<span class="strong">100% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>
|
|
28
|
+
<span class='fraction'>12/12</span>
|
|
29
29
|
</div>
|
|
30
30
|
|
|
31
31
|
|
|
32
32
|
<div class='fl pad1y space-right2'>
|
|
33
33
|
<span class="strong">100% </span>
|
|
34
34
|
<span class="quiet">Branches</span>
|
|
35
|
-
<span class='fraction'>
|
|
35
|
+
<span class='fraction'>8/8</span>
|
|
36
36
|
</div>
|
|
37
37
|
|
|
38
38
|
|
|
@@ -46,7 +46,7 @@
|
|
|
46
46
|
<div class='fl pad1y space-right2'>
|
|
47
47
|
<span class="strong">100% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>
|
|
49
|
+
<span class='fraction'>11/11</span>
|
|
50
50
|
</div>
|
|
51
51
|
|
|
52
52
|
|
|
@@ -84,13 +84,13 @@
|
|
|
84
84
|
<div class="chart"><div class="cover-fill cover-full" style="width: 100%"></div><div class="cover-empty" style="width: 0%"></div></div>
|
|
85
85
|
</td>
|
|
86
86
|
<td data-value="100" class="pct high">100%</td>
|
|
87
|
-
<td data-value="
|
|
87
|
+
<td data-value="12" class="abs high">12/12</td>
|
|
88
88
|
<td data-value="100" class="pct high">100%</td>
|
|
89
|
-
<td data-value="
|
|
89
|
+
<td data-value="8" class="abs high">8/8</td>
|
|
90
90
|
<td data-value="100" class="pct high">100%</td>
|
|
91
91
|
<td data-value="2" class="abs high">2/2</td>
|
|
92
92
|
<td data-value="100" class="pct high">100%</td>
|
|
93
|
-
<td data-value="
|
|
93
|
+
<td data-value="11" class="abs high">11/11</td>
|
|
94
94
|
</tr>
|
|
95
95
|
|
|
96
96
|
</tbody>
|
|
@@ -101,7 +101,7 @@
|
|
|
101
101
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
102
102
|
Code coverage generated by
|
|
103
103
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
104
|
-
at Sun
|
|
104
|
+
at Sun Nov 20 2022 13:07:50 GMT+0100 (Central European Standard Time)
|
|
105
105
|
</div>
|
|
106
106
|
<script src="../../prettify.js"></script>
|
|
107
107
|
<script>
|
|
@@ -25,14 +25,14 @@
|
|
|
25
25
|
<div class='fl pad1y space-right2'>
|
|
26
26
|
<span class="strong">100% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>
|
|
28
|
+
<span class='fraction'>12/12</span>
|
|
29
29
|
</div>
|
|
30
30
|
|
|
31
31
|
|
|
32
32
|
<div class='fl pad1y space-right2'>
|
|
33
33
|
<span class="strong">100% </span>
|
|
34
34
|
<span class="quiet">Branches</span>
|
|
35
|
-
<span class='fraction'>
|
|
35
|
+
<span class='fraction'>8/8</span>
|
|
36
36
|
</div>
|
|
37
37
|
|
|
38
38
|
|
|
@@ -46,7 +46,7 @@
|
|
|
46
46
|
<div class='fl pad1y space-right2'>
|
|
47
47
|
<span class="strong">100% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>
|
|
49
|
+
<span class='fraction'>11/11</span>
|
|
50
50
|
</div>
|
|
51
51
|
|
|
52
52
|
|
|
@@ -81,41 +81,59 @@
|
|
|
81
81
|
<a name='L16'></a><a href='#L16'>16</a>
|
|
82
82
|
<a name='L17'></a><a href='#L17'>17</a>
|
|
83
83
|
<a name='L18'></a><a href='#L18'>18</a>
|
|
84
|
-
<a name='L19'></a><a href='#L19'>19</a
|
|
85
|
-
<
|
|
84
|
+
<a name='L19'></a><a href='#L19'>19</a>
|
|
85
|
+
<a name='L20'></a><a href='#L20'>20</a>
|
|
86
|
+
<a name='L21'></a><a href='#L21'>21</a>
|
|
87
|
+
<a name='L22'></a><a href='#L22'>22</a>
|
|
88
|
+
<a name='L23'></a><a href='#L23'>23</a>
|
|
89
|
+
<a name='L24'></a><a href='#L24'>24</a>
|
|
90
|
+
<a name='L25'></a><a href='#L25'>25</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral"> </span>
|
|
86
91
|
<span class="cline-any cline-neutral"> </span>
|
|
87
92
|
<span class="cline-any cline-yes">1x</span>
|
|
88
93
|
<span class="cline-any cline-neutral"> </span>
|
|
89
|
-
<span class="cline-any cline-yes">
|
|
90
|
-
<span class="cline-any cline-yes">
|
|
94
|
+
<span class="cline-any cline-yes">3x</span>
|
|
95
|
+
<span class="cline-any cline-yes">3x</span>
|
|
96
|
+
<span class="cline-any cline-yes">3x</span>
|
|
97
|
+
<span class="cline-any cline-neutral"> </span>
|
|
98
|
+
<span class="cline-any cline-yes">3000000x</span>
|
|
91
99
|
<span class="cline-any cline-neutral"> </span>
|
|
92
100
|
<span class="cline-any cline-neutral"> </span>
|
|
93
|
-
<span class="cline-any cline-yes">
|
|
101
|
+
<span class="cline-any cline-yes">3000000x</span>
|
|
94
102
|
<span class="cline-any cline-neutral"> </span>
|
|
95
103
|
<span class="cline-any cline-neutral"> </span>
|
|
96
|
-
<span class="cline-any cline-yes">
|
|
104
|
+
<span class="cline-any cline-yes">21x</span>
|
|
97
105
|
<span class="cline-any cline-neutral"> </span>
|
|
98
106
|
<span class="cline-any cline-neutral"> </span>
|
|
99
|
-
<span class="cline-any cline-yes">
|
|
107
|
+
<span class="cline-any cline-yes">21x</span>
|
|
100
108
|
<span class="cline-any cline-neutral"> </span>
|
|
109
|
+
<span class="cline-any cline-yes">21x</span>
|
|
110
|
+
<span class="cline-any cline-neutral"> </span>
|
|
111
|
+
<span class="cline-any cline-yes">3x</span>
|
|
112
|
+
<span class="cline-any cline-yes">3x</span>
|
|
101
113
|
<span class="cline-any cline-neutral"> </span>
|
|
102
114
|
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">'use strict';
|
|
103
115
|
|
|
104
|
-
|
|
105
|
-
|
|
116
|
+
import isFunction from '../function/is';
|
|
117
|
+
|
|
118
|
+
export default function (fn, resolver = false) {
|
|
119
|
+
const has_resolver = isFunction(resolver);
|
|
120
|
+
const memoized = function () {
|
|
121
|
+
// Get key
|
|
122
|
+
const key = has_resolver ? resolver.apply(this, arguments) : arguments[0]; // eslint-disable-line
|
|
106
123
|
|
|
107
|
-
|
|
108
|
-
|
|
124
|
+
// Check in cache
|
|
125
|
+
if (memoized.cache.has(key)) return memoized.cache.get(key);
|
|
109
126
|
|
|
110
|
-
//
|
|
111
|
-
|
|
127
|
+
// Call function
|
|
128
|
+
const result = fn.apply(this, arguments); // eslint-disable-line
|
|
112
129
|
|
|
113
|
-
// Set cache
|
|
114
|
-
cache
|
|
130
|
+
// Set in cache
|
|
131
|
+
memoized.cache.set(key, result);
|
|
115
132
|
|
|
116
|
-
|
|
117
|
-
return cache[key];
|
|
133
|
+
return result;
|
|
118
134
|
};
|
|
135
|
+
memoized.cache = new Map();
|
|
136
|
+
return memoized;
|
|
119
137
|
}
|
|
120
138
|
</pre></td></tr></table></pre>
|
|
121
139
|
|
|
@@ -124,7 +142,7 @@ export default function (fn) {
|
|
|
124
142
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
125
143
|
Code coverage generated by
|
|
126
144
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
127
|
-
at Sun
|
|
145
|
+
at Sun Nov 20 2022 13:07:50 GMT+0100 (Central European Standard Time)
|
|
128
146
|
</div>
|
|
129
147
|
<script src="../../prettify.js"></script>
|
|
130
148
|
<script>
|
|
@@ -101,7 +101,7 @@
|
|
|
101
101
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
102
102
|
Code coverage generated by
|
|
103
103
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
104
|
-
at Sun
|
|
104
|
+
at Sun Nov 20 2022 13:07:50 GMT+0100 (Central European Standard Time)
|
|
105
105
|
</div>
|
|
106
106
|
<script src="../../prettify.js"></script>
|
|
107
107
|
<script>
|