@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
package/CHANGELOG.md CHANGED
@@ -5,6 +5,60 @@ All notable changes to this project will be documented in this file.
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) and this project adheres to [Semantic
6
6
  Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
+ ## [6.1.0] - 2023-04-23
9
+ ### Improved
10
+ - Reduce eventual bundle size for package
11
+
12
+ ## [6.0.0] - 2023-04-22
13
+ ### Added
14
+ - array/sort
15
+ - string/humanizeNumber (with delim, separator, precision, units, divider) options
16
+ - number/randomIntBetween
17
+ - number/isAboveOrEqual
18
+ - number/isBelowOrEqual
19
+ - number/isIntegerAboveOrEqual
20
+ - number/isIntegerBelowOrEqual
21
+ - Is@NumberBelowOrEqual
22
+ - Is@NumberAboveOrEqual
23
+ - Is@IntegerBelowOrEqual
24
+ - Is@IntegerAboveOrEqual
25
+ - Is@Equal
26
+ - Is@Eq (as alias of Is@Equal)
27
+ - Is@NeArray (alias of Is@NotEmptyArray)
28
+ - Is@NeObject (alias of Is@NotEmptyObject)
29
+ - Is@NeString (alias of Is@NotEmptyString)
30
+ - Is@Num (alias of Is@Number)
31
+ - Is@NumBelow (alias of Is@NumberBelow)
32
+ - Is@NumBelowOrEqual (alias of Is@NumberBelowOrEqual)
33
+ - Is@NumAbove (alias of Is@NumberAbove)
34
+ - Is@NumAboveOrEqual (alias of Is@NumberAboveOrEqual)
35
+ - Is@NumBetween (alias of Is@NumberBetween)
36
+ - Is@NumLt (alias of Is@NumberBelow)
37
+ - Is@NumLte (alias of Is@NumberBelowOrEqual)
38
+ - Is@NumGt (alias of Is@NumberAbove)
39
+ - Is@NumGte (alias of Is@NumberAboveOrEqual)
40
+ - Is@Int (alias of Is@Integer)
41
+ - Is@IntBelow (alias of Is@IntegerBelow)
42
+ - Is@IntBelowOrEqual (alias of Is@IntegerBelowOrEqual)
43
+ - Is@IntAbove (alias of Is@IntegerAbove)
44
+ - Is@IntAboveOrEqual (alias of Is@IntegerAboveOrEqual)
45
+ - Is@IntBetween (alias of Is@IntegerBetween)
46
+ - Is@IntLt (alias of Is@IntegerBelow)
47
+ - Is@IntLte (alias of Is@IntegerBelowOrEqual)
48
+ - Is@IntGt (alias of Is@IntegerAbove)
49
+ - Is@IntGte (alias of Is@IntegerAboveOrEqual)
50
+
51
+ ### Improved
52
+ - Dep: Upgrade eslint to 8.39.0
53
+ - object/pick: Now internally validates keys as strings and autotrims keys when picking
54
+ - number/round: Performance improvement due to usage of scientific notation not requiring math.pow
55
+ - number/round: Will only accept integers for precision variable from now on
56
+ - hash/guid: Is now 4x faster than previous implementation thanks to usage of bitwise operators and a precalculated hexmap (0-255), able to generate 50.000 guids in ~65ms and also no longer relying on high-performance timers
57
+ - string/humanizeBytes: Now humanizes the real number part and allows passing a custom delimiter for natural numbers (eg: 1024 -> 1,024, 1024 {delim:'.'} -> 1.024)
58
+ - string/humanizeBytes: Now allows passing a custom separator (eg: 10.024 {separator: ','} -> 10,024)
59
+ - string/humanizeBytes: Now allows passing a precision variable (default:2)
60
+ - string/humanizeBytes: Now allows passing a custom units array (eg: humanizeBytes(1024, {units: [' Jedi', ' Darth']}) -> 1 Darth, humanizeBytes(20, {units: [' Jedi', 'Darth']}) -> 20 Jedi)
61
+
8
62
  ## [5.4.0] - 2023-04-08
9
63
  ### Added
10
64
  - String/humanizeBytes
package/README.md CHANGED
@@ -155,6 +155,102 @@ shuffle(arr);
155
155
  // [4, 6, 3, 2, 5, 1]
156
156
  ```
157
157
 
158
+ - **sort(val:Array[object], by:String|Function, dir:Enum(asc,desc), options:Object)**
159
+ Sort an array of objects, uses an implementation of [Tony Hoare's quicksort](https://cs.stanford.edu/people/eroberts/courses/soco/projects/2008-09/tony-hoare/quicksort.html)
160
+
161
+ ```js
162
+ const out = sort([
163
+ {test: 'Peter'},
164
+ {test: 'Jack'},
165
+ {test: 'Pony'},
166
+ {test: 'John'},
167
+ {test: 'Joe'},
168
+ {test: 'Bob'},
169
+ {test: 'Alice'},
170
+ ], 'test', 'desc');
171
+ // [{test: 'Pony'}, {test: 'Peter'}, {test: 'John'}, {test: 'Joe'}, {test: 'Jack'}, {test: 'Bob'}, {test: 'Alice'}]
172
+ ```
173
+
174
+ ```js
175
+ const out = sort([
176
+ {test: 'Peter'},
177
+ {test: 'Jack'},
178
+ {test: 'Pony'},
179
+ {test: 'John'},
180
+ {test: 'Joe'},
181
+ {test: 'Bob'},
182
+ {test: 'Alice'},
183
+ ], 'test', 'asc');
184
+ // [{test: 'Alice'}, {test: 'Bob'}, {test: 'Jack'}, {test: 'Joe'}, {test: 'John'}, {test: 'Peter'}, {test: 'Pony'}]
185
+ ```
186
+
187
+ allows passing a function to determine the key to sort by
188
+
189
+ ```js
190
+ const out = sort([
191
+ {test: 'Peter'},
192
+ {test: 'Jack'},
193
+ {test: 'Pony'},
194
+ {test: 'JOHn'},
195
+ {test: 'Joe'},
196
+ {test: 'Bob'},
197
+ {test: 'Alice'},
198
+ ], el => el.test.toLowerCase(), 'desc');
199
+ // [{test: 'Pony'}, {test: 'Peter'}, {test: 'JOHn'}, {test: 'Joe'}, {test: 'Jack'}, {test: 'Bob'}, {test: 'Alice'}]
200
+ ```
201
+
202
+ auto-cleans input to only contains non-empty objects
203
+
204
+ ```js
205
+ const out = sort([
206
+ {test: 'Peter'},
207
+ {},
208
+ {test: 'Jack'},
209
+ {test: 'Pony'},
210
+ {test: 'JOHn'},
211
+ false,
212
+ {test: 'Joe'},
213
+ {test: 'Bob'},
214
+ undefined,
215
+ {test: 'Alice'},
216
+ ], el => el.test.toLowerCase(), 'desc');
217
+ // [{test: 'Pony'}, {test: 'Peter'}, {test: 'JOHn'}, {test: 'Joe'}, {test: 'Jack'}, {test: 'Bob'}, {test: 'Alice'}]
218
+ ```
219
+
220
+ allows passing custom filter function to clean input
221
+
222
+ ```js
223
+ const out = sort([
224
+ {test: 'Peter'},
225
+ {},
226
+ {test: 'Jack'},
227
+ {test: 'Pony'},
228
+ {test: false},
229
+ {test: 'JOHn'},
230
+ false,
231
+ {test: 'Joe'},
232
+ {test: undefined},
233
+ {test: 'Bob'},
234
+ undefined,
235
+ {test: 'Alice'},
236
+ ], el => el.test.toLowerCase(), 'desc', {filter_fn: el => isObject(el) && isNotEmptyString(el.test)});
237
+ // [{test: 'Pony'}, {test: 'Peter'}, {test: 'JOHn'}, {test: 'Joe'}, {test: 'Jack'}, {test: 'Bob'}, {test: 'Alice'}]
238
+ ```
239
+
240
+ allows passing custom options to position elements without a proper key (nokey_atend, defaults to true), or hide them (nokey_hide, defaults to false)
241
+
242
+ ```js
243
+ const arr = [{test: 'Peter'}, {test: undefined}, {test: 'Jack'}, {test: 'Pony'}, {uid: 100}, {test: 'JOHn'}];
244
+ const out = sort(arr, el => el.test.toLowerCase(), 'desc', {nokey_atend: false});
245
+ // [{test: undefined}, {uid: 100}, {test: 'Pony'}, {test: 'Peter'}, {test: 'JOHn'}, {test: 'Jack'}]
246
+
247
+ const out = sort(arr, el => el.test.toLowerCase(), 'desc', {nokey_atend: true});
248
+ // [{test: 'Pony'}, {test: 'Peter'}, {test: 'JOHn'}, {test: 'Jack'}, {test: undefined}, {uid: 100}]
249
+
250
+ const out = sort(arr, el => el.test.toLowerCase(), 'desc', {nokey_hide: true});
251
+ // [{test: 'Pony'}, {test: 'Peter'}, {test: 'JOHn'}, {test: 'Jack'}]
252
+ ```
253
+
158
254
  ### boolean
159
255
  - **isBoolean(val:any)**
160
256
  Check if a variable is of type Boolean
@@ -331,7 +427,7 @@ isNumber(0.5); // TRUE
331
427
  ```
332
428
 
333
429
  - **isNumberAbove(val:number, comp:number)**
334
- Check if a variable is above a certain bound
430
+ Check if a variable is a number above a certain bound
335
431
  ```js
336
432
  isNumberAbove(5, 0); // TRUE
337
433
  isNumberAbove(.1, 0); // TRUE
@@ -339,8 +435,17 @@ isNumberAbove(-1, -1); // FALSE
339
435
  isNumberAbove(-10, -9); // FALSE
340
436
  ```
341
437
 
438
+ - **isNumberAboveOrEqual(val:number, comp:number)**
439
+ Check if a variable is a number above or equal to a certain bound
440
+ ```js
441
+ isNumberAboveOrEqual(5, 0); // TRUE
442
+ isNumberAboveOrEqual(.1, 0); // TRUE
443
+ isNumberAboveOrEqual(-1, -1); // TRUE
444
+ isNumberAboveOrEqual(-10, -9); // FALSE
445
+ ```
446
+
342
447
  - **isNumberBelow(val:number, comp:number)**
343
- Check if a variable is below a certain bound
448
+ Check if a variable is a number below a certain bound
344
449
  ```js
345
450
  isNumberBelow(0, 5); // TRUE
346
451
  isNumberBelow(0, .1); // TRUE
@@ -348,8 +453,17 @@ isNumberBelow(-1, -1); // FALSE
348
453
  isNumberBelow(-9, -10); // FALSE
349
454
  ```
350
455
 
456
+ - **isNumberBelowOrEqual(val:number, comp:number)**
457
+ Check if a variable is a number below or equal a certain bound
458
+ ```js
459
+ isNumberBelowOrEqual(0, 5); // TRUE
460
+ isNumberBelowOrEqual(0, .1); // TRUE
461
+ isNumberBelowOrEqual(-1, -1); // TRUE
462
+ isNumberBelowOrEqual(-9, -10); // FALSE
463
+ ```
464
+
351
465
  - **isNumberBetween(val:number, min:number, max:number)**
352
- Check if a variable is between a range of numbers
466
+ Check if a variable is a number between a range of numbers
353
467
  ```js
354
468
  isNumberBetween(5, 0, 10); // TRUE
355
469
  isNumberBetween(.1, 0, 1); // TRUE
@@ -375,16 +489,35 @@ isIntegerAbove(-1, -1); // FALSE
375
489
  isIntegerAbove(-10, -9); // FALSE
376
490
  ```
377
491
 
492
+ - **isIntegerAboveOrEqual(val:number, comp:number)**
493
+ Check if a variable is an integer above or equal to a certain bound
494
+ ```js
495
+ isIntegerAboveOrEqual(5, 0); // TRUE
496
+ isIntegerAboveOrEqual(.1, 0); // FALSE
497
+ isIntegerAboveOrEqual(-1, -1); // TRUE
498
+ isIntegerAboveOrEqual(-10, -9); // FALSE
499
+ ```
500
+
378
501
  - **isIntegerBelow(val:number, comp:number)**
379
502
  Check if a variable is an integer below a certain bound
380
503
  ```js
381
504
  isIntegerBelow(0, 5); // TRUE
382
505
  isIntegerBelow(0, .1); // TRUE
383
- isIntegerBelow(.4, 5); // FALsE
506
+ isIntegerBelow(.4, 5); // FALSE
384
507
  isIntegerBelow(-1, -1); // FALSE
385
508
  isIntegerBelow(-9, -10); // FALSE
386
509
  ```
387
510
 
511
+ - **isIntegerBelowOrEqual(val:number, comp:number)**
512
+ Check if a variable is an integer below or equal to a certain bound
513
+ ```js
514
+ isIntegerBelowOrEqual(0, 5); // TRUE
515
+ isIntegerBelowOrEqual(0, .1); // TRUE
516
+ isIntegerBelowOrEqual(.4, 5); // FALSE
517
+ isIntegerBelowOrEqual(-1, -1); // TRUE
518
+ isIntegerBelowOrEqual(-9, -10); // FALSE
519
+ ```
520
+
388
521
  - **isIntegerBetween(val:number, min:number, max:number)**
389
522
  Check if a variable is an integer between a range of numbers
390
523
  ```js
@@ -425,6 +558,13 @@ randomBetween(); // Will generate a random between 0 and 10
425
558
  randomBetween(25, 100); // Will generate a random between 25 and 100
426
559
  ```
427
560
 
561
+ - **randomIntBetween(min:Number=0,max:Number=10)**
562
+ Generate a random numeric value between a min and max range (max not inclusive)
563
+ ```js
564
+ randomIntBetween(); // Will generate a random between 0 and 10 (10 not inclusive)
565
+ randomIntBetween(25, 100); // Will generate a random between 25 and 100 (100 not inclusive)
566
+ ```
567
+
428
568
  ### object
429
569
  - **forValues(obj:Object={}, cb:Function=noopreturn)**
430
570
  Iterate over the keys of the object and apply the callback function to their values
@@ -575,6 +715,10 @@ shorten('To the moon and beyond', 11, ' '); // 'To the moon '
575
715
 
576
716
  - **humanizeBytes(val:number|string)**
577
717
  Humanize an amount of bytes
718
+ -- option:delim (default:','): Override the delimiter used, eg: `20000 -> 20,000`
719
+ -- option:separator (default:'.'): Override the separator used for floats, eg: '20.034' -> '20,034'
720
+ -- option:precision (default:2): Override decimal precision for floats: eg: '20.0344233' with precision 2 -> '20.03'
721
+ -- option:units (default:[' byes', ' KB', ' MB', ' GB', ' TB', ' PB', ' EB', ' ZB', ' YB']): Override units used, eg: `4893290423489 with units [' Jedi', ' Darth', ' Vader', ' Force'] and precision of 0` -> `'4,893 Force'`
578
722
  ```js
579
723
  humanizeBytes(1504230); // '1.4 MB'
580
724
  humanizeBytes(23); // '23 bytes'
@@ -582,6 +726,24 @@ humanizeBytes(-374237489237); // '-348.5 GB'
582
726
  humanizeBytes('-1504230'); // '-1.4 MB'
583
727
  ```
584
728
 
729
+ - **humanizeNumber(val:number|string, options:Object)**
730
+ Humanize a number
731
+ -- option:delim (default:','): Override the delimiter used, eg: `20000 -> 20,000`
732
+ -- option:separator (default:'.'): Override the separator used for floats, eg: '20.034' -> '20,034'
733
+ -- option:precision (default:2): Override decimal precision for floats: eg: '20.0344233' with precision 2 -> '20.03'
734
+ -- option:units (default:['', 'k', 'm', 'b', 't', 'q']): Override units used, eg: `1073741823 with units ['', 'K']` -> `1.073.741,82K`
735
+ -- option:real (default:false): Set to true to automatically round input numbers
736
+ -- option:divider (default:1000): Override default divider used for units (used internally for humanizeBytes with 1024 as divider)
737
+
738
+ ```js
739
+ humanizeNumber(4327963279469432); // '4.33q'
740
+ humanizeNumber(1504230); // '1.5m'
741
+ humanizeNumber(-432443); // '-432.44k'
742
+ humanizeNumber('-1500'); // '-1.5k'
743
+ humanizeNumber(47328748923747923479); // '47,328.75q'
744
+ ```
745
+
746
+ allows passing options to control the output, following options are possible:
747
+
585
748
  ## Contributors
586
749
  - Peter Vermeulen : [Valkyrie Studios](www.valkyriestudios.be)
587
-
package/array/dedupe.js CHANGED
@@ -3,11 +3,11 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: !0
5
5
  });
6
- exports["default"] = _default;
6
+ exports["default"] = dedupe;
7
7
  var _fnv1A = _interopRequireDefault(require("../hash/fnv1A"));
8
8
  var _isNotEmpty = _interopRequireDefault(require("./isNotEmpty"));
9
9
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
10
- function _default() {
10
+ function dedupe() {
11
11
  var val = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
12
12
  if (!(0, _isNotEmpty["default"])(val)) return [];
13
13
  var seen = {};
package/array/is.js CHANGED
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: !0
5
5
  });
6
- exports["default"] = _default;
7
- function _default(val) {
6
+ exports["default"] = isArray;
7
+ function isArray(val) {
8
8
  return Array.isArray(val);
9
9
  }
@@ -3,10 +3,10 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: !0
5
5
  });
6
- exports["default"] = _default;
6
+ exports["default"] = isNotEmptyArray;
7
7
  var _is = _interopRequireDefault(require("./is"));
8
8
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
9
- function _default(val) {
9
+ function isNotEmptyArray(val) {
10
10
  if (!(0, _is["default"])(val)) return !1;
11
11
  return val.length !== 0;
12
12
  }
package/array/join.js CHANGED
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: !0
5
5
  });
6
- exports["default"] = _default;
6
+ exports["default"] = join;
7
7
  var _isNotEmpty = _interopRequireDefault(require("./isNotEmpty"));
8
8
  var _isNotEmpty2 = _interopRequireDefault(require("../string/isNotEmpty"));
9
9
  var _is = _interopRequireDefault(require("../number/is"));
@@ -13,7 +13,7 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "d
13
13
  function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: !0 }; return { done: !1, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = !0, didErr = !1, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = !0; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
14
14
  function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
15
15
  function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
16
- function _default(arr) {
16
+ function join(arr) {
17
17
  var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
18
18
  if (!(0, _isNotEmpty["default"])(arr)) return '';
19
19
  var OPTS = Object.assign({
package/array/mapFn.js CHANGED
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: !0
5
5
  });
6
- exports["default"] = _default;
6
+ exports["default"] = mapFn;
7
7
  var _is = _interopRequireDefault(require("../object/is"));
8
8
  var _isNotEmpty = _interopRequireDefault(require("./isNotEmpty"));
9
9
  var _is2 = _interopRequireDefault(require("../function/is"));
@@ -13,7 +13,7 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "d
13
13
  function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: !0 }; return { done: !1, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = !0, didErr = !1, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = !0; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
14
14
  function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
15
15
  function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
16
- function _default(arr, fn) {
16
+ function mapFn(arr, fn) {
17
17
  var opts = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
18
18
  if (!(0, _isNotEmpty["default"])(arr) || !(0, _is2["default"])(fn)) return {};
19
19
  var OPTS = Object.assign({
package/array/mapKey.js CHANGED
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: !0
5
5
  });
6
- exports["default"] = _default;
6
+ exports["default"] = mapKey;
7
7
  var _is = _interopRequireDefault(require("../object/is"));
8
8
  var _isNotEmpty = _interopRequireDefault(require("./isNotEmpty"));
9
9
  var _isNotEmpty2 = _interopRequireDefault(require("../string/isNotEmpty"));
@@ -11,7 +11,7 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "d
11
11
  function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: !0 }; return { done: !1, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = !0, didErr = !1, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = !0; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
12
12
  function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
13
13
  function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
14
- function _default(arr, key) {
14
+ function mapKey(arr, key) {
15
15
  var opts = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
16
16
  if (!(0, _isNotEmpty["default"])(arr) || !(0, _isNotEmpty2["default"])(key)) return {};
17
17
  var OPTS = Object.assign({
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: !0
5
5
  });
6
- exports["default"] = _default;
6
+ exports["default"] = mapPrimitive;
7
7
  var _is = _interopRequireDefault(require("../number/is"));
8
8
  var _isNotEmpty = _interopRequireDefault(require("../string/isNotEmpty"));
9
9
  var _isNotEmpty2 = _interopRequireDefault(require("./isNotEmpty"));
@@ -12,7 +12,7 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "d
12
12
  function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: !0 }; return { done: !1, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = !0, didErr = !1, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = !0; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
13
13
  function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
14
14
  function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
15
- function _default(arr) {
15
+ function mapPrimitive(arr) {
16
16
  var opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
17
17
  if (!(0, _isNotEmpty2["default"])(arr)) return {};
18
18
  var OPTS = Object.assign({
package/array/sort.js ADDED
@@ -0,0 +1,123 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: !0
5
+ });
6
+ exports["default"] = sort;
7
+ var _is = _interopRequireDefault(require("../boolean/is"));
8
+ var _isNotEmpty = _interopRequireDefault(require("./isNotEmpty"));
9
+ var _is2 = _interopRequireDefault(require("../object/is"));
10
+ var _isNotEmpty2 = _interopRequireDefault(require("../object/isNotEmpty"));
11
+ var _isNotEmpty3 = _interopRequireDefault(require("../string/isNotEmpty"));
12
+ var _is3 = _interopRequireDefault(require("../function/is"));
13
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
14
+ function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
15
+ function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
16
+ function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
17
+ function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
18
+ function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: !0 }; return { done: !1, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = !0, didErr = !1, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = !0; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
19
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
20
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
21
+ function partition(arr, start_ix, end_ix) {
22
+ var pivotVal = arr[Math.floor((start_ix + end_ix) / 2)].t;
23
+ while (start_ix <= end_ix) {
24
+ while (arr[start_ix].t < pivotVal) {
25
+ start_ix++;
26
+ }
27
+ while (arr[end_ix].t > pivotVal) {
28
+ end_ix--;
29
+ }
30
+ if (start_ix <= end_ix) {
31
+ var temp = arr[start_ix];
32
+ arr[start_ix] = arr[end_ix];
33
+ arr[end_ix] = temp;
34
+ start_ix++;
35
+ end_ix--;
36
+ }
37
+ }
38
+ return start_ix;
39
+ }
40
+ function quickSort(arr) {
41
+ var start_ix = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
42
+ var end_ix = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : arr.length - 1;
43
+ if (start_ix < end_ix) {
44
+ var ix = partition(arr, start_ix, end_ix);
45
+ quickSort(arr, start_ix, ix - 1);
46
+ quickSort(arr, ix, end_ix);
47
+ }
48
+ return arr;
49
+ }
50
+ function sort(arr, by) {
51
+ var dir = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'asc';
52
+ var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};
53
+ if (!(0, _isNotEmpty["default"])(arr)) return [];
54
+ if (!(0, _isNotEmpty3["default"])(by) && !(0, _is3["default"])(by)) throw new Error('Sort by should be either a string or a function');
55
+ if (dir !== 'asc' && dir !== 'desc') throw new Error('dir should be either asc or desc');
56
+ var OPTS = {
57
+ filter_fn: (0, _is2["default"])(options) && (0, _is3["default"])(options.filter_fn) ? options.filter_fn : _isNotEmpty2["default"],
58
+ nokey_hide: (0, _is2["default"])(options) && (0, _is["default"])(options.nokey_hide) ? options.nokey_hide : !1,
59
+ nokey_atend: (0, _is2["default"])(options) && (0, _is["default"])(options.nokey_atend) ? options.nokey_atend : !0
60
+ };
61
+ var prepared_arr = [];
62
+ var nokey_arr = [];
63
+ if ((0, _isNotEmpty3["default"])(by)) {
64
+ var _iterator = _createForOfIteratorHelper(arr),
65
+ _step;
66
+ try {
67
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
68
+ var el = _step.value;
69
+ if (!OPTS.filter_fn(el)) continue;
70
+ if (!el.hasOwnProperty(by) || el[by] === undefined) {
71
+ nokey_arr.push(el);
72
+ } else {
73
+ prepared_arr.push({
74
+ t: el[by],
75
+ el: el
76
+ });
77
+ }
78
+ }
79
+ } catch (err) {
80
+ _iterator.e(err);
81
+ } finally {
82
+ _iterator.f();
83
+ }
84
+ } else {
85
+ var key;
86
+ var _iterator2 = _createForOfIteratorHelper(arr),
87
+ _step2;
88
+ try {
89
+ for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
90
+ var _el = _step2.value;
91
+ if (!OPTS.filter_fn(_el)) continue;
92
+ key = by(_el);
93
+ if (key === undefined) {
94
+ nokey_arr.push(_el);
95
+ } else {
96
+ prepared_arr.push({
97
+ t: by(_el),
98
+ el: _el
99
+ });
100
+ }
101
+ }
102
+ } catch (err) {
103
+ _iterator2.e(err);
104
+ } finally {
105
+ _iterator2.f();
106
+ }
107
+ }
108
+ quickSort(prepared_arr);
109
+ if (dir === 'desc') prepared_arr.reverse();
110
+ if (OPTS.nokey_hide) {
111
+ return prepared_arr.map(function (obj) {
112
+ return obj.el;
113
+ });
114
+ } else if (OPTS.nokey_atend) {
115
+ return [].concat(_toConsumableArray(prepared_arr.map(function (obj) {
116
+ return obj.el;
117
+ })), nokey_arr);
118
+ } else {
119
+ return [].concat(nokey_arr, _toConsumableArray(prepared_arr.map(function (obj) {
120
+ return obj.el;
121
+ })));
122
+ }
123
+ }
package/boolean/is.js CHANGED
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: !0
5
5
  });
6
- exports["default"] = _default;
7
- function _default(val) {
6
+ exports["default"] = isBoolean;
7
+ function isBoolean(val) {
8
8
  return val === !0 || val === !1 || typeof val === 'boolean' || val instanceof Boolean;
9
9
  }
@@ -3,10 +3,10 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: !0
5
5
  });
6
- exports["default"] = _default;
6
+ exports["default"] = memoize;
7
7
  var _is = _interopRequireDefault(require("../function/is"));
8
8
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
9
- function _default(fn) {
9
+ function memoize(fn) {
10
10
  var resolver = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : !1;
11
11
  var has_resolver = (0, _is["default"])(resolver);
12
12
  var memoized = function memoized() {
package/date/is.js CHANGED
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: !0
5
5
  });
6
- exports["default"] = _default;
7
- function _default(val) {
6
+ exports["default"] = isDate;
7
+ function isDate(val) {
8
8
  return Object.prototype.toString.call(val) === '[object Date]';
9
9
  }
package/deep/define.js CHANGED
@@ -3,10 +3,10 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: !0
5
5
  });
6
- exports["default"] = _default;
6
+ exports["default"] = deepDefine;
7
7
  var _set = _interopRequireDefault(require("./set"));
8
8
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
9
- function _default(obj, path) {
9
+ function deepDefine(obj, path) {
10
10
  var value = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
11
11
  return (0, _set["default"])(obj, path, value, !0);
12
12
  }
package/deep/freeze.js CHANGED
@@ -3,22 +3,20 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: !0
5
5
  });
6
- exports["default"] = _default;
6
+ exports["default"] = deepFreeze;
7
7
  var _is = _interopRequireDefault(require("../object/is"));
8
8
  var _is2 = _interopRequireDefault(require("../array/is"));
9
9
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
10
10
  function deep(obj) {
11
11
  var next = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : Object.seal;
12
12
  (Object.keys(obj) || []).forEach(function (key) {
13
- if ((0, _is["default"])(obj[key] || !1) || (0, _is2["default"])(obj[key] || !1)) {
13
+ if ((0, _is["default"])(obj[key]) || (0, _is2["default"])(obj[key])) {
14
14
  deep(obj[key], next);
15
15
  }
16
16
  });
17
17
  return next(obj);
18
18
  }
19
- function _default(obj) {
20
- if (!(0, _is["default"])(obj) && !(0, _is2["default"])(obj)) {
21
- throw new TypeError('Only objects can be frozen');
22
- }
19
+ function deepFreeze(obj) {
20
+ if (!(0, _is["default"])(obj) && !(0, _is2["default"])(obj)) throw new TypeError('Only objects can be frozen');
23
21
  return deep(obj, Object.freeze);
24
22
  }
package/deep/get.js CHANGED
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: !0
5
5
  });
6
- exports["default"] = _default;
6
+ exports["default"] = deepGet;
7
7
  var _is = _interopRequireDefault(require("../object/is"));
8
8
  var _is2 = _interopRequireDefault(require("../array/is"));
9
9
  var _isNotEmpty = _interopRequireDefault(require("../string/isNotEmpty"));
@@ -19,7 +19,7 @@ function interpolatePath(path) {
19
19
  if ((0, _is2["default"])(path)) return _toConsumableArray(path);
20
20
  return path.replace('[', '.').replace(']', '').split('.');
21
21
  }
22
- function _default(obj, path) {
22
+ function deepGet(obj, path) {
23
23
  var get_parent = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : !1;
24
24
  if (!(0, _is["default"])(obj) && !(0, _is2["default"])(obj)) throw new TypeError('Deepget is only supported for objects');
25
25
  var parts = interpolatePath(path);