@valkyriestudios/utils 5.3.1 → 6.0.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 (143) hide show
  1. package/.nyc_output/41b22c1d-c8f3-46f1-b61e-896e1840025c.json +1 -0
  2. package/.nyc_output/a1d9de97-3f93-432f-9582-56743151511c.json +1 -0
  3. package/.nyc_output/processinfo/41b22c1d-c8f3-46f1-b61e-896e1840025c.json +1 -0
  4. package/.nyc_output/processinfo/a1d9de97-3f93-432f-9582-56743151511c.json +1 -0
  5. package/.nyc_output/processinfo/index.json +1 -1
  6. package/CHANGELOG.md +57 -0
  7. package/README.md +176 -5
  8. package/array/dedupe.js +2 -5
  9. package/array/is.js +2 -2
  10. package/array/isNotEmpty.js +2 -2
  11. package/array/join.js +3 -3
  12. package/array/mapFn.js +3 -4
  13. package/array/mapKey.js +3 -3
  14. package/array/mapPrimitive.js +3 -3
  15. package/array/sort.js +123 -0
  16. package/boolean/is.js +2 -2
  17. package/caching/memoize.js +2 -5
  18. package/coverage/lcov-report/index.html +43 -43
  19. package/coverage/lcov-report/src/array/dedupe.js.html +2 -2
  20. package/coverage/lcov-report/src/array/index.html +21 -6
  21. package/coverage/lcov-report/src/array/is.js.html +3 -3
  22. package/coverage/lcov-report/src/array/isNotEmpty.js.html +4 -4
  23. package/coverage/lcov-report/src/array/join.js.html +2 -2
  24. package/coverage/lcov-report/src/array/mapFn.js.html +2 -2
  25. package/coverage/lcov-report/src/array/mapKey.js.html +2 -2
  26. package/coverage/lcov-report/src/array/mapPrimitive.js.html +2 -2
  27. package/coverage/lcov-report/src/array/shuffle.js.html +5 -5
  28. package/coverage/lcov-report/src/array/sort.js.html +382 -0
  29. package/coverage/lcov-report/src/boolean/index.html +1 -1
  30. package/coverage/lcov-report/src/boolean/is.js.html +3 -3
  31. package/coverage/lcov-report/src/caching/index.html +1 -1
  32. package/coverage/lcov-report/src/caching/memoize.js.html +2 -2
  33. package/coverage/lcov-report/src/date/index.html +1 -1
  34. package/coverage/lcov-report/src/date/is.js.html +3 -3
  35. package/coverage/lcov-report/src/deep/define.js.html +2 -2
  36. package/coverage/lcov-report/src/deep/freeze.js.html +10 -19
  37. package/coverage/lcov-report/src/deep/get.js.html +14 -14
  38. package/coverage/lcov-report/src/deep/index.html +10 -10
  39. package/coverage/lcov-report/src/deep/seal.js.html +8 -17
  40. package/coverage/lcov-report/src/deep/set.js.html +16 -16
  41. package/coverage/lcov-report/src/equal.js.html +1 -1
  42. package/coverage/lcov-report/src/function/index.html +1 -1
  43. package/coverage/lcov-report/src/function/is.js.html +3 -3
  44. package/coverage/lcov-report/src/function/noop.js.html +2 -2
  45. package/coverage/lcov-report/src/function/noopresolve.js.html +2 -2
  46. package/coverage/lcov-report/src/function/noopreturn.js.html +2 -2
  47. package/coverage/lcov-report/src/function/sleep.js.html +2 -2
  48. package/coverage/lcov-report/src/hash/fnv1A.js.html +13 -13
  49. package/coverage/lcov-report/src/hash/guid.js.html +63 -48
  50. package/coverage/lcov-report/src/hash/index.html +20 -20
  51. package/coverage/lcov-report/src/index.html +5 -5
  52. package/coverage/lcov-report/src/is.js.html +175 -43
  53. package/coverage/lcov-report/src/number/index.html +90 -15
  54. package/coverage/lcov-report/src/number/is.js.html +4 -4
  55. package/coverage/lcov-report/src/number/isAbove.js.html +5 -8
  56. package/coverage/lcov-report/src/number/isAboveOrEqual.js.html +112 -0
  57. package/coverage/lcov-report/src/number/isBelow.js.html +5 -8
  58. package/coverage/lcov-report/src/number/isBelowOrEqual.js.html +112 -0
  59. package/coverage/lcov-report/src/number/isBetween.js.html +20 -11
  60. package/coverage/lcov-report/src/number/isInteger.js.html +4 -4
  61. package/coverage/lcov-report/src/number/isIntegerAbove.js.html +5 -8
  62. package/coverage/lcov-report/src/number/isIntegerAboveOrEqual.js.html +115 -0
  63. package/coverage/lcov-report/src/number/isIntegerBelow.js.html +5 -8
  64. package/coverage/lcov-report/src/number/isIntegerBelowOrEqual.js.html +115 -0
  65. package/coverage/lcov-report/src/number/isIntegerBetween.js.html +20 -11
  66. package/coverage/lcov-report/src/number/isNumericalNaN.js.html +3 -3
  67. package/coverage/lcov-report/src/number/randomBetween.js.html +11 -8
  68. package/coverage/lcov-report/src/number/randomIntBetween.js.html +124 -0
  69. package/coverage/lcov-report/src/number/round.js.html +12 -15
  70. package/coverage/lcov-report/src/number/toPercentage.js.html +12 -12
  71. package/coverage/lcov-report/src/object/define.js.html +10 -7
  72. package/coverage/lcov-report/src/object/defineFrozen.js.html +2 -2
  73. package/coverage/lcov-report/src/object/defineSealed.js.html +2 -2
  74. package/coverage/lcov-report/src/object/forValues.js.html +9 -18
  75. package/coverage/lcov-report/src/object/index.html +19 -19
  76. package/coverage/lcov-report/src/object/is.js.html +3 -3
  77. package/coverage/lcov-report/src/object/isNotEmpty.js.html +4 -4
  78. package/coverage/lcov-report/src/object/merge.js.html +6 -12
  79. package/coverage/lcov-report/src/object/pick.js.html +30 -36
  80. package/coverage/lcov-report/src/object/zip.js.html +6 -21
  81. package/coverage/lcov-report/src/regexp/index.html +1 -1
  82. package/coverage/lcov-report/src/regexp/is.js.html +3 -3
  83. package/coverage/lcov-report/src/string/humanizeBytes.js.html +175 -0
  84. package/coverage/lcov-report/src/string/humanizeNumber.js.html +334 -0
  85. package/coverage/lcov-report/src/string/index.html +40 -10
  86. package/coverage/lcov-report/src/string/is.js.html +3 -3
  87. package/coverage/lcov-report/src/string/isBetween.js.html +20 -17
  88. package/coverage/lcov-report/src/string/isNotEmpty.js.html +5 -5
  89. package/coverage/lcov-report/src/string/shorten.js.html +17 -5
  90. package/coverage/lcov.info +926 -530
  91. package/date/is.js +2 -2
  92. package/deep/define.js +2 -2
  93. package/deep/freeze.js +4 -7
  94. package/deep/get.js +3 -7
  95. package/deep/seal.js +4 -7
  96. package/deep/set.js +3 -9
  97. package/equal.js +0 -7
  98. package/function/is.js +2 -3
  99. package/function/noop.js +2 -3
  100. package/function/noopresolve.js +2 -3
  101. package/function/noopreturn.js +2 -3
  102. package/function/sleep.js +2 -3
  103. package/hash/fnv1A.js +2 -8
  104. package/hash/guid.js +10 -26
  105. package/is.js +181 -2
  106. package/number/is.js +2 -2
  107. package/number/isAbove.js +2 -2
  108. package/number/isAboveOrEqual.js +12 -0
  109. package/number/isBelow.js +2 -2
  110. package/number/isBelowOrEqual.js +12 -0
  111. package/number/isBetween.js +3 -4
  112. package/number/isInteger.js +2 -2
  113. package/number/isIntegerAbove.js +2 -2
  114. package/number/isIntegerAboveOrEqual.js +13 -0
  115. package/number/isIntegerBelow.js +2 -2
  116. package/number/isIntegerBelowOrEqual.js +13 -0
  117. package/number/isIntegerBetween.js +3 -4
  118. package/number/isNumericalNaN.js +2 -4
  119. package/number/randomBetween.js +3 -4
  120. package/number/randomIntBetween.js +14 -0
  121. package/number/round.js +5 -7
  122. package/number/toPercentage.js +3 -5
  123. package/object/define.js +3 -5
  124. package/object/defineFrozen.js +2 -2
  125. package/object/defineSealed.js +2 -2
  126. package/object/forValues.js +4 -7
  127. package/object/is.js +2 -2
  128. package/object/isNotEmpty.js +2 -2
  129. package/object/merge.js +1 -3
  130. package/object/pick.js +23 -12
  131. package/object/zip.js +4 -8
  132. package/package.json +2 -2
  133. package/regexp/is.js +2 -2
  134. package/string/humanizeBytes.js +24 -0
  135. package/string/humanizeNumber.js +57 -0
  136. package/string/is.js +2 -2
  137. package/string/isBetween.js +3 -5
  138. package/string/isNotEmpty.js +2 -2
  139. package/string/shorten.js +2 -2
  140. package/.nyc_output/1a7d1a21-08be-4f94-911a-00cfdce52f8c.json +0 -1
  141. package/.nyc_output/4de4b713-79af-403d-b012-c25e5d50454d.json +0 -1
  142. package/.nyc_output/processinfo/1a7d1a21-08be-4f94-911a-00cfdce52f8c.json +0 -1
  143. package/.nyc_output/processinfo/4de4b713-79af-403d-b012-c25e5d50454d.json +0 -1
@@ -0,0 +1,175 @@
1
+
2
+ <!doctype html>
3
+ <html lang="en">
4
+
5
+ <head>
6
+ <title>Code coverage report for src/string/humanizeBytes.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/string</a> humanizeBytes.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'>10/10</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'>22/22</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'>9/9</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></td><td class="line-coverage quiet"><span class="cline-any cline-yes">2x</span>
97
+ <span class="cline-any cline-neutral">&nbsp;</span>
98
+ <span class="cline-any cline-yes">1x</span>
99
+ <span class="cline-any cline-yes">1x</span>
100
+ <span class="cline-any cline-yes">1x</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">6x</span>
104
+ <span class="cline-any cline-neutral">&nbsp;</span>
105
+ <span class="cline-any cline-neutral">&nbsp;</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-yes">4407x</span>
109
+ <span class="cline-any cline-yes">4407x</span>
110
+ <span class="cline-any cline-neutral">&nbsp;</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-neutral">&nbsp;</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-neutral">&nbsp;</span>
122
+ <span class="cline-any cline-neutral">&nbsp;</span>
123
+ <span class="cline-any cline-neutral">&nbsp;</span>
124
+ <span class="cline-any cline-neutral">&nbsp;</span>
125
+ <span class="cline-any cline-neutral">&nbsp;</span>
126
+ <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">'use strict';
127
+ &nbsp;
128
+ import isNotEmptyArray from '../array/isNotEmpty';
129
+ import isIntegerAboveOrEqual from '../number/isIntegerAboveOrEqual';
130
+ import isObject from '../object/is';
131
+ import isString from '../string/is';
132
+ import isNotEmptyString from '../string/isNotEmpty';
133
+ import humanizeNumber from './humanizeNumber';
134
+ &nbsp;
135
+ // Humanize a numerical byte value into a readable file size
136
+ //
137
+ // @param int val Amount of bytes
138
+ export default function humanizeBytes (val, options = {}) {
139
+ return humanizeNumber(val, {
140
+ delim: isObject(options) &amp;&amp; isString(options.delim)
141
+ ? options.delim
142
+ : ',',
143
+ separator: isObject(options) &amp;&amp; isNotEmptyString(options.separator)
144
+ ? options.separator
145
+ : '.',
146
+ precision: isObject(options) &amp;&amp; isIntegerAboveOrEqual(options.precision, 0)
147
+ ? options.precision
148
+ : 2,
149
+ units: isObject(options) &amp;&amp; isNotEmptyArray(options.units)
150
+ ? options.units.filter(isNotEmptyString)
151
+ : [' bytes', ' KB', ' MB', ' GB', ' TB', ' PB', ' EB', ' ZB', ' YB'],
152
+ divider: 1024,
153
+ real: true,
154
+ });
155
+ }
156
+ &nbsp;</pre></td></tr></table></pre>
157
+
158
+ <div class='push'></div><!-- for sticky footer -->
159
+ </div><!-- /wrapper -->
160
+ <div class='footer quiet pad2 space-top1 center small'>
161
+ Code coverage generated by
162
+ <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
163
+ at Sat Apr 22 2023 22:10:14 GMT+0200 (Central European Summer Time)
164
+ </div>
165
+ <script src="../../prettify.js"></script>
166
+ <script>
167
+ window.onload = function () {
168
+ prettyPrint();
169
+ };
170
+ </script>
171
+ <script src="../../sorter.js"></script>
172
+ <script src="../../block-navigation.js"></script>
173
+ </body>
174
+ </html>
175
+
@@ -0,0 +1,334 @@
1
+
2
+ <!doctype html>
3
+ <html lang="en">
4
+
5
+ <head>
6
+ <title>Code coverage report for src/string/humanizeNumber.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/string</a> humanizeNumber.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'>35/35</span>
29
+ </div>
30
+
31
+
32
+ <div class='fl pad1y space-right2'>
33
+ <span class="strong">98.36% </span>
34
+ <span class="quiet">Branches</span>
35
+ <span class='fraction'>60/61</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'>33/33</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>
100
+ <a name='L35'></a><a href='#L35'>35</a>
101
+ <a name='L36'></a><a href='#L36'>36</a>
102
+ <a name='L37'></a><a href='#L37'>37</a>
103
+ <a name='L38'></a><a href='#L38'>38</a>
104
+ <a name='L39'></a><a href='#L39'>39</a>
105
+ <a name='L40'></a><a href='#L40'>40</a>
106
+ <a name='L41'></a><a href='#L41'>41</a>
107
+ <a name='L42'></a><a href='#L42'>42</a>
108
+ <a name='L43'></a><a href='#L43'>43</a>
109
+ <a name='L44'></a><a href='#L44'>44</a>
110
+ <a name='L45'></a><a href='#L45'>45</a>
111
+ <a name='L46'></a><a href='#L46'>46</a>
112
+ <a name='L47'></a><a href='#L47'>47</a>
113
+ <a name='L48'></a><a href='#L48'>48</a>
114
+ <a name='L49'></a><a href='#L49'>49</a>
115
+ <a name='L50'></a><a href='#L50'>50</a>
116
+ <a name='L51'></a><a href='#L51'>51</a>
117
+ <a name='L52'></a><a href='#L52'>52</a>
118
+ <a name='L53'></a><a href='#L53'>53</a>
119
+ <a name='L54'></a><a href='#L54'>54</a>
120
+ <a name='L55'></a><a href='#L55'>55</a>
121
+ <a name='L56'></a><a href='#L56'>56</a>
122
+ <a name='L57'></a><a href='#L57'>57</a>
123
+ <a name='L58'></a><a href='#L58'>58</a>
124
+ <a name='L59'></a><a href='#L59'>59</a>
125
+ <a name='L60'></a><a href='#L60'>60</a>
126
+ <a name='L61'></a><a href='#L61'>61</a>
127
+ <a name='L62'></a><a href='#L62'>62</a>
128
+ <a name='L63'></a><a href='#L63'>63</a>
129
+ <a name='L64'></a><a href='#L64'>64</a>
130
+ <a name='L65'></a><a href='#L65'>65</a>
131
+ <a name='L66'></a><a href='#L66'>66</a>
132
+ <a name='L67'></a><a href='#L67'>67</a>
133
+ <a name='L68'></a><a href='#L68'>68</a>
134
+ <a name='L69'></a><a href='#L69'>69</a>
135
+ <a name='L70'></a><a href='#L70'>70</a>
136
+ <a name='L71'></a><a href='#L71'>71</a>
137
+ <a name='L72'></a><a href='#L72'>72</a>
138
+ <a name='L73'></a><a href='#L73'>73</a>
139
+ <a name='L74'></a><a href='#L74'>74</a>
140
+ <a name='L75'></a><a href='#L75'>75</a>
141
+ <a name='L76'></a><a href='#L76'>76</a>
142
+ <a name='L77'></a><a href='#L77'>77</a>
143
+ <a name='L78'></a><a href='#L78'>78</a>
144
+ <a name='L79'></a><a href='#L79'>79</a>
145
+ <a name='L80'></a><a href='#L80'>80</a>
146
+ <a name='L81'></a><a href='#L81'>81</a>
147
+ <a name='L82'></a><a href='#L82'>82</a>
148
+ <a name='L83'></a><a href='#L83'>83</a>
149
+ <a name='L84'></a><a href='#L84'>84</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">2x</span>
150
+ <span class="cline-any cline-neutral">&nbsp;</span>
151
+ <span class="cline-any cline-yes">1x</span>
152
+ <span class="cline-any cline-yes">1x</span>
153
+ <span class="cline-any cline-yes">1x</span>
154
+ <span class="cline-any cline-yes">1x</span>
155
+ <span class="cline-any cline-yes">1x</span>
156
+ <span class="cline-any cline-yes">1x</span>
157
+ <span class="cline-any cline-yes">1x</span>
158
+ <span class="cline-any cline-yes">8x</span>
159
+ <span class="cline-any cline-neutral">&nbsp;</span>
160
+ <span class="cline-any cline-neutral">&nbsp;</span>
161
+ <span class="cline-any cline-neutral">&nbsp;</span>
162
+ <span class="cline-any cline-neutral">&nbsp;</span>
163
+ <span class="cline-any cline-yes">8736x</span>
164
+ <span class="cline-any cline-yes">8736x</span>
165
+ <span class="cline-any cline-neutral">&nbsp;</span>
166
+ <span class="cline-any cline-neutral">&nbsp;</span>
167
+ <span class="cline-any cline-neutral">&nbsp;</span>
168
+ <span class="cline-any cline-neutral">&nbsp;</span>
169
+ <span class="cline-any cline-neutral">&nbsp;</span>
170
+ <span class="cline-any cline-neutral">&nbsp;</span>
171
+ <span class="cline-any cline-neutral">&nbsp;</span>
172
+ <span class="cline-any cline-neutral">&nbsp;</span>
173
+ <span class="cline-any cline-neutral">&nbsp;</span>
174
+ <span class="cline-any cline-neutral">&nbsp;</span>
175
+ <span class="cline-any cline-neutral">&nbsp;</span>
176
+ <span class="cline-any cline-neutral">&nbsp;</span>
177
+ <span class="cline-any cline-neutral">&nbsp;</span>
178
+ <span class="cline-any cline-neutral">&nbsp;</span>
179
+ <span class="cline-any cline-neutral">&nbsp;</span>
180
+ <span class="cline-any cline-neutral">&nbsp;</span>
181
+ <span class="cline-any cline-neutral">&nbsp;</span>
182
+ <span class="cline-any cline-neutral">&nbsp;</span>
183
+ <span class="cline-any cline-neutral">&nbsp;</span>
184
+ <span class="cline-any cline-neutral">&nbsp;</span>
185
+ <span class="cline-any cline-neutral">&nbsp;</span>
186
+ <span class="cline-any cline-neutral">&nbsp;</span>
187
+ <span class="cline-any cline-neutral">&nbsp;</span>
188
+ <span class="cline-any cline-yes">8736x</span>
189
+ <span class="cline-any cline-yes">12x</span>
190
+ <span class="cline-any cline-neutral">&nbsp;</span>
191
+ <span class="cline-any cline-neutral">&nbsp;</span>
192
+ <span class="cline-any cline-neutral">&nbsp;</span>
193
+ <span class="cline-any cline-neutral">&nbsp;</span>
194
+ <span class="cline-any cline-yes">8724x</span>
195
+ <span class="cline-any cline-yes">4401x</span>
196
+ <span class="cline-any cline-neutral">&nbsp;</span>
197
+ <span class="cline-any cline-yes">4323x</span>
198
+ <span class="cline-any cline-neutral">&nbsp;</span>
199
+ <span class="cline-any cline-yes">8724x</span>
200
+ <span class="cline-any cline-yes">12x</span>
201
+ <span class="cline-any cline-neutral">&nbsp;</span>
202
+ <span class="cline-any cline-neutral">&nbsp;</span>
203
+ <span class="cline-any cline-neutral">&nbsp;</span>
204
+ <span class="cline-any cline-yes">8712x</span>
205
+ <span class="cline-any cline-neutral">&nbsp;</span>
206
+ <span class="cline-any cline-neutral">&nbsp;</span>
207
+ <span class="cline-any cline-yes">8712x</span>
208
+ <span class="cline-any cline-neutral">&nbsp;</span>
209
+ <span class="cline-any cline-neutral">&nbsp;</span>
210
+ <span class="cline-any cline-yes">8712x</span>
211
+ <span class="cline-any cline-yes">8712x</span>
212
+ <span class="cline-any cline-yes">8700x</span>
213
+ <span class="cline-any cline-yes">8700x</span>
214
+ <span class="cline-any cline-yes">1192x</span>
215
+ <span class="cline-any cline-yes">1192x</span>
216
+ <span class="cline-any cline-yes">1192x</span>
217
+ <span class="cline-any cline-neutral">&nbsp;</span>
218
+ <span class="cline-any cline-yes">8700x</span>
219
+ <span class="cline-any cline-neutral">&nbsp;</span>
220
+ <span class="cline-any cline-neutral">&nbsp;</span>
221
+ <span class="cline-any cline-neutral">&nbsp;</span>
222
+ <span class="cline-any cline-yes">8712x</span>
223
+ <span class="cline-any cline-neutral">&nbsp;</span>
224
+ <span class="cline-any cline-neutral">&nbsp;</span>
225
+ <span class="cline-any cline-yes">8712x</span>
226
+ <span class="cline-any cline-yes">8712x</span>
227
+ <span class="cline-any cline-yes">8712x</span>
228
+ <span class="cline-any cline-neutral">&nbsp;</span>
229
+ <span class="cline-any cline-neutral">&nbsp;</span>
230
+ <span class="cline-any cline-yes">8712x</span>
231
+ <span class="cline-any cline-neutral">&nbsp;</span>
232
+ <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">'use strict';
233
+ &nbsp;
234
+ import isNotEmptyArray from '../array/isNotEmpty';
235
+ import isBoolean from '../boolean/is';
236
+ import isIntegerAboveOrEqual from '../number/isIntegerAboveOrEqual';
237
+ import isNumber from '../number/is';
238
+ import isObject from '../object/is';
239
+ import isString from '../string/is';
240
+ import isNotEmptyString from '../string/isNotEmpty';
241
+ import round from '../number/round';
242
+ &nbsp;
243
+ // Humanize a numerical value into a unit base
244
+ //
245
+ // @param int val Amount of bytes
246
+ export default function humanizeNumber (val, options = {}) {
247
+ const OPTS = {
248
+ delim: isObject(options) &amp;&amp; isString(options.delim)
249
+ ? options.delim
250
+ : ',',
251
+ separator: isObject(options) &amp;&amp; isNotEmptyString(options.separator)
252
+ ? options.separator
253
+ : '.',
254
+ precision: isObject(options) &amp;&amp; isIntegerAboveOrEqual(options.precision, 0)
255
+ ? options.precision
256
+ : 2,
257
+ units: isObject(options) &amp;&amp; (isNotEmptyArray(options.units) || options.units === false)
258
+ ? options.units ? options.units.filter(isString) : false
259
+ : ['', 'k', 'm', 'b', 't', 'q'],
260
+ // Have to have at least bigger than 1 to not end in infinite loop
261
+ divider: isObject(options) &amp;&amp; isIntegerAboveOrEqual(options.divider, 2)
262
+ ? options.divider
263
+ : 1000,
264
+ // Should we auto parse as integer (true) or not (false)
265
+ real: isObject(options) &amp;&amp; isBoolean(options.real)
266
+ ? options.real
267
+ : false,
268
+ };
269
+ &nbsp;
270
+ // If not a valid value, return
271
+ if (!(isNumber(val) || isNotEmptyString(val))) {
272
+ return `0${OPTS.units.length &gt; 0 ? OPTS.units[0] : <span class="branch-1 cbranch-no" title="branch not covered" >''}</span>`;
273
+ }
274
+ &nbsp;
275
+ // Ensure we are working with an integer
276
+ let normalized;
277
+ if (OPTS.real) {
278
+ normalized = parseInt(isString(val) ? val.trim() : val) || 0;
279
+ } else {
280
+ normalized = parseFloat(isString(val) ? val.trim() : val) || 0;
281
+ }
282
+ if (!isNumber(normalized) || normalized === 0) {
283
+ return `0${OPTS.units.length &gt; 0 ? OPTS.units[0] : ''}`;
284
+ }
285
+ &nbsp;
286
+ // Determine sign
287
+ const sign = normalized &lt; 0 ? '-' : '';
288
+ &nbsp;
289
+ // Ensure val here is absolute
290
+ normalized = Math.abs(normalized);
291
+ &nbsp;
292
+ // At each step, divide by divider, based on that we get the unit size
293
+ let postfix = '';
294
+ if (OPTS.units) {
295
+ let unit_ix = 0;
296
+ while (normalized &gt;= OPTS.divider) {
297
+ unit_ix++;
298
+ normalized = normalized/OPTS.divider;
299
+ if (unit_ix === OPTS.units.length - 1) break;
300
+ }
301
+ postfix = OPTS.units[unit_ix];
302
+ }
303
+ &nbsp;
304
+ // Round with precision
305
+ normalized = round(normalized, OPTS.precision);
306
+ &nbsp;
307
+ // Humanize from eg: 10023 to 10,023
308
+ normalized = normalized.toLocaleString('en-US', {maximumFractionDigits: OPTS.precision}).split('.');
309
+ normalized[0] = `${normalized[0]}`.replace(/,/g, OPTS.delim);
310
+ normalized = normalized.join(OPTS.separator);
311
+ &nbsp;
312
+ // Include a decimal point and a tenths-place digit if presenting less than then of KB or greater units
313
+ return `${sign}${normalized}${postfix}`;
314
+ }
315
+ &nbsp;</pre></td></tr></table></pre>
316
+
317
+ <div class='push'></div><!-- for sticky footer -->
318
+ </div><!-- /wrapper -->
319
+ <div class='footer quiet pad2 space-top1 center small'>
320
+ Code coverage generated by
321
+ <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
322
+ at Sat Apr 22 2023 22:10:14 GMT+0200 (Central European Summer Time)
323
+ </div>
324
+ <script src="../../prettify.js"></script>
325
+ <script>
326
+ window.onload = function () {
327
+ prettyPrint();
328
+ };
329
+ </script>
330
+ <script src="../../sorter.js"></script>
331
+ <script src="../../block-navigation.js"></script>
332
+ </body>
333
+ </html>
334
+
@@ -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'>33/33</span>
28
+ <span class='fraction'>74/74</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">100% </span>
33
+ <span class="strong">99.19% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>43/43</span>
35
+ <span class='fraction'>123/124</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'>7/7</span>
42
+ <span class='fraction'>11/11</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'>24/24</span>
49
+ <span class='fraction'>66/66</span>
50
50
  </div>
51
51
 
52
52
 
@@ -79,6 +79,36 @@
79
79
  </tr>
80
80
  </thead>
81
81
  <tbody><tr>
82
+ <td class="file high" data-value="humanizeBytes.js"><a href="humanizeBytes.js.html">humanizeBytes.js</a></td>
83
+ <td data-value="100" class="pic high">
84
+ <div class="chart"><div class="cover-fill cover-full" style="width: 100%"></div><div class="cover-empty" style="width: 0%"></div></div>
85
+ </td>
86
+ <td data-value="100" class="pct high">100%</td>
87
+ <td data-value="10" class="abs high">10/10</td>
88
+ <td data-value="100" class="pct high">100%</td>
89
+ <td data-value="22" class="abs high">22/22</td>
90
+ <td data-value="100" class="pct high">100%</td>
91
+ <td data-value="2" class="abs high">2/2</td>
92
+ <td data-value="100" class="pct high">100%</td>
93
+ <td data-value="9" class="abs high">9/9</td>
94
+ </tr>
95
+
96
+ <tr>
97
+ <td class="file high" data-value="humanizeNumber.js"><a href="humanizeNumber.js.html">humanizeNumber.js</a></td>
98
+ <td data-value="100" class="pic high">
99
+ <div class="chart"><div class="cover-fill cover-full" style="width: 100%"></div><div class="cover-empty" style="width: 0%"></div></div>
100
+ </td>
101
+ <td data-value="100" class="pct high">100%</td>
102
+ <td data-value="35" class="abs high">35/35</td>
103
+ <td data-value="98.36" class="pct high">98.36%</td>
104
+ <td data-value="61" class="abs high">60/61</td>
105
+ <td data-value="100" class="pct high">100%</td>
106
+ <td data-value="2" class="abs high">2/2</td>
107
+ <td data-value="100" class="pct high">100%</td>
108
+ <td data-value="33" class="abs high">33/33</td>
109
+ </tr>
110
+
111
+ <tr>
82
112
  <td class="file high" data-value="is.js"><a href="is.js.html">is.js</a></td>
83
113
  <td data-value="100" class="pic high">
84
114
  <div class="chart"><div class="cover-fill cover-full" style="width: 100%"></div><div class="cover-empty" style="width: 0%"></div></div>
@@ -99,13 +129,13 @@
99
129
  <div class="chart"><div class="cover-fill cover-full" style="width: 100%"></div><div class="cover-empty" style="width: 0%"></div></div>
100
130
  </td>
101
131
  <td data-value="100" class="pct high">100%</td>
102
- <td data-value="13" class="abs high">13/13</td>
132
+ <td data-value="9" class="abs high">9/9</td>
103
133
  <td data-value="100" class="pct high">100%</td>
104
- <td data-value="18" class="abs high">18/18</td>
134
+ <td data-value="16" class="abs high">16/16</td>
105
135
  <td data-value="100" class="pct high">100%</td>
106
136
  <td data-value="2" class="abs high">2/2</td>
107
137
  <td data-value="100" class="pct high">100%</td>
108
- <td data-value="9" class="abs high">9/9</td>
138
+ <td data-value="8" class="abs high">8/8</td>
109
139
  </tr>
110
140
 
111
141
  <tr>
@@ -135,7 +165,7 @@
135
165
  <td data-value="100" class="pct high">100%</td>
136
166
  <td data-value="2" class="abs high">2/2</td>
137
167
  <td data-value="100" class="pct high">100%</td>
138
- <td data-value="8" class="abs high">8/8</td>
168
+ <td data-value="9" class="abs high">9/9</td>
139
169
  </tr>
140
170
 
141
171
  </tbody>
@@ -146,7 +176,7 @@
146
176
  <div class='footer quiet pad2 space-top1 center small'>
147
177
  Code coverage generated by
148
178
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
149
- at Fri Mar 31 2023 20:18:40 GMT+0200 (Central European Summer Time)
179
+ at Sat Apr 22 2023 22:10:14 GMT+0200 (Central European Summer Time)
150
180
  </div>
151
181
  <script src="../../prettify.js"></script>
152
182
  <script>
@@ -71,11 +71,11 @@
71
71
  <a name='L6'></a><a href='#L6'>6</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">2x</span>
72
72
  <span class="cline-any cline-neutral">&nbsp;</span>
73
73
  <span class="cline-any cline-neutral">&nbsp;</span>
74
- <span class="cline-any cline-yes">1000874x</span>
74
+ <span class="cline-any cline-yes">1080329x</span>
75
75
  <span class="cline-any cline-neutral">&nbsp;</span>
76
76
  <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">'use strict';
77
77
  &nbsp;
78
- export default function (val) {
78
+ export default function isString (val) {
79
79
  return typeof val === 'string' || val instanceof String;
80
80
  }
81
81
  &nbsp;</pre></td></tr></table></pre>
@@ -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 Fri Mar 31 2023 20:18:40 GMT+0200 (Central European Summer Time)
88
+ at Sat Apr 22 2023 22:10:14 GMT+0200 (Central European Summer Time)
89
89
  </div>
90
90
  <script src="../../prettify.js"></script>
91
91
  <script>