@valkyriestudios/utils 5.4.0 → 6.1.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.
Files changed (140) hide show
  1. package/CHANGELOG.md +54 -0
  2. package/README.md +167 -5
  3. package/array/dedupe.js +2 -2
  4. package/array/is.js +2 -2
  5. package/array/isNotEmpty.js +2 -2
  6. package/array/join.js +2 -2
  7. package/array/mapFn.js +2 -2
  8. package/array/mapKey.js +2 -2
  9. package/array/mapPrimitive.js +2 -2
  10. package/array/sort.js +123 -0
  11. package/boolean/is.js +2 -2
  12. package/caching/memoize.js +2 -2
  13. package/date/is.js +2 -2
  14. package/deep/define.js +2 -2
  15. package/deep/freeze.js +4 -6
  16. package/deep/get.js +2 -2
  17. package/deep/seal.js +4 -6
  18. package/deep/set.js +2 -2
  19. package/function/is.js +2 -2
  20. package/function/noop.js +2 -2
  21. package/function/noopresolve.js +2 -2
  22. package/function/noopreturn.js +2 -2
  23. package/function/sleep.js +2 -2
  24. package/hash/fnv1A.js +2 -2
  25. package/hash/guid.js +10 -23
  26. package/is.js +181 -2
  27. package/number/is.js +2 -2
  28. package/number/isAbove.js +2 -2
  29. package/number/isAboveOrEqual.js +12 -0
  30. package/number/isBelow.js +2 -2
  31. package/number/isBelowOrEqual.js +12 -0
  32. package/number/isBetween.js +3 -4
  33. package/number/isInteger.js +2 -2
  34. package/number/isIntegerAbove.js +2 -2
  35. package/number/isIntegerAboveOrEqual.js +13 -0
  36. package/number/isIntegerBelow.js +2 -2
  37. package/number/isIntegerBelowOrEqual.js +13 -0
  38. package/number/isIntegerBetween.js +3 -4
  39. package/number/isNumericalNaN.js +2 -2
  40. package/number/randomBetween.js +3 -4
  41. package/number/randomIntBetween.js +14 -0
  42. package/number/round.js +5 -6
  43. package/number/toPercentage.js +3 -5
  44. package/object/define.js +3 -5
  45. package/object/defineFrozen.js +2 -2
  46. package/object/defineSealed.js +2 -2
  47. package/object/forValues.js +4 -7
  48. package/object/is.js +2 -2
  49. package/object/isNotEmpty.js +2 -2
  50. package/object/merge.js +1 -3
  51. package/object/pick.js +23 -12
  52. package/object/zip.js +4 -8
  53. package/package.json +2 -2
  54. package/regexp/is.js +2 -2
  55. package/string/humanizeBytes.js +14 -30
  56. package/string/humanizeNumber.js +57 -0
  57. package/string/is.js +2 -2
  58. package/string/isBetween.js +3 -5
  59. package/string/isNotEmpty.js +2 -2
  60. package/string/shorten.js +2 -2
  61. package/.nyc_output/23b5ae65-a0d9-469f-bf26-a14b838d3a7a.json +0 -1
  62. package/.nyc_output/2b8fcaa7-2b0c-41b7-a640-7aa74f867235.json +0 -1
  63. package/.nyc_output/processinfo/23b5ae65-a0d9-469f-bf26-a14b838d3a7a.json +0 -1
  64. package/.nyc_output/processinfo/2b8fcaa7-2b0c-41b7-a640-7aa74f867235.json +0 -1
  65. package/.nyc_output/processinfo/index.json +0 -1
  66. package/codecov +0 -0
  67. package/codecov.sh +0 -2
  68. package/coverage/lcov-report/base.css +0 -224
  69. package/coverage/lcov-report/block-navigation.js +0 -87
  70. package/coverage/lcov-report/favicon.png +0 -0
  71. package/coverage/lcov-report/index.html +0 -281
  72. package/coverage/lcov-report/prettify.css +0 -1
  73. package/coverage/lcov-report/prettify.js +0 -2
  74. package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  75. package/coverage/lcov-report/sorter.js +0 -196
  76. package/coverage/lcov-report/src/array/dedupe.js.html +0 -154
  77. package/coverage/lcov-report/src/array/index.html +0 -221
  78. package/coverage/lcov-report/src/array/is.js.html +0 -100
  79. package/coverage/lcov-report/src/array/isNotEmpty.js.html +0 -109
  80. package/coverage/lcov-report/src/array/join.js.html +0 -184
  81. package/coverage/lcov-report/src/array/mapFn.js.html +0 -184
  82. package/coverage/lcov-report/src/array/mapKey.js.html +0 -160
  83. package/coverage/lcov-report/src/array/mapPrimitive.js.html +0 -193
  84. package/coverage/lcov-report/src/array/shuffle.js.html +0 -133
  85. package/coverage/lcov-report/src/boolean/index.html +0 -116
  86. package/coverage/lcov-report/src/boolean/is.js.html +0 -100
  87. package/coverage/lcov-report/src/caching/index.html +0 -116
  88. package/coverage/lcov-report/src/caching/memoize.js.html +0 -157
  89. package/coverage/lcov-report/src/date/index.html +0 -116
  90. package/coverage/lcov-report/src/date/is.js.html +0 -100
  91. package/coverage/lcov-report/src/deep/define.js.html +0 -106
  92. package/coverage/lcov-report/src/deep/freeze.js.html +0 -151
  93. package/coverage/lcov-report/src/deep/get.js.html +0 -190
  94. package/coverage/lcov-report/src/deep/index.html +0 -176
  95. package/coverage/lcov-report/src/deep/seal.js.html +0 -151
  96. package/coverage/lcov-report/src/deep/set.js.html +0 -229
  97. package/coverage/lcov-report/src/equal.js.html +0 -280
  98. package/coverage/lcov-report/src/function/index.html +0 -176
  99. package/coverage/lcov-report/src/function/is.js.html +0 -103
  100. package/coverage/lcov-report/src/function/noop.js.html +0 -100
  101. package/coverage/lcov-report/src/function/noopresolve.js.html +0 -103
  102. package/coverage/lcov-report/src/function/noopreturn.js.html +0 -103
  103. package/coverage/lcov-report/src/function/sleep.js.html +0 -121
  104. package/coverage/lcov-report/src/hash/fnv1A.js.html +0 -238
  105. package/coverage/lcov-report/src/hash/guid.js.html +0 -184
  106. package/coverage/lcov-report/src/hash/index.html +0 -131
  107. package/coverage/lcov-report/src/index.html +0 -131
  108. package/coverage/lcov-report/src/is.js.html +0 -220
  109. package/coverage/lcov-report/src/number/index.html +0 -281
  110. package/coverage/lcov-report/src/number/is.js.html +0 -109
  111. package/coverage/lcov-report/src/number/isAbove.js.html +0 -115
  112. package/coverage/lcov-report/src/number/isBelow.js.html +0 -115
  113. package/coverage/lcov-report/src/number/isBetween.js.html +0 -121
  114. package/coverage/lcov-report/src/number/isInteger.js.html +0 -109
  115. package/coverage/lcov-report/src/number/isIntegerAbove.js.html +0 -118
  116. package/coverage/lcov-report/src/number/isIntegerBelow.js.html +0 -118
  117. package/coverage/lcov-report/src/number/isIntegerBetween.js.html +0 -124
  118. package/coverage/lcov-report/src/number/isNumericalNaN.js.html +0 -106
  119. package/coverage/lcov-report/src/number/randomBetween.js.html +0 -121
  120. package/coverage/lcov-report/src/number/round.js.html +0 -130
  121. package/coverage/lcov-report/src/number/toPercentage.js.html +0 -130
  122. package/coverage/lcov-report/src/object/define.js.html +0 -118
  123. package/coverage/lcov-report/src/object/defineFrozen.js.html +0 -106
  124. package/coverage/lcov-report/src/object/defineSealed.js.html +0 -106
  125. package/coverage/lcov-report/src/object/forValues.js.html +0 -133
  126. package/coverage/lcov-report/src/object/index.html +0 -236
  127. package/coverage/lcov-report/src/object/is.js.html +0 -100
  128. package/coverage/lcov-report/src/object/isNotEmpty.js.html +0 -109
  129. package/coverage/lcov-report/src/object/merge.js.html +0 -157
  130. package/coverage/lcov-report/src/object/pick.js.html +0 -151
  131. package/coverage/lcov-report/src/object/zip.js.html +0 -145
  132. package/coverage/lcov-report/src/regexp/index.html +0 -116
  133. package/coverage/lcov-report/src/regexp/is.js.html +0 -100
  134. package/coverage/lcov-report/src/string/humanizeBytes.js.html +0 -211
  135. package/coverage/lcov-report/src/string/index.html +0 -176
  136. package/coverage/lcov-report/src/string/is.js.html +0 -100
  137. package/coverage/lcov-report/src/string/isBetween.js.html +0 -133
  138. package/coverage/lcov-report/src/string/isNotEmpty.js.html +0 -109
  139. package/coverage/lcov-report/src/string/shorten.js.html +0 -139
  140. package/coverage/lcov.info +0 -1770
@@ -1,184 +0,0 @@
1
-
2
- <!doctype html>
3
- <html lang="en">
4
-
5
- <head>
6
- <title>Code coverage report for src/array/join.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> join.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'>22/22</span>
29
- </div>
30
-
31
-
32
- <div class='fl pad1y space-right2'>
33
- <span class="strong">78.57% </span>
34
- <span class="quiet">Branches</span>
35
- <span class='fraction'>22/28</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'>2/2</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'>17/17</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>
83
- <a name='L18'></a><a href='#L18'>18</a>
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>
91
- <a name='L26'></a><a href='#L26'>26</a>
92
- <a name='L27'></a><a href='#L27'>27</a>
93
- <a name='L28'></a><a href='#L28'>28</a>
94
- <a name='L29'></a><a href='#L29'>29</a>
95
- <a name='L30'></a><a href='#L30'>30</a>
96
- <a name='L31'></a><a href='#L31'>31</a>
97
- <a name='L32'></a><a href='#L32'>32</a>
98
- <a name='L33'></a><a href='#L33'>33</a>
99
- <a name='L34'></a><a href='#L34'>34</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">2x</span>
100
- <span class="cline-any cline-neutral">&nbsp;</span>
101
- <span class="cline-any cline-yes">1x</span>
102
- <span class="cline-any cline-yes">1x</span>
103
- <span class="cline-any cline-yes">1x</span>
104
- <span class="cline-any cline-yes">1x</span>
105
- <span class="cline-any cline-yes">293x</span>
106
- <span class="cline-any cline-neutral">&nbsp;</span>
107
- <span class="cline-any cline-neutral">&nbsp;</span>
108
- <span class="cline-any cline-neutral">&nbsp;</span>
109
- <span class="cline-any cline-neutral">&nbsp;</span>
110
- <span class="cline-any cline-neutral">&nbsp;</span>
111
- <span class="cline-any cline-yes">40x</span>
112
- <span class="cline-any cline-yes">40x</span>
113
- <span class="cline-any cline-neutral">&nbsp;</span>
114
- <span class="cline-any cline-yes">12x</span>
115
- <span class="cline-any cline-neutral">&nbsp;</span>
116
- <span class="cline-any cline-neutral">&nbsp;</span>
117
- <span class="cline-any cline-neutral">&nbsp;</span>
118
- <span class="cline-any cline-neutral">&nbsp;</span>
119
- <span class="cline-any cline-neutral">&nbsp;</span>
120
- <span class="cline-any cline-neutral">&nbsp;</span>
121
- <span class="cline-any cline-yes">12x</span>
122
- <span class="cline-any cline-yes">48x</span>
123
- <span class="cline-any cline-yes">48x</span>
124
- <span class="cline-any cline-yes">22x</span>
125
- <span class="cline-any cline-yes">26x</span>
126
- <span class="cline-any cline-yes">5x</span>
127
- <span class="cline-any cline-neutral">&nbsp;</span>
128
- <span class="cline-any cline-yes">12x</span>
129
- <span class="cline-any cline-neutral">&nbsp;</span>
130
- <span class="cline-any cline-yes">12x</span>
131
- <span class="cline-any cline-neutral">&nbsp;</span>
132
- <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">'use strict';
133
- &nbsp;
134
- import isNotEmptyArray from './isNotEmpty';
135
- import isNotEmptyString from '../string/isNotEmpty';
136
- import isNumber from '../number/is';
137
- import isNotEmptyObject from '../object/isNotEmpty';
138
- import round from '../number/round';<span class="branch-2 cbranch-no" title="branch not covered" ></span>
139
- &nbsp;
140
- // Join an array of values while autofiltering any non-string/non-number elements
141
- //
142
- // @param array arr Array of values to join
143
- // @param object options (default={}) Override options
144
- export default function (arr, options = {}) {
145
- if (!isNotEmptyArray(arr)) return '';
146
- &nbsp;
147
- const OPTS = Object.assign({
148
- delim : ' ', // Delimiter to join with
149
- trim : true, // Trim after joining
150
- valtrim : true, // Automatically trim string values
151
- valround : false, // Automatically round numbers
152
- }, isNotEmptyObject(options) ? options : {});
153
- &nbsp;
154
- const filtered = [];
155
- for (const el of arr) {
156
- if (isNotEmptyString(el)) {
157
- filtered.push(OPTS.valtrim === true ? el.trim() : el);
158
- } else if (isNumber(el)) {
159
- filtered.push(isNumber(OPTS.valround) ? round(el, OPTS.valround) : el);
160
- }
161
- }
162
- &nbsp;
163
- return OPTS.trim === true ? filtered.join(OPTS.delim).trim() : filtered.join(OPTS.delim);
164
- }
165
- &nbsp;</pre></td></tr></table></pre>
166
-
167
- <div class='push'></div><!-- for sticky footer -->
168
- </div><!-- /wrapper -->
169
- <div class='footer quiet pad2 space-top1 center small'>
170
- Code coverage generated by
171
- <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
172
- at Sat Apr 08 2023 13:03:00 GMT+0200 (Central European Summer Time)
173
- </div>
174
- <script src="../../prettify.js"></script>
175
- <script>
176
- window.onload = function () {
177
- prettyPrint();
178
- };
179
- </script>
180
- <script src="../../sorter.js"></script>
181
- <script src="../../block-navigation.js"></script>
182
- </body>
183
- </html>
184
-
@@ -1,184 +0,0 @@
1
-
2
- <!doctype html>
3
- <html lang="en">
4
-
5
- <head>
6
- <title>Code coverage report for src/array/mapFn.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> mapFn.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'>27/27</span>
29
- </div>
30
-
31
-
32
- <div class='fl pad1y space-right2'>
33
- <span class="strong">80% </span>
34
- <span class="quiet">Branches</span>
35
- <span class='fraction'>24/30</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'>2/2</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'>20/20</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>
83
- <a name='L18'></a><a href='#L18'>18</a>
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>
91
- <a name='L26'></a><a href='#L26'>26</a>
92
- <a name='L27'></a><a href='#L27'>27</a>
93
- <a name='L28'></a><a href='#L28'>28</a>
94
- <a name='L29'></a><a href='#L29'>29</a>
95
- <a name='L30'></a><a href='#L30'>30</a>
96
- <a name='L31'></a><a href='#L31'>31</a>
97
- <a name='L32'></a><a href='#L32'>32</a>
98
- <a name='L33'></a><a href='#L33'>33</a>
99
- <a name='L34'></a><a href='#L34'>34</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">2x</span>
100
- <span class="cline-any cline-neutral">&nbsp;</span>
101
- <span class="cline-any cline-yes">1x</span>
102
- <span class="cline-any cline-yes">1x</span>
103
- <span class="cline-any cline-yes">1x</span>
104
- <span class="cline-any cline-yes">1x</span>
105
- <span class="cline-any cline-yes">287x</span>
106
- <span class="cline-any cline-neutral">&nbsp;</span>
107
- <span class="cline-any cline-yes">61x</span>
108
- <span class="cline-any cline-yes">61x</span>
109
- <span class="cline-any cline-neutral">&nbsp;</span>
110
- <span class="cline-any cline-yes">7x</span>
111
- <span class="cline-any cline-neutral">&nbsp;</span>
112
- <span class="cline-any cline-neutral">&nbsp;</span>
113
- <span class="cline-any cline-neutral">&nbsp;</span>
114
- <span class="cline-any cline-yes">7x</span>
115
- <span class="cline-any cline-yes">7x</span>
116
- <span class="cline-any cline-yes">66x</span>
117
- <span class="cline-any cline-yes">66x</span>
118
- <span class="cline-any cline-neutral">&nbsp;</span>
119
- <span class="cline-any cline-neutral">&nbsp;</span>
120
- <span class="cline-any cline-yes">31x</span>
121
- <span class="cline-any cline-yes">31x</span>
122
- <span class="cline-any cline-neutral">&nbsp;</span>
123
- <span class="cline-any cline-yes">22x</span>
124
- <span class="cline-any cline-yes">2x</span>
125
- <span class="cline-any cline-neutral">&nbsp;</span>
126
- <span class="cline-any cline-yes">20x</span>
127
- <span class="cline-any cline-neutral">&nbsp;</span>
128
- <span class="cline-any cline-yes">7x</span>
129
- <span class="cline-any cline-neutral">&nbsp;</span>
130
- <span class="cline-any cline-yes">7x</span>
131
- <span class="cline-any cline-neutral">&nbsp;</span>
132
- <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">'use strict';
133
- &nbsp;
134
- import isObject from '../object/is';
135
- import isNotEmptyArray from './isNotEmpty';
136
- import isFunction from '../function/is';
137
- import isNotEmptyString from '../string/isNotEmpty';
138
- import isNumber from '../number/is';<span class="branch-2 cbranch-no" title="branch not covered" ></span>
139
- &nbsp;
140
- export default function (arr, fn, opts = {}) {
141
- if (!isNotEmptyArray(arr) || !isFunction(fn)) return {};
142
- &nbsp;
143
- const OPTS = Object.assign({
144
- merge: false,
145
- }, isObject(opts) ? opts : {});
146
- &nbsp;
147
- const map = {};
148
- let hash = false;
149
- for (const el of arr) {
150
- if (!isObject(el)) continue;
151
- &nbsp;
152
- // Get hash
153
- hash = fn(el);
154
- if (!isNumber(hash) &amp;&amp; !isNotEmptyString(hash)) continue;
155
- &nbsp;
156
- if (OPTS.merge === true &amp;&amp; map.hasOwnProperty(hash)) {
157
- map[hash] = Object.assign(map[hash], el);
158
- } else {
159
- map[hash] = el;
160
- }
161
- }
162
- &nbsp;
163
- return map;
164
- }
165
- &nbsp;</pre></td></tr></table></pre>
166
-
167
- <div class='push'></div><!-- for sticky footer -->
168
- </div><!-- /wrapper -->
169
- <div class='footer quiet pad2 space-top1 center small'>
170
- Code coverage generated by
171
- <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
172
- at Sat Apr 08 2023 13:03:00 GMT+0200 (Central European Summer Time)
173
- </div>
174
- <script src="../../prettify.js"></script>
175
- <script>
176
- window.onload = function () {
177
- prettyPrint();
178
- };
179
- </script>
180
- <script src="../../sorter.js"></script>
181
- <script src="../../block-navigation.js"></script>
182
- </body>
183
- </html>
184
-
@@ -1,160 +0,0 @@
1
-
2
- <!doctype html>
3
- <html lang="en">
4
-
5
- <head>
6
- <title>Code coverage report for src/array/mapKey.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> mapKey.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'>21/21</span>
29
- </div>
30
-
31
-
32
- <div class='fl pad1y space-right2'>
33
- <span class="strong">78.57% </span>
34
- <span class="quiet">Branches</span>
35
- <span class='fraction'>22/28</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'>2/2</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'>15/15</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>
83
- <a name='L18'></a><a href='#L18'>18</a>
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>
91
- <a name='L26'></a><a href='#L26'>26</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">2x</span>
92
- <span class="cline-any cline-neutral">&nbsp;</span>
93
- <span class="cline-any cline-yes">1x</span>
94
- <span class="cline-any cline-yes">1x</span>
95
- <span class="cline-any cline-yes">234x</span>
96
- <span class="cline-any cline-neutral">&nbsp;</span>
97
- <span class="cline-any cline-yes">60x</span>
98
- <span class="cline-any cline-yes">60x</span>
99
- <span class="cline-any cline-neutral">&nbsp;</span>
100
- <span class="cline-any cline-yes">6x</span>
101
- <span class="cline-any cline-neutral">&nbsp;</span>
102
- <span class="cline-any cline-neutral">&nbsp;</span>
103
- <span class="cline-any cline-neutral">&nbsp;</span>
104
- <span class="cline-any cline-yes">6x</span>
105
- <span class="cline-any cline-yes">53x</span>
106
- <span class="cline-any cline-yes">53x</span>
107
- <span class="cline-any cline-yes">22x</span>
108
- <span class="cline-any cline-yes">2x</span>
109
- <span class="cline-any cline-neutral">&nbsp;</span>
110
- <span class="cline-any cline-yes">20x</span>
111
- <span class="cline-any cline-neutral">&nbsp;</span>
112
- <span class="cline-any cline-yes">6x</span>
113
- <span class="cline-any cline-neutral">&nbsp;</span>
114
- <span class="cline-any cline-yes">6x</span>
115
- <span class="cline-any cline-neutral">&nbsp;</span>
116
- <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">'use strict';
117
- &nbsp;
118
- import isObject from '../object/is';
119
- import isNotEmptyArray from './isNotEmpty';
120
- import isNotEmptyString from '../string/isNotEmpty';<span class="branch-2 cbranch-no" title="branch not covered" ></span>
121
- &nbsp;
122
- export default function (arr, key, opts = {}) {
123
- if (!isNotEmptyArray(arr) || !isNotEmptyString(key)) return {};
124
- &nbsp;
125
- const OPTS = Object.assign({
126
- merge: false,
127
- }, isObject(opts) ? opts : {});
128
- &nbsp;
129
- const map = {};
130
- for (const el of arr) {
131
- if (!isObject(el) || !el.hasOwnProperty(key)) continue;
132
- if (OPTS.merge === true &amp;&amp; map.hasOwnProperty(el[key])) {
133
- map[el[key]] = Object.assign(map[el[key]], el);
134
- } else {
135
- map[el[key]] = el;
136
- }
137
- }
138
- &nbsp;
139
- return map;
140
- }
141
- &nbsp;</pre></td></tr></table></pre>
142
-
143
- <div class='push'></div><!-- for sticky footer -->
144
- </div><!-- /wrapper -->
145
- <div class='footer quiet pad2 space-top1 center small'>
146
- Code coverage generated by
147
- <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
148
- at Sat Apr 08 2023 13:03:00 GMT+0200 (Central European Summer Time)
149
- </div>
150
- <script src="../../prettify.js"></script>
151
- <script>
152
- window.onload = function () {
153
- prettyPrint();
154
- };
155
- </script>
156
- <script src="../../sorter.js"></script>
157
- <script src="../../block-navigation.js"></script>
158
- </body>
159
- </html>
160
-