@valkyriestudios/utils 7.4.0 → 8.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 (124) hide show
  1. package/CHANGELOG.md +70 -0
  2. package/README.md +9 -56
  3. package/array/dedupe.js +25 -12
  4. package/array/isNotEmpty.js +1 -4
  5. package/array/join.js +8 -10
  6. package/array/mapFn.js +7 -9
  7. package/array/mapKey.js +5 -6
  8. package/array/mapPrimitive.js +5 -7
  9. package/array/shuffle.js +1 -4
  10. package/array/sort.js +16 -16
  11. package/caching/memoize.js +1 -1
  12. package/date/addUTC.js +10 -6
  13. package/date/diff.js +3 -4
  14. package/date/endOfUTC.js +23 -16
  15. package/date/is.js +1 -1
  16. package/date/startOfUTC.js +23 -16
  17. package/date/toUTC.js +1 -3
  18. package/date/toUnix.js +1 -3
  19. package/deep/define.js +1 -1
  20. package/deep/freeze.js +8 -12
  21. package/deep/get.js +16 -18
  22. package/deep/seal.js +8 -12
  23. package/deep/set.js +6 -21
  24. package/equal.js +8 -19
  25. package/hash/fnv1A.js +35 -27
  26. package/is.js +33 -37
  27. package/number/is.js +1 -4
  28. package/number/isAbove.js +1 -5
  29. package/number/isAboveOrEqual.js +1 -5
  30. package/number/isBelow.js +1 -5
  31. package/number/isBelowOrEqual.js +1 -5
  32. package/number/isBetween.js +1 -4
  33. package/number/isInteger.js +0 -3
  34. package/number/isIntegerAbove.js +1 -6
  35. package/number/isIntegerAboveOrEqual.js +1 -6
  36. package/number/isIntegerBelow.js +1 -6
  37. package/number/isIntegerBelowOrEqual.js +1 -6
  38. package/number/isIntegerBetween.js +1 -5
  39. package/number/isNumericalNaN.js +2 -1
  40. package/number/randomBetween.js +1 -4
  41. package/number/randomIntBetween.js +1 -4
  42. package/number/round.js +2 -6
  43. package/number/toPercentage.js +2 -3
  44. package/object/define.js +3 -5
  45. package/object/is.js +3 -1
  46. package/object/isNotEmpty.js +2 -4
  47. package/object/merge.js +8 -12
  48. package/object/pick.js +16 -12
  49. package/package.json +15 -18
  50. package/regexp/is.js +3 -1
  51. package/regexp/sanitize.js +2 -2
  52. package/src/array/dedupe.js +24 -0
  53. package/src/array/is.js +5 -0
  54. package/src/array/isNotEmpty.js +5 -0
  55. package/src/array/join.js +31 -0
  56. package/src/array/mapFn.js +34 -0
  57. package/src/array/mapKey.js +29 -0
  58. package/src/array/mapPrimitive.js +29 -0
  59. package/src/array/shuffle.js +14 -0
  60. package/src/array/sort.js +100 -0
  61. package/src/boolean/is.js +5 -0
  62. package/src/caching/memoize.js +24 -0
  63. package/src/date/addUTC.js +67 -0
  64. package/src/date/diff.js +46 -0
  65. package/src/date/endOfUTC.js +130 -0
  66. package/src/date/is.js +5 -0
  67. package/src/date/nowUnix.js +5 -0
  68. package/src/date/nowUnixMs.js +5 -0
  69. package/src/date/startOfUTC.js +129 -0
  70. package/src/date/toUTC.js +17 -0
  71. package/src/date/toUnix.js +9 -0
  72. package/src/deep/define.js +7 -0
  73. package/src/deep/freeze.js +22 -0
  74. package/src/deep/get.js +47 -0
  75. package/src/deep/seal.js +22 -0
  76. package/src/deep/set.js +41 -0
  77. package/src/equal.js +67 -0
  78. package/src/function/is.js +6 -0
  79. package/src/function/noop.js +5 -0
  80. package/src/function/noopresolve.js +6 -0
  81. package/src/function/noopreturn.js +6 -0
  82. package/src/function/sleep.js +12 -0
  83. package/src/hash/fnv1A.js +58 -0
  84. package/src/hash/guid.js +38 -0
  85. package/src/is.js +86 -0
  86. package/src/number/is.js +5 -0
  87. package/src/number/isAbove.js +6 -0
  88. package/src/number/isAboveOrEqual.js +6 -0
  89. package/src/number/isBelow.js +6 -0
  90. package/src/number/isBelowOrEqual.js +6 -0
  91. package/src/number/isBetween.js +13 -0
  92. package/src/number/isInteger.js +5 -0
  93. package/src/number/isIntegerAbove.js +6 -0
  94. package/src/number/isIntegerAboveOrEqual.js +6 -0
  95. package/src/number/isIntegerBelow.js +6 -0
  96. package/src/number/isIntegerBelowOrEqual.js +6 -0
  97. package/src/number/isIntegerBetween.js +13 -0
  98. package/src/number/isNumericalNaN.js +5 -0
  99. package/src/number/randomBetween.js +11 -0
  100. package/src/number/randomIntBetween.js +11 -0
  101. package/src/number/round.js +10 -0
  102. package/src/number/toPercentage.js +14 -0
  103. package/src/object/define.js +12 -0
  104. package/src/object/is.js +7 -0
  105. package/src/object/isNotEmpty.js +7 -0
  106. package/src/object/merge.js +27 -0
  107. package/src/object/pick.js +33 -0
  108. package/src/regexp/is.js +7 -0
  109. package/src/regexp/sanitize.js +12 -0
  110. package/src/string/humanizeBytes.js +29 -0
  111. package/src/string/humanizeNumber.js +84 -0
  112. package/src/string/is.js +5 -0
  113. package/src/string/isBetween.js +18 -0
  114. package/src/string/isNotEmpty.js +6 -0
  115. package/src/string/shorten.js +21 -0
  116. package/string/humanizeBytes.js +9 -10
  117. package/string/humanizeNumber.js +21 -22
  118. package/string/isBetween.js +2 -3
  119. package/string/isNotEmpty.js +2 -4
  120. package/string/shorten.js +3 -4
  121. package/object/defineFrozen.js +0 -13
  122. package/object/defineSealed.js +0 -13
  123. package/object/forValues.js +0 -18
  124. package/object/zip.js +0 -19
@@ -4,20 +4,19 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: !0
5
5
  });
6
6
  exports["default"] = humanizeBytes;
7
- var _isNotEmpty = _interopRequireDefault(require("../array/isNotEmpty"));
8
- var _isIntegerAboveOrEqual = _interopRequireDefault(require("../number/isIntegerAboveOrEqual"));
9
- var _is = _interopRequireDefault(require("../object/is"));
10
- var _is2 = _interopRequireDefault(require("../string/is"));
11
- var _isNotEmpty2 = _interopRequireDefault(require("../string/isNotEmpty"));
12
- var _humanizeNumber = _interopRequireDefault(require("./humanizeNumber"));
7
+ var _is = _interopRequireDefault(require("../string/is.js"));
8
+ var _isNotEmpty = _interopRequireDefault(require("../string/isNotEmpty.js"));
9
+ var _is2 = require("../object/is.js");
10
+ var _humanizeNumber = _interopRequireDefault(require("./humanizeNumber.js"));
13
11
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
14
12
  function humanizeBytes(val) {
15
13
  var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
14
+ var has_opts = Object.prototype.toString.call(options) === _is2.PROTO_OBJ;
16
15
  return (0, _humanizeNumber["default"])(val, {
17
- delim: (0, _is["default"])(options) && (0, _is2["default"])(options.delim) ? options.delim : ',',
18
- separator: (0, _is["default"])(options) && (0, _isNotEmpty2["default"])(options.separator) ? options.separator : '.',
19
- precision: (0, _is["default"])(options) && (0, _isIntegerAboveOrEqual["default"])(options.precision, 0) ? options.precision : 2,
20
- units: (0, _is["default"])(options) && (0, _isNotEmpty["default"])(options.units) ? options.units.filter(_isNotEmpty2["default"]) : [' bytes', ' KB', ' MB', ' GB', ' TB', ' PB', ' EB', ' ZB', ' YB'],
16
+ delim: has_opts && (0, _is["default"])(options.delim) ? options.delim : ',',
17
+ separator: has_opts && (0, _isNotEmpty["default"])(options.separator) ? options.separator : '.',
18
+ precision: has_opts && Number.isInteger(options.precision) && options.precision >= 0 ? options.precision : 2,
19
+ units: has_opts && Array.isArray(options.units) && options.units.length > 0 ? options.units.filter(_isNotEmpty["default"]) : [' bytes', ' KB', ' MB', ' GB', ' TB', ' PB', ' EB', ' ZB', ' YB'],
21
20
  divider: 1024,
22
21
  real: !0
23
22
  });
@@ -4,35 +4,33 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: !0
5
5
  });
6
6
  exports["default"] = humanizeNumber;
7
- var _isNotEmpty = _interopRequireDefault(require("../array/isNotEmpty"));
8
- var _is = _interopRequireDefault(require("../boolean/is"));
9
- var _isIntegerAboveOrEqual = _interopRequireDefault(require("../number/isIntegerAboveOrEqual"));
10
- var _is2 = _interopRequireDefault(require("../number/is"));
11
- var _is3 = _interopRequireDefault(require("../object/is"));
12
- var _is4 = _interopRequireDefault(require("../string/is"));
13
- var _isNotEmpty2 = _interopRequireDefault(require("../string/isNotEmpty"));
14
- var _round = _interopRequireDefault(require("../number/round"));
7
+ var _is = _interopRequireDefault(require("../boolean/is.js"));
8
+ var _is2 = _interopRequireDefault(require("../string/is.js"));
9
+ var _isNotEmpty = _interopRequireDefault(require("../string/isNotEmpty.js"));
10
+ var _round = _interopRequireDefault(require("../number/round.js"));
11
+ var _is3 = require("../object/is.js");
15
12
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
16
13
  function humanizeNumber(val) {
17
14
  var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
15
+ var has_opts = Object.prototype.toString.call(options) === _is3.PROTO_OBJ;
18
16
  var OPTS = {
19
- delim: (0, _is3["default"])(options) && (0, _is4["default"])(options.delim) ? options.delim : ',',
20
- separator: (0, _is3["default"])(options) && (0, _isNotEmpty2["default"])(options.separator) ? options.separator : '.',
21
- precision: (0, _is3["default"])(options) && (0, _isIntegerAboveOrEqual["default"])(options.precision, 0) ? options.precision : 2,
22
- units: (0, _is3["default"])(options) && ((0, _isNotEmpty["default"])(options.units) || options.units === !1) ? options.units ? options.units.filter(_is4["default"]) : !1 : ['', 'k', 'm', 'b', 't', 'q'],
23
- divider: (0, _is3["default"])(options) && (0, _isIntegerAboveOrEqual["default"])(options.divider, 2) ? options.divider : 1000,
24
- real: (0, _is3["default"])(options) && (0, _is["default"])(options.real) ? options.real : !1
17
+ delim: has_opts && (0, _is2["default"])(options.delim) ? options.delim : ',',
18
+ separator: has_opts && (0, _isNotEmpty["default"])(options.separator) ? options.separator : '.',
19
+ precision: has_opts && Number.isInteger(options.precision) && options.precision >= 0 ? options.precision : 2,
20
+ units: has_opts && (Array.isArray(options.units) && options.units.length > 0 || options.units === !1) ? options.units ? options.units.filter(_is2["default"]) : !1 : ['', 'k', 'm', 'b', 't', 'q'],
21
+ divider: has_opts && Number.isInteger(options.divider) && options.divider > 1 ? options.divider : 1000,
22
+ real: has_opts && (0, _is["default"])(options.real) ? options.real : !1
25
23
  };
26
- if (!((0, _is2["default"])(val) || (0, _isNotEmpty2["default"])(val))) {
24
+ if (!(Number.isFinite(val) || (0, _isNotEmpty["default"])(val))) {
27
25
  return "0".concat(OPTS.units.length > 0 ? OPTS.units[0] : '');
28
26
  }
29
27
  var normalized;
30
28
  if (OPTS.real) {
31
- normalized = parseInt((0, _is4["default"])(val) ? val.trim() : val) || 0;
29
+ normalized = parseInt((0, _is2["default"])(val) ? val.trim() : val) || 0;
32
30
  } else {
33
- normalized = parseFloat((0, _is4["default"])(val) ? val.trim() : val) || 0;
31
+ normalized = parseFloat((0, _is2["default"])(val) ? val.trim() : val) || 0;
34
32
  }
35
- if (!(0, _is2["default"])(normalized) || normalized === 0) {
33
+ if (!Number.isFinite(normalized) || normalized === 0) {
36
34
  return "0".concat(OPTS.units.length > 0 ? OPTS.units[0] : '');
37
35
  }
38
36
  var sign = normalized < 0 ? '-' : '';
@@ -48,10 +46,11 @@ function humanizeNumber(val) {
48
46
  postfix = OPTS.units[unit_ix];
49
47
  }
50
48
  normalized = (0, _round["default"])(normalized, OPTS.precision);
51
- normalized = normalized.toLocaleString('en-US', {
52
- maximumFractionDigits: OPTS.precision
53
- }).split('.');
54
- normalized[0] = "".concat(normalized[0]).replace(/,/g, OPTS.delim);
49
+ normalized = "".concat(normalized).split('.');
50
+ normalized[0] = normalized[0].split('').reverse().map(function (_char, ix, original) {
51
+ if (ix > 0 && ix < original.length && ix % 3 === 0) return _char + OPTS.delim;
52
+ return _char;
53
+ }).reverse().join('');
55
54
  normalized = normalized.join(OPTS.separator);
56
55
  return "".concat(sign).concat(normalized).concat(postfix);
57
56
  }
@@ -4,12 +4,11 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: !0
5
5
  });
6
6
  exports["default"] = isStringBetween;
7
- var _is = _interopRequireDefault(require("./is"));
8
- var _is2 = _interopRequireDefault(require("../number/is"));
7
+ var _is = _interopRequireDefault(require("./is.js"));
9
8
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
10
9
  function isStringBetween(val, min, max) {
11
10
  var trimmed = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : !0;
12
- if (!(0, _is["default"])(val) || !(0, _is2["default"])(min) || !(0, _is2["default"])(max) || min >= max) return !1;
11
+ if (!(0, _is["default"])(val) || !Number.isFinite(min) || min < 0 || !Number.isFinite(max) || max < 0 || min >= max) return !1;
13
12
  var length = (trimmed === !0 ? val.trim() : val).length;
14
13
  return length >= min && length <= max;
15
14
  }
@@ -4,10 +4,8 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: !0
5
5
  });
6
6
  exports["default"] = isNotEmptyString;
7
- var _is = _interopRequireDefault(require("./is"));
8
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
9
7
  function isNotEmptyString(val) {
10
8
  var trimmed = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : !0;
11
- if (!(0, _is["default"])(val)) return !1;
12
- return (trimmed ? val.trim() : val).length !== 0;
9
+ if (typeof val !== 'string' && !(val instanceof String)) return !1;
10
+ return (trimmed === !0 ? val.trim() : val).length > 0;
13
11
  }
package/string/shorten.js CHANGED
@@ -4,13 +4,12 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: !0
5
5
  });
6
6
  exports["default"] = shorten;
7
- var _is = _interopRequireDefault(require("./is"));
8
- var _isNotEmpty = _interopRequireDefault(require("./isNotEmpty"));
9
- var _isAbove = _interopRequireDefault(require("../number/isAbove"));
7
+ var _is = _interopRequireDefault(require("./is.js"));
8
+ var _isAbove = _interopRequireDefault(require("../number/isAbove.js"));
10
9
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
11
10
  function shorten(val, length) {
12
11
  var postfix = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '...';
13
- if (!(0, _isNotEmpty["default"])(val) || !(0, _is["default"])(postfix) || !(0, _isAbove["default"])(length, 0)) return !1;
12
+ if (!(0, _is["default"])(val) || !(0, _is["default"])(postfix) || !(0, _isAbove["default"])(length, 0)) return !1;
14
13
  if (val.trim().length <= length) return val.trim();
15
14
  return "".concat(val.trim().substr(0, length)).concat(postfix);
16
15
  }
@@ -1,13 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: !0
5
- });
6
- exports["default"] = defineFrozen;
7
- var _define = _interopRequireDefault(require("./define"));
8
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
9
- function defineFrozen() {
10
- var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
11
- var obj = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
12
- return Object.freeze((0, _define["default"])(props, obj));
13
- }
@@ -1,13 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: !0
5
- });
6
- exports["default"] = defineSealed;
7
- var _define = _interopRequireDefault(require("./define"));
8
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
9
- function defineSealed() {
10
- var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
11
- var obj = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
12
- return Object.seal((0, _define["default"])(props, obj));
13
- }
@@ -1,18 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: !0
5
- });
6
- exports["default"] = forValues;
7
- var _noopreturn = _interopRequireDefault(require("../function/noopreturn"));
8
- var _is = _interopRequireDefault(require("./is"));
9
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
10
- function forValues() {
11
- var obj = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
12
- var next = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _noopreturn["default"];
13
- if (!(0, _is["default"])(obj)) throw new TypeError('Please pass an object to forValues');
14
- Object.keys(obj).forEach(function (key, index) {
15
- obj[key] = next(key, obj[key], index);
16
- });
17
- return obj;
18
- }
package/object/zip.js DELETED
@@ -1,19 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: !0
5
- });
6
- exports["default"] = zip;
7
- var _is = _interopRequireDefault(require("../array/is"));
8
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
9
- function zip() {
10
- var keys = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
11
- var values = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
12
- var default_to = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
13
- if (!(0, _is["default"])(keys)) throw new TypeError('Please pass an array as value for keys');
14
- if (!(0, _is["default"])(values) && values !== !1) throw new TypeError('Please pass an array or false as value for values');
15
- return keys.reduce(function (acc, key, index) {
16
- acc[key] = values ? values[index] || default_to : default_to;
17
- return acc;
18
- }, {});
19
- }