@valkyriestudios/utils 5.4.0 → 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 (142) 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 +50 -0
  7. package/README.md +167 -5
  8. package/array/dedupe.js +2 -2
  9. package/array/is.js +2 -2
  10. package/array/isNotEmpty.js +2 -2
  11. package/array/join.js +2 -2
  12. package/array/mapFn.js +2 -2
  13. package/array/mapKey.js +2 -2
  14. package/array/mapPrimitive.js +2 -2
  15. package/array/sort.js +123 -0
  16. package/boolean/is.js +2 -2
  17. package/caching/memoize.js +2 -2
  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 +32 -68
  84. package/coverage/lcov-report/src/string/humanizeNumber.js.html +334 -0
  85. package/coverage/lcov-report/src/string/index.html +28 -13
  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 +916 -568
  91. package/date/is.js +2 -2
  92. package/deep/define.js +2 -2
  93. package/deep/freeze.js +4 -6
  94. package/deep/get.js +2 -2
  95. package/deep/seal.js +4 -6
  96. package/deep/set.js +2 -2
  97. package/function/is.js +2 -2
  98. package/function/noop.js +2 -2
  99. package/function/noopresolve.js +2 -2
  100. package/function/noopreturn.js +2 -2
  101. package/function/sleep.js +2 -2
  102. package/hash/fnv1A.js +2 -2
  103. package/hash/guid.js +10 -23
  104. package/is.js +181 -2
  105. package/number/is.js +2 -2
  106. package/number/isAbove.js +2 -2
  107. package/number/isAboveOrEqual.js +12 -0
  108. package/number/isBelow.js +2 -2
  109. package/number/isBelowOrEqual.js +12 -0
  110. package/number/isBetween.js +3 -4
  111. package/number/isInteger.js +2 -2
  112. package/number/isIntegerAbove.js +2 -2
  113. package/number/isIntegerAboveOrEqual.js +13 -0
  114. package/number/isIntegerBelow.js +2 -2
  115. package/number/isIntegerBelowOrEqual.js +13 -0
  116. package/number/isIntegerBetween.js +3 -4
  117. package/number/isNumericalNaN.js +2 -2
  118. package/number/randomBetween.js +3 -4
  119. package/number/randomIntBetween.js +14 -0
  120. package/number/round.js +5 -6
  121. package/number/toPercentage.js +3 -5
  122. package/object/define.js +3 -5
  123. package/object/defineFrozen.js +2 -2
  124. package/object/defineSealed.js +2 -2
  125. package/object/forValues.js +4 -7
  126. package/object/is.js +2 -2
  127. package/object/isNotEmpty.js +2 -2
  128. package/object/merge.js +1 -3
  129. package/object/pick.js +23 -12
  130. package/object/zip.js +4 -8
  131. package/package.json +2 -2
  132. package/regexp/is.js +2 -2
  133. package/string/humanizeBytes.js +14 -30
  134. package/string/humanizeNumber.js +57 -0
  135. package/string/is.js +2 -2
  136. package/string/isBetween.js +3 -5
  137. package/string/isNotEmpty.js +2 -2
  138. package/string/shorten.js +2 -2
  139. package/.nyc_output/23b5ae65-a0d9-469f-bf26-a14b838d3a7a.json +0 -1
  140. package/.nyc_output/2b8fcaa7-2b0c-41b7-a640-7aa74f867235.json +0 -1
  141. package/.nyc_output/processinfo/23b5ae65-a0d9-469f-bf26-a14b838d3a7a.json +0 -1
  142. package/.nyc_output/processinfo/2b8fcaa7-2b0c-41b7-a640-7aa74f867235.json +0 -1
@@ -0,0 +1,382 @@
1
+
2
+ <!doctype html>
3
+ <html lang="en">
4
+
5
+ <head>
6
+ <title>Code coverage report for src/array/sort.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> sort.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'>72/72</span>
29
+ </div>
30
+
31
+
32
+ <div class='fl pad1y space-right2'>
33
+ <span class="strong">87.83% </span>
34
+ <span class="quiet">Branches</span>
35
+ <span class='fraction'>65/74</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'>7/7</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'>55/55</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>
150
+ <a name='L85'></a><a href='#L85'>85</a>
151
+ <a name='L86'></a><a href='#L86'>86</a>
152
+ <a name='L87'></a><a href='#L87'>87</a>
153
+ <a name='L88'></a><a href='#L88'>88</a>
154
+ <a name='L89'></a><a href='#L89'>89</a>
155
+ <a name='L90'></a><a href='#L90'>90</a>
156
+ <a name='L91'></a><a href='#L91'>91</a>
157
+ <a name='L92'></a><a href='#L92'>92</a>
158
+ <a name='L93'></a><a href='#L93'>93</a>
159
+ <a name='L94'></a><a href='#L94'>94</a>
160
+ <a name='L95'></a><a href='#L95'>95</a>
161
+ <a name='L96'></a><a href='#L96'>96</a>
162
+ <a name='L97'></a><a href='#L97'>97</a>
163
+ <a name='L98'></a><a href='#L98'>98</a>
164
+ <a name='L99'></a><a href='#L99'>99</a>
165
+ <a name='L100'></a><a href='#L100'>100</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">2x</span>
166
+ <span class="cline-any cline-neutral">&nbsp;</span>
167
+ <span class="cline-any cline-yes">1x</span>
168
+ <span class="cline-any cline-yes">1x</span>
169
+ <span class="cline-any cline-yes">1x</span>
170
+ <span class="cline-any cline-yes">1x</span>
171
+ <span class="cline-any cline-yes">1x</span>
172
+ <span class="cline-any cline-yes">481362x</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-yes">120098x</span>
176
+ <span class="cline-any cline-neutral">&nbsp;</span>
177
+ <span class="cline-any cline-yes">120098x</span>
178
+ <span class="cline-any cline-yes">481797x</span>
179
+ <span class="cline-any cline-yes">697965x</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-yes">481797x</span>
183
+ <span class="cline-any cline-yes">710742x</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-yes">481797x</span>
187
+ <span class="cline-any cline-yes">447361x</span>
188
+ <span class="cline-any cline-yes">447361x</span>
189
+ <span class="cline-any cline-yes">447361x</span>
190
+ <span class="cline-any cline-neutral">&nbsp;</span>
191
+ <span class="cline-any cline-yes">447361x</span>
192
+ <span class="cline-any cline-yes">447361x</span>
193
+ <span class="cline-any cline-neutral">&nbsp;</span>
194
+ <span class="cline-any cline-neutral">&nbsp;</span>
195
+ <span class="cline-any cline-neutral">&nbsp;</span>
196
+ <span class="cline-any cline-yes">120098x</span>
197
+ <span class="cline-any cline-neutral">&nbsp;</span>
198
+ <span class="cline-any cline-neutral">&nbsp;</span>
199
+ <span class="cline-any cline-yes">240221x</span>
200
+ <span class="cline-any cline-yes">240221x</span>
201
+ <span class="cline-any cline-yes">120098x</span>
202
+ <span class="cline-any cline-neutral">&nbsp;</span>
203
+ <span class="cline-any cline-yes">120098x</span>
204
+ <span class="cline-any cline-yes">120098x</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">240221x</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">100x</span>
211
+ <span class="cline-any cline-yes">100x</span>
212
+ <span class="cline-any cline-neutral">&nbsp;</span>
213
+ <span class="cline-any cline-neutral">&nbsp;</span>
214
+ <span class="cline-any cline-yes">74x</span>
215
+ <span class="cline-any cline-neutral">&nbsp;</span>
216
+ <span class="cline-any cline-neutral">&nbsp;</span>
217
+ <span class="cline-any cline-yes">53x</span>
218
+ <span class="cline-any cline-neutral">&nbsp;</span>
219
+ <span class="cline-any cline-yes">25x</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-neutral">&nbsp;</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-neutral">&nbsp;</span>
226
+ <span class="cline-any cline-yes">25x</span>
227
+ <span class="cline-any cline-yes">25x</span>
228
+ <span class="cline-any cline-yes">25x</span>
229
+ <span class="cline-any cline-yes">120149x</span>
230
+ <span class="cline-any cline-yes">120149x</span>
231
+ <span class="cline-any cline-neutral">&nbsp;</span>
232
+ <span class="cline-any cline-yes">120093x</span>
233
+ <span class="cline-any cline-yes">10x</span>
234
+ <span class="cline-any cline-neutral">&nbsp;</span>
235
+ <span class="cline-any cline-yes">120083x</span>
236
+ <span class="cline-any cline-neutral">&nbsp;</span>
237
+ <span class="cline-any cline-yes">19x</span>
238
+ <span class="cline-any cline-neutral">&nbsp;</span>
239
+ <span class="cline-any cline-yes">6x</span>
240
+ <span class="cline-any cline-yes">92x</span>
241
+ <span class="cline-any cline-yes">92x</span>
242
+ <span class="cline-any cline-neutral">&nbsp;</span>
243
+ <span class="cline-any cline-yes">42x</span>
244
+ <span class="cline-any cline-yes">42x</span>
245
+ <span class="cline-any cline-yes">2x</span>
246
+ <span class="cline-any cline-neutral">&nbsp;</span>
247
+ <span class="cline-any cline-yes">40x</span>
248
+ <span class="cline-any cline-neutral">&nbsp;</span>
249
+ <span class="cline-any cline-yes">6x</span>
250
+ <span class="cline-any cline-neutral">&nbsp;</span>
251
+ <span class="cline-any cline-neutral">&nbsp;</span>
252
+ <span class="cline-any cline-neutral">&nbsp;</span>
253
+ <span class="cline-any cline-yes">25x</span>
254
+ <span class="cline-any cline-yes">25x</span>
255
+ <span class="cline-any cline-neutral">&nbsp;</span>
256
+ <span class="cline-any cline-yes">25x</span>
257
+ <span class="cline-any cline-yes">6x</span>
258
+ <span class="cline-any cline-yes">24x</span>
259
+ <span class="cline-any cline-yes">120087x</span>
260
+ <span class="cline-any cline-neutral">&nbsp;</span>
261
+ <span class="cline-any cline-yes">30x</span>
262
+ <span class="cline-any cline-neutral">&nbsp;</span>
263
+ <span class="cline-any cline-neutral">&nbsp;</span>
264
+ <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">'use strict';
265
+ &nbsp;
266
+ import isBoolean from '../boolean/is';
267
+ import isNotEmptyArray from './isNotEmpty';
268
+ import isObject from '../object/is';
269
+ import isNotEmptyObject from '../object/isNotEmpty';
270
+ import isNotEmptyString from '../string/isNotEmpty';
271
+ import isFunction from '../function/is';<span class="branch-2 cbranch-no" title="branch not covered" ><span class="branch-3 cbranch-no" title="branch not covered" ><span class="branch-2 cbranch-no" title="branch not covered" ><span class="branch-1 cbranch-no" title="branch not covered" ></span></span></span></span>
272
+ &nbsp;
273
+ function partition (arr, start_ix, end_ix) {
274
+ const pivotVal = arr[Math.floor((start_ix + end_ix) / 2)].t;
275
+ &nbsp;
276
+ while (start_ix &lt;= end_ix) {
277
+ while (arr[start_ix].t &lt; pivotVal) {
278
+ start_ix++;
279
+ }
280
+ &nbsp;
281
+ while (arr[end_ix].t &gt; pivotVal) {
282
+ end_ix--;
283
+ }
284
+ &nbsp;
285
+ if (start_ix &lt;= end_ix) {
286
+ const temp = arr[start_ix];
287
+ arr[start_ix] = arr[end_ix];
288
+ arr[end_ix] = temp;
289
+ &nbsp;
290
+ start_ix++;
291
+ end_ix--;
292
+ }
293
+ }
294
+ &nbsp;
295
+ return start_ix;
296
+ }
297
+ &nbsp;
298
+ function quickSort (arr, start_ix = 0, end_ix = arr.length - 1) {
299
+ if (start_ix &lt; end_ix) {
300
+ const ix = partition(arr, start_ix, end_ix);
301
+ &nbsp;
302
+ quickSort(arr, start_ix, ix - 1);
303
+ quickSort(arr, ix, end_ix);
304
+ }
305
+ &nbsp;
306
+ return arr;
307
+ }
308
+ &nbsp;
309
+ export default function sort (arr, by, dir = 'asc', options = {}) {
310
+ if (!isNotEmptyArray(arr)) return [];
311
+ &nbsp;
312
+ // Check by
313
+ if (!isNotEmptyString(by) &amp;&amp; !isFunction(by)) throw new Error('Sort by should be either a string or a function');
314
+ &nbsp;
315
+ // Check dir
316
+ if (dir !== 'asc' &amp;&amp; dir !== 'desc') throw new Error('dir should be either asc or desc');
317
+ &nbsp;
318
+ const OPTS = {
319
+ filter_fn : isObject(options) &amp;&amp; isFunction(options.filter_fn) ? options.filter_fn : isNotEmptyObject,
320
+ nokey_hide : isObject(options) &amp;&amp; isBoolean(options.nokey_hide) ? options.nokey_hide : false,
321
+ nokey_atend : isObject(options) &amp;&amp; isBoolean(options.nokey_atend) ? options.nokey_atend : true,
322
+ };
323
+ &nbsp;
324
+ // Prepare for sort
325
+ const prepared_arr = [];
326
+ const nokey_arr = [];
327
+ if (isNotEmptyString(by)) {
328
+ for (const el of arr) {
329
+ if (!OPTS.filter_fn(el)) continue;
330
+ &nbsp;
331
+ if (!el.hasOwnProperty(by) || el[by] === undefined) {
332
+ nokey_arr.push(el);
333
+ } else {
334
+ prepared_arr.push({t: el[by], el});
335
+ }
336
+ }
337
+ } else {
338
+ let key;
339
+ for (const el of arr) {
340
+ if (!OPTS.filter_fn(el)) continue;
341
+ &nbsp;
342
+ key = by(el);
343
+ if (key === undefined) {
344
+ nokey_arr.push(el);
345
+ } else {
346
+ prepared_arr.push({t: by(el), el});
347
+ }
348
+ }
349
+ }
350
+ &nbsp;
351
+ // Sort
352
+ quickSort(prepared_arr);
353
+ if (dir === 'desc') prepared_arr.reverse();
354
+ &nbsp;
355
+ if (OPTS.nokey_hide) {
356
+ return prepared_arr.map(obj =&gt; obj.el);
357
+ } else if (OPTS.nokey_atend) {
358
+ return [...prepared_arr.map(obj =&gt; obj.el), ...nokey_arr];
359
+ } else {
360
+ return [...nokey_arr, ...prepared_arr.map(obj =&gt; obj.el)];
361
+ }
362
+ }
363
+ &nbsp;</pre></td></tr></table></pre>
364
+
365
+ <div class='push'></div><!-- for sticky footer -->
366
+ </div><!-- /wrapper -->
367
+ <div class='footer quiet pad2 space-top1 center small'>
368
+ Code coverage generated by
369
+ <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
370
+ at Sat Apr 22 2023 22:10:14 GMT+0200 (Central European Summer Time)
371
+ </div>
372
+ <script src="../../prettify.js"></script>
373
+ <script>
374
+ window.onload = function () {
375
+ prettyPrint();
376
+ };
377
+ </script>
378
+ <script src="../../sorter.js"></script>
379
+ <script src="../../block-navigation.js"></script>
380
+ </body>
381
+ </html>
382
+
@@ -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 Sat Apr 08 2023 13:03:00 GMT+0200 (Central European Summer Time)
104
+ at Sat Apr 22 2023 22:10:14 GMT+0200 (Central European Summer Time)
105
105
  </div>
106
106
  <script src="../../prettify.js"></script>
107
107
  <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">32x</span>
74
+ <span class="cline-any cline-yes">8815x</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 isBoolean (val) {
79
79
  return val === true || val === false || typeof val === 'boolean' || val instanceof Boolean;
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 Sat Apr 08 2023 13:03:00 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>
@@ -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 Sat Apr 08 2023 13:03:00 GMT+0200 (Central European Summer Time)
104
+ at Sat Apr 22 2023 22:10:14 GMT+0200 (Central European Summer Time)
105
105
  </div>
106
106
  <script src="../../prettify.js"></script>
107
107
  <script>
@@ -115,7 +115,7 @@
115
115
  &nbsp;
116
116
  import isFunction from '../function/is';
117
117
  &nbsp;
118
- export default function (fn, resolver = false) {
118
+ export default function memoize (fn, resolver = false) {
119
119
  const has_resolver = isFunction(resolver);
120
120
  const memoized = function () {
121
121
  // Get key
@@ -142,7 +142,7 @@ export default function (fn, resolver = false) {
142
142
  <div class='footer quiet pad2 space-top1 center small'>
143
143
  Code coverage generated by
144
144
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
145
- at Sat Apr 08 2023 13:03:00 GMT+0200 (Central European Summer Time)
145
+ at Sat Apr 22 2023 22:10:14 GMT+0200 (Central European Summer Time)
146
146
  </div>
147
147
  <script src="../../prettify.js"></script>
148
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 Sat Apr 08 2023 13:03:00 GMT+0200 (Central European Summer Time)
104
+ at Sat Apr 22 2023 22:10:14 GMT+0200 (Central European Summer Time)
105
105
  </div>
106
106
  <script src="../../prettify.js"></script>
107
107
  <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">254x</span>
74
+ <span class="cline-any cline-yes">251x</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 isDate (val) {
79
79
  return Object.prototype.toString.call(val) === '[object Date]';
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 Sat Apr 08 2023 13:03:00 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>
@@ -81,7 +81,7 @@
81
81
  &nbsp;
82
82
  import deepSet from './set';
83
83
  &nbsp;
84
- export default function (obj, path, value = <span class="branch-1 cbranch-no" title="branch not covered" >null)</span> {
84
+ export default function deepDefine (obj, path, value = <span class="branch-1 cbranch-no" title="branch not covered" >null)</span> {
85
85
  return deepSet(obj, path, value, true);
86
86
  }
87
87
  &nbsp;</pre></td></tr></table></pre>
@@ -91,7 +91,7 @@ export default function (obj, path, value = <span class="branch-1 cbranch-no" ti
91
91
  <div class='footer quiet pad2 space-top1 center small'>
92
92
  Code coverage generated by
93
93
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
94
- at Sat Apr 08 2023 13:03:00 GMT+0200 (Central European Summer Time)
94
+ at Sat Apr 22 2023 22:10:14 GMT+0200 (Central European Summer Time)
95
95
  </div>
96
96
  <script src="../../prettify.js"></script>
97
97
  <script>
@@ -30,9 +30,9 @@
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">80% </span>
33
+ <span class="strong">87.5% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>16/20</span>
35
+ <span class='fraction'>14/16</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'>11/11</span>
49
+ <span class='fraction'>10/10</span>
50
50
  </div>
51
51
 
52
52
 
@@ -82,10 +82,7 @@
82
82
  <a name='L17'></a><a href='#L17'>17</a>
83
83
  <a name='L18'></a><a href='#L18'>18</a>
84
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></td><td class="line-coverage quiet"><span class="cline-any cline-yes">2x</span>
85
+ <a name='L20'></a><a href='#L20'>20</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">2x</span>
89
86
  <span class="cline-any cline-neutral">&nbsp;</span>
90
87
  <span class="cline-any cline-yes">1x</span>
91
88
  <span class="cline-any cline-yes">2x</span>
@@ -102,19 +99,16 @@
102
99
  <span class="cline-any cline-neutral">&nbsp;</span>
103
100
  <span class="cline-any cline-neutral">&nbsp;</span>
104
101
  <span class="cline-any cline-yes">9x</span>
105
- <span class="cline-any cline-yes">4x</span>
106
- <span class="cline-any cline-neutral">&nbsp;</span>
107
- <span class="cline-any cline-neutral">&nbsp;</span>
108
102
  <span class="cline-any cline-yes">5x</span>
109
103
  <span class="cline-any cline-neutral">&nbsp;</span>
110
104
  <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">'use strict';
111
105
  &nbsp;
112
- import isObject from '../object/is';
113
- import isArray from '../array/is';
106
+ import isObject from '../object/is';
107
+ import isArray from '../array/is';
114
108
  &nbsp;
115
109
  function deep (obj, next = <span class="branch-1 cbranch-no" title="branch not covered" >Object.seal)</span> {
116
110
  (Object.keys(obj) || <span class="branch-1 cbranch-no" title="branch not covered" >[])</span>.forEach(key =&gt; {
117
- if (isObject(obj[key] || <span class="branch-1 cbranch-no" title="branch not covered" >false)</span> || isArray(obj[key] || <span class="branch-1 cbranch-no" title="branch not covered" >false)</span>) {
111
+ if (isObject(obj[key]) || isArray(obj[key])) {
118
112
  deep(obj[key], next);
119
113
  }
120
114
  });
@@ -122,11 +116,8 @@ function deep (obj, next = <span class="branch-1 cbranch-no" title="branch not c
122
116
  }
123
117
  &nbsp;
124
118
  // Freeze nested structures
125
- export default function (obj) {
126
- if (!isObject(obj) &amp;&amp; !isArray(obj)) {
127
- throw new TypeError('Only objects can be frozen');
128
- }
129
- &nbsp;
119
+ export default function deepFreeze (obj) {
120
+ if (!isObject(obj) &amp;&amp; !isArray(obj)) throw new TypeError('Only objects can be frozen');
130
121
  return deep(obj, Object.freeze);
131
122
  }
132
123
  &nbsp;</pre></td></tr></table></pre>
@@ -136,7 +127,7 @@ export default function (obj) {
136
127
  <div class='footer quiet pad2 space-top1 center small'>
137
128
  Code coverage generated by
138
129
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
139
- at Sat Apr 08 2023 13:03:00 GMT+0200 (Central European Summer Time)
130
+ at Sat Apr 22 2023 22:10:14 GMT+0200 (Central European Summer Time)
140
131
  </div>
141
132
  <script src="../../prettify.js"></script>
142
133
  <script>
@@ -106,32 +106,32 @@
106
106
  <span class="cline-any cline-neutral">&nbsp;</span>
107
107
  <span class="cline-any cline-neutral">&nbsp;</span>
108
108
  <span class="cline-any cline-neutral">&nbsp;</span>
109
- <span class="cline-any cline-yes">48x</span>
110
- <span class="cline-any cline-yes">40x</span>
111
- <span class="cline-any cline-yes">39x</span>
109
+ <span class="cline-any cline-yes">54x</span>
110
+ <span class="cline-any cline-yes">46x</span>
111
+ <span class="cline-any cline-yes">45x</span>
112
112
  <span class="cline-any cline-neutral">&nbsp;</span>
113
113
  <span class="cline-any cline-neutral">&nbsp;</span>
114
114
  <span class="cline-any cline-neutral">&nbsp;</span>
115
- <span class="cline-any cline-yes">62x</span>
116
- <span class="cline-any cline-yes">62x</span>
115
+ <span class="cline-any cline-yes">68x</span>
116
+ <span class="cline-any cline-yes">68x</span>
117
117
  <span class="cline-any cline-neutral">&nbsp;</span>
118
- <span class="cline-any cline-yes">48x</span>
118
+ <span class="cline-any cline-yes">54x</span>
119
119
  <span class="cline-any cline-neutral">&nbsp;</span>
120
120
  <span class="cline-any cline-neutral">&nbsp;</span>
121
- <span class="cline-any cline-yes">40x</span>
121
+ <span class="cline-any cline-yes">46x</span>
122
122
  <span class="cline-any cline-neutral">&nbsp;</span>
123
123
  <span class="cline-any cline-neutral">&nbsp;</span>
124
- <span class="cline-any cline-yes">39x</span>
124
+ <span class="cline-any cline-yes">45x</span>
125
125
  <span class="cline-any cline-neutral">&nbsp;</span>
126
- <span class="cline-any cline-yes">39x</span>
126
+ <span class="cline-any cline-yes">45x</span>
127
127
  <span class="cline-any cline-neutral">&nbsp;</span>
128
- <span class="cline-any cline-yes">39x</span>
129
- <span class="cline-any cline-yes">62x</span>
128
+ <span class="cline-any cline-yes">45x</span>
129
+ <span class="cline-any cline-yes">70x</span>
130
130
  <span class="cline-any cline-neutral">&nbsp;</span>
131
131
  <span class="cline-any cline-neutral">&nbsp;</span>
132
132
  <span class="cline-any cline-neutral">&nbsp;</span>
133
133
  <span class="cline-any cline-neutral">&nbsp;</span>
134
- <span class="cline-any cline-yes">38x</span>
134
+ <span class="cline-any cline-yes">44x</span>
135
135
  <span class="cline-any cline-neutral">&nbsp;</span>
136
136
  <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">'use strict';
137
137
  &nbsp;
@@ -147,7 +147,7 @@ function interpolatePath (path) {
147
147
  }
148
148
  &nbsp;
149
149
  // Get a value from a path in a json-like structure
150
- export default function (obj, path, get_parent = false) {
150
+ export default function deepGet (obj, path, get_parent = false) {
151
151
  if (!isObject(obj) &amp;&amp; !isArray(obj)) throw new TypeError('Deepget is only supported for objects');
152
152
  &nbsp;
153
153
  const parts = interpolatePath(path);
@@ -175,7 +175,7 @@ export default function (obj, path, get_parent = false) {
175
175
  <div class='footer quiet pad2 space-top1 center small'>
176
176
  Code coverage generated by
177
177
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
178
- at Sat Apr 08 2023 13:03:00 GMT+0200 (Central European Summer Time)
178
+ at Sat Apr 22 2023 22:10:14 GMT+0200 (Central European Summer Time)
179
179
  </div>
180
180
  <script src="../../prettify.js"></script>
181
181
  <script>