@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
package/date/is.js CHANGED
@@ -5,5 +5,5 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports["default"] = isDate;
7
7
  function isDate(val) {
8
- return Object.prototype.toString.call(val) === '[object Date]';
8
+ return val instanceof Date;
9
9
  }
@@ -4,35 +4,42 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: !0
5
5
  });
6
6
  exports["default"] = startOfUTC;
7
- var _is = _interopRequireDefault(require("./is"));
8
- var _isNotEmpty = _interopRequireDefault(require("../string/isNotEmpty"));
7
+ var _isNotEmpty = _interopRequireDefault(require("../string/isNotEmpty.js"));
9
8
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
9
+ var WEEK_START = {
10
+ week: 1,
11
+ week_sun: 0,
12
+ week_mon: 1,
13
+ week_tue: 2,
14
+ week_wed: 3,
15
+ week_thu: 4,
16
+ week_fri: 5,
17
+ week_sat: 6
18
+ };
10
19
  function startOfUTC(val, key) {
11
- if (!(0, _is["default"])(val)) throw new Error('Date To UTC requires a date object');
12
- if (!(0, _isNotEmpty["default"])(key)) throw new Error('Key needs to be a string with content');
20
+ if (!(val instanceof Date)) throw new TypeError('startOfUTC requires a date object');
21
+ if (!(0, _isNotEmpty["default"])(key)) throw new TypeError('Key needs to be a string with content');
13
22
  switch (key) {
14
23
  case 'year':
15
24
  return new Date(Date.UTC(val.getUTCFullYear(), 0, 1, 0, 0, 0, 0));
16
25
  case 'quarter':
17
26
  {
18
- var new_quarter = val.getUTCMonth() - val.getUTCMonth() % 3;
19
- return new Date(Date.UTC(val.getUTCFullYear(), new_quarter >= 0 ? new_quarter : 0, 1, 0, 0, 0, 0));
27
+ return new Date(Date.UTC(val.getUTCFullYear(), val.getUTCMonth() - val.getUTCMonth() % 3, 1, 0, 0, 0, 0));
20
28
  }
21
29
  case 'month':
22
30
  return new Date(Date.UTC(val.getUTCFullYear(), val.getUTCMonth(), 1, 0, 0, 0, 0));
23
31
  case 'week':
24
- {
25
- var date = new Date(Date.UTC(val.getUTCFullYear(), val.getUTCMonth(), val.getUTCDate(), 0, 0, 0, 0));
26
- var subtract = date.getUTCDay() || 7;
27
- if (subtract !== 1) date.setUTCDate(date.getUTCDate() - subtract + 1);
28
- return date;
29
- }
30
32
  case 'week_sun':
33
+ case 'week_mon':
34
+ case 'week_tue':
35
+ case 'week_wed':
36
+ case 'week_thu':
37
+ case 'week_fri':
38
+ case 'week_sat':
31
39
  {
32
- var _date = new Date(Date.UTC(val.getUTCFullYear(), val.getUTCMonth(), val.getUTCDate(), 0, 0, 0, 0));
33
- var _subtract = _date.getUTCDay();
34
- if (_subtract !== 0) _date.setUTCDate(_date.getUTCDate() - _subtract);
35
- return _date;
40
+ var UTC_DAY = val.getUTCDay();
41
+ var UTC_SOD = WEEK_START[key];
42
+ return new Date(Date.UTC(val.getUTCFullYear(), val.getUTCMonth(), val.getUTCDate() - (UTC_DAY < UTC_SOD ? 7 - UTC_SOD + UTC_DAY : UTC_DAY - UTC_SOD), 0, 0, 0, 0));
36
43
  }
37
44
  case 'day':
38
45
  return new Date(Date.UTC(val.getUTCFullYear(), val.getUTCMonth(), val.getUTCDate(), 0, 0, 0, 0));
package/date/toUTC.js CHANGED
@@ -4,9 +4,7 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: !0
5
5
  });
6
6
  exports["default"] = toUTC;
7
- var _is = _interopRequireDefault(require("./is"));
8
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
9
7
  function toUTC(val) {
10
- if (!(0, _is["default"])(val)) throw new Error('Date To UTC requires a date object');
8
+ if (!(val instanceof Date)) throw new TypeError('toUTC requires a date object');
11
9
  return new Date(Date.UTC(val.getUTCFullYear(), val.getUTCMonth(), val.getUTCDate(), val.getUTCHours(), val.getUTCMinutes(), val.getUTCSeconds(), val.getUTCMilliseconds()));
12
10
  }
package/date/toUnix.js CHANGED
@@ -4,9 +4,7 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: !0
5
5
  });
6
6
  exports["default"] = toUnix;
7
- var _is = _interopRequireDefault(require("./is"));
8
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
9
7
  function toUnix(val) {
10
- if (!(0, _is["default"])(val)) throw new Error('toUnix requires a date object');
8
+ if (!(val instanceof Date)) throw new TypeError('toUnix requires a date object');
11
9
  return Math.floor(val.valueOf() / 1000);
12
10
  }
package/deep/define.js CHANGED
@@ -4,7 +4,7 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: !0
5
5
  });
6
6
  exports["default"] = deepDefine;
7
- var _set = _interopRequireDefault(require("./set"));
7
+ var _set = _interopRequireDefault(require("./set.js"));
8
8
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
9
9
  function deepDefine(obj, path) {
10
10
  var value = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
package/deep/freeze.js CHANGED
@@ -4,19 +4,15 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: !0
5
5
  });
6
6
  exports["default"] = deepFreeze;
7
- var _is = _interopRequireDefault(require("../object/is"));
8
- var _is2 = _interopRequireDefault(require("../array/is"));
9
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
7
+ var _is = require("../object/is.js");
10
8
  function deep(obj) {
11
- var next = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : Object.seal;
12
- (Object.keys(obj) || []).forEach(function (key) {
13
- if ((0, _is["default"])(obj[key]) || (0, _is2["default"])(obj[key])) {
14
- deep(obj[key], next);
15
- }
16
- });
17
- return next(obj);
9
+ for (var _i = 0, _Object$keys = Object.keys(obj); _i < _Object$keys.length; _i++) {
10
+ var key = _Object$keys[_i];
11
+ if (Object.prototype.toString.call(obj[key]) === _is.PROTO_OBJ || Array.isArray(obj[key])) deep(obj[key]);
12
+ }
13
+ return Object.freeze(obj);
18
14
  }
19
15
  function deepFreeze(obj) {
20
- if (!(0, _is["default"])(obj) && !(0, _is2["default"])(obj)) throw new TypeError('Only objects can be frozen');
21
- return deep(obj, Object.freeze);
16
+ if (Object.prototype.toString.call(obj) !== _is.PROTO_OBJ && !Array.isArray(obj)) throw new TypeError('Only objects/arrays can be frozen');
17
+ return deep(obj);
22
18
  }
package/deep/get.js CHANGED
@@ -4,30 +4,28 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: !0
5
5
  });
6
6
  exports["default"] = deepGet;
7
- var _is = _interopRequireDefault(require("../object/is"));
8
- var _is2 = _interopRequireDefault(require("../array/is"));
9
- var _isNotEmpty = _interopRequireDefault(require("../string/isNotEmpty"));
7
+ var _isNotEmpty = _interopRequireDefault(require("../string/isNotEmpty.js"));
8
+ var _is = require("../object/is.js");
10
9
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
11
- function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
12
- 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."); }
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
- function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
15
- function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
16
- 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; }
17
- function interpolatePath(path) {
18
- if (!(0, _isNotEmpty["default"])(path) && !(0, _is2["default"])(path)) throw new TypeError('No Path was given');
19
- if ((0, _is2["default"])(path)) return _toConsumableArray(path);
20
- return path.replace('[', '.').replace(']', '').split('.');
21
- }
22
10
  function deepGet(obj, path) {
23
11
  var get_parent = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : !1;
24
- if (!(0, _is["default"])(obj) && !(0, _is2["default"])(obj)) throw new TypeError('Deepget is only supported for objects');
25
- var parts = interpolatePath(path);
12
+ if (Object.prototype.toString.call(obj) !== _is.PROTO_OBJ && !Array.isArray(obj)) throw new TypeError('Deepget is only supported for objects');
13
+ if (!(0, _isNotEmpty["default"])(path)) throw new TypeError('No path was given');
14
+ var parts = path.replace('[', '.').replace(']', '').split('.');
26
15
  if (parts.length === 0 || parts.length === 1 && get_parent) return obj;
27
16
  if (get_parent) parts.pop();
28
17
  var cursor = obj;
29
18
  while (parts.length > 0) {
30
- cursor = (0, _is2["default"])(cursor) ? cursor[parseInt(parts.shift())] : cursor[parts.shift()];
19
+ if (Array.isArray(cursor)) {
20
+ var ix = parseInt(parts.shift());
21
+ if (!Number.isInteger(ix) || ix < 0 || ix > cursor.length - 1) return undefined;
22
+ cursor = cursor[ix];
23
+ } else {
24
+ var key = parts.shift();
25
+ if (!cursor.hasOwnProperty(key)) return undefined;
26
+ cursor = cursor[key];
27
+ }
28
+ if (!Array.isArray(cursor) && Object.prototype.toString.call(cursor) !== _is.PROTO_OBJ && parts.length > 0) return undefined;
31
29
  }
32
- return cursor || cursor === !1 || cursor === 0 || cursor === '' ? cursor : undefined;
30
+ return cursor;
33
31
  }
package/deep/seal.js CHANGED
@@ -4,19 +4,15 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: !0
5
5
  });
6
6
  exports["default"] = deepSeal;
7
- var _is = _interopRequireDefault(require("../object/is"));
8
- var _is2 = _interopRequireDefault(require("../array/is"));
9
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
7
+ var _is = require("../object/is.js");
10
8
  function deep(obj) {
11
- var next = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : Object.seal;
12
- (Object.keys(obj) || []).forEach(function (key) {
13
- if ((0, _is["default"])(obj[key]) || (0, _is2["default"])(obj[key])) {
14
- deep(obj[key], next);
15
- }
16
- });
17
- return next(obj);
9
+ for (var _i = 0, _Object$keys = Object.keys(obj); _i < _Object$keys.length; _i++) {
10
+ var key = _Object$keys[_i];
11
+ if (Object.prototype.toString.call(obj[key]) === _is.PROTO_OBJ || Array.isArray(obj[key])) deep(obj[key]);
12
+ }
13
+ return Object.seal(obj);
18
14
  }
19
15
  function deepSeal(obj) {
20
- if (!(0, _is["default"])(obj) && !(0, _is2["default"])(obj)) throw new TypeError('Only objects can be sealed');
21
- return deep(obj, Object.seal);
16
+ if (Object.prototype.toString.call(obj) !== _is.PROTO_OBJ && !Array.isArray(obj)) throw new TypeError('Only objects/arrays can be sealed');
17
+ return deep(obj);
22
18
  }
package/deep/set.js CHANGED
@@ -4,36 +4,21 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: !0
5
5
  });
6
6
  exports["default"] = deepSet;
7
- var _is = _interopRequireDefault(require("../object/is"));
8
- var _is2 = _interopRequireDefault(require("../array/is"));
9
- var _isNotEmpty = _interopRequireDefault(require("../string/isNotEmpty"));
7
+ var _isNotEmpty = _interopRequireDefault(require("../string/isNotEmpty.js"));
8
+ var _is = require("../object/is.js");
10
9
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
11
- function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
12
- 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."); }
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
- function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
15
- function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
16
- 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; }
17
- function interpolatePath(path) {
18
- if (!(0, _isNotEmpty["default"])(path) && !(0, _is2["default"])(path)) throw new TypeError('No Path was given');
19
- if ((0, _is2["default"])(path)) return _toConsumableArray(path);
20
- return path.replace('[', '.').replace(']', '').split('.');
21
- }
22
10
  function deepSet(obj, path) {
23
11
  var value = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
24
12
  var define = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : !1;
25
- if (!(0, _is["default"])(obj) && !(0, _is2["default"])(obj)) throw new TypeError('Deepset is only supported for objects');
26
- var parts = interpolatePath(path);
13
+ if (Object.prototype.toString.call(obj) !== _is.PROTO_OBJ && !Array.isArray(obj)) throw new TypeError('Deepset is only supported for objects');
14
+ if (!(0, _isNotEmpty["default"])(path)) throw new TypeError('No path was given');
15
+ var parts = path.replace('[', '.').replace(']', '').split('.');
27
16
  for (var i = 0; i < parts.length - 1; i++) {
28
17
  if (parts[i] === '') continue;
29
18
  if (!obj[parts[i]]) obj[parts[i]] = {};
30
19
  obj = obj[parts[i]];
31
- if (!(0, _is2["default"])(obj)) continue;
32
- if (i < parts.length - 2) {
33
- obj = obj[parts[i + 1]];
34
- i++;
35
- }
36
20
  }
21
+ if (!Array.isArray(obj) && Object.prototype.toString.call(obj) !== _is.PROTO_OBJ) return !1;
37
22
  if (define) {
38
23
  Object.defineProperty(obj, parts[parts.length - 1], value);
39
24
  } else {
package/equal.js CHANGED
@@ -3,11 +3,9 @@ Object.defineProperty(exports, "__esModule", {
3
3
  value: !0
4
4
  });
5
5
  exports["default"] = void 0;
6
- var _is = _interopRequireDefault(require("./object/is"));
7
- var _is2 = _interopRequireDefault(require("./array/is"));
8
- var _isNumericalNaN = _interopRequireDefault(require("./number/isNumericalNaN"));
9
- var _is3 = _interopRequireDefault(require("./regexp/is"));
10
- var _is4 = _interopRequireDefault(require("./date/is"));
6
+ var _isNumericalNaN = _interopRequireDefault(require("./number/isNumericalNaN.js"));
7
+ var _is = require("./regexp/is.js");
8
+ var _is2 = require("./object/is.js");
11
9
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
12
10
  function isArrayEqual(a, b) {
13
11
  if (a.length !== b.length) return !1;
@@ -27,22 +25,13 @@ function isObjectEqual(a, b) {
27
25
  return !0;
28
26
  }
29
27
  function equal(a, b) {
30
- if ((0, _is4["default"])(a) && (0, _is4["default"])(b)) {
31
- return a.valueOf() === b.valueOf();
32
- }
33
- if ((0, _is3["default"])(a) || (0, _is3["default"])(b)) {
34
- return String(a) === String(b);
35
- }
36
- if ((0, _is2["default"])(a) && (0, _is2["default"])(b)) {
37
- return isArrayEqual(a, b);
38
- }
39
- if ((0, _is["default"])(a) && (0, _is["default"])(b)) {
40
- return isObjectEqual(a, b);
41
- }
28
+ if (a instanceof Date && b instanceof Date) return a.valueOf() === b.valueOf();
29
+ if (Object.prototype.toString.call(a) === _is.PROTO_RGX && Object.prototype.toString.call(b) === _is.PROTO_RGX) return String(a) === String(b);
30
+ if (Array.isArray(a) && Array.isArray(b)) return isArrayEqual(a, b);
31
+ if (Object.prototype.toString.call(a) === _is2.PROTO_OBJ && Object.prototype.toString.call(b) === _is2.PROTO_OBJ) return isObjectEqual(a, b);
42
32
  if ((0, _isNumericalNaN["default"])(a)) {
43
33
  return (0, _isNumericalNaN["default"])(b);
44
34
  }
45
35
  return a === b;
46
36
  }
47
- var _default = equal;
48
- exports["default"] = _default;
37
+ var _default = exports["default"] = equal;
package/hash/fnv1A.js CHANGED
@@ -3,38 +3,46 @@ Object.defineProperty(exports, "__esModule", {
3
3
  value: !0
4
4
  });
5
5
  exports["default"] = fnv1A;
6
- var _is = _interopRequireDefault(require("../string/is"));
7
- var _is2 = _interopRequireDefault(require("../date/is"));
8
- var _is3 = _interopRequireDefault(require("../object/is"));
9
- var _is4 = _interopRequireDefault(require("../array/is"));
10
- var _is5 = _interopRequireDefault(require("../number/is"));
11
- var _isNumericalNaN = _interopRequireDefault(require("../number/isNumericalNaN"));
12
- var _is6 = _interopRequireDefault(require("../regexp/is"));
6
+ var _is = _interopRequireDefault(require("../string/is.js"));
7
+ var _isNumericalNaN = _interopRequireDefault(require("../number/isNumericalNaN.js"));
8
+ var _is2 = require("../regexp/is.js");
9
+ var _is3 = require("../object/is.js");
13
10
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
14
- var FNV_OFFSET_BASIS_32 = 2166136261;
15
- function fnv1A() {
16
- var data = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
17
- var offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : FNV_OFFSET_BASIS_32;
11
+ var FNV_32 = 2166136261;
12
+ var REPL_NAN = 'nan';
13
+ var REPL_TRUE = 'true';
14
+ var REPL_FALSE = 'false';
15
+ var REPL_UNDEF = 'undefined';
16
+ var REPL_NULL = 'null';
17
+ function fnv1A(data) {
18
+ var offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : FNV_32;
18
19
  var hash = offset;
19
- var sanitized_data = JSON.stringify(data);
20
+ var sanitized;
20
21
  if ((0, _is["default"])(data)) {
21
- sanitized_data = data;
22
- } else if ((0, _is4["default"])(data) || (0, _is3["default"])(data)) {
23
- sanitized_data = JSON.stringify(data);
24
- } else if ((0, _is6["default"])(data)) {
25
- sanitized_data = String(data);
26
- } else if ((0, _is2["default"])(data)) {
27
- sanitized_data = "".concat(data.getTime());
28
- } else if ((0, _is5["default"])(data)) {
29
- sanitized_data = "".concat(data);
22
+ sanitized = data;
23
+ } else if (Number.isFinite(data)) {
24
+ sanitized = "".concat(data);
25
+ } else if (Array.isArray(data) || Object.prototype.toString.call(data) === _is3.PROTO_OBJ) {
26
+ sanitized = JSON.stringify(data);
27
+ } else if (Object.prototype.toString.call(data) === _is2.PROTO_RGX) {
28
+ sanitized = data.toString();
29
+ } else if (data instanceof Date) {
30
+ sanitized = "".concat(data.getTime());
30
31
  } else if ((0, _isNumericalNaN["default"])(data)) {
31
- sanitized_data = 'NaN';
32
+ sanitized = REPL_NAN;
33
+ } else if (data === !1) {
34
+ sanitized = REPL_FALSE;
35
+ } else if (data === !0) {
36
+ sanitized = REPL_TRUE;
37
+ } else if (data === null) {
38
+ sanitized = REPL_NULL;
39
+ } else if (data === undefined) {
40
+ sanitized = REPL_UNDEF;
41
+ } else {
42
+ throw new TypeError('An FNV1A Hash could not be calculated for this datatype');
32
43
  }
33
- if (sanitized_data === !1) {
34
- throw new TypeError('An FNVA1 Hash could not be calculated for this datatype');
35
- }
36
- for (var i = 0; i < sanitized_data.length; i++) {
37
- hash ^= sanitized_data.charCodeAt(i);
44
+ for (var i = 0; i < sanitized.length; i++) {
45
+ hash ^= sanitized.charCodeAt(i);
38
46
  hash += (hash << 1) + (hash << 4) + (hash << 7) + (hash << 8) + (hash << 24);
39
47
  }
40
48
  return hash >>> 0;
package/is.js CHANGED
@@ -4,37 +4,34 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: !0
5
5
  });
6
6
  exports["default"] = void 0;
7
- var _equal = _interopRequireDefault(require("./equal"));
8
- var _is = _interopRequireDefault(require("./array/is"));
9
- var _isNotEmpty = _interopRequireDefault(require("./array/isNotEmpty"));
10
- var _is2 = _interopRequireDefault(require("./boolean/is"));
11
- var _is3 = _interopRequireDefault(require("./date/is"));
12
- var _is4 = _interopRequireDefault(require("./function/is"));
13
- var _is5 = _interopRequireDefault(require("./number/is"));
14
- var _isBetween = _interopRequireDefault(require("./number/isBetween"));
15
- var _isBelow = _interopRequireDefault(require("./number/isBelow"));
16
- var _isBelowOrEqual = _interopRequireDefault(require("./number/isBelowOrEqual"));
17
- var _isAbove = _interopRequireDefault(require("./number/isAbove"));
18
- var _isAboveOrEqual = _interopRequireDefault(require("./number/isAboveOrEqual"));
19
- var _isInteger = _interopRequireDefault(require("./number/isInteger"));
20
- var _isIntegerBetween = _interopRequireDefault(require("./number/isIntegerBetween"));
21
- var _isIntegerBelow = _interopRequireDefault(require("./number/isIntegerBelow"));
22
- var _isIntegerBelowOrEqual = _interopRequireDefault(require("./number/isIntegerBelowOrEqual"));
23
- var _isIntegerAbove = _interopRequireDefault(require("./number/isIntegerAbove"));
24
- var _isIntegerAboveOrEqual = _interopRequireDefault(require("./number/isIntegerAboveOrEqual"));
25
- var _is6 = _interopRequireDefault(require("./regexp/is"));
26
- var _is7 = _interopRequireDefault(require("./object/is"));
27
- var _isNotEmpty2 = _interopRequireDefault(require("./object/isNotEmpty"));
28
- var _is8 = _interopRequireDefault(require("./string/is"));
29
- var _isBetween2 = _interopRequireDefault(require("./string/isBetween"));
30
- var _isNotEmpty3 = _interopRequireDefault(require("./string/isNotEmpty"));
7
+ var _equal = _interopRequireDefault(require("./equal.js"));
8
+ var _isNotEmpty = _interopRequireDefault(require("./array/isNotEmpty.js"));
9
+ var _is = _interopRequireDefault(require("./boolean/is.js"));
10
+ var _is2 = _interopRequireDefault(require("./date/is.js"));
11
+ var _is3 = _interopRequireDefault(require("./function/is.js"));
12
+ var _isBetween = _interopRequireDefault(require("./number/isBetween.js"));
13
+ var _isBelow = _interopRequireDefault(require("./number/isBelow.js"));
14
+ var _isBelowOrEqual = _interopRequireDefault(require("./number/isBelowOrEqual.js"));
15
+ var _isAbove = _interopRequireDefault(require("./number/isAbove.js"));
16
+ var _isAboveOrEqual = _interopRequireDefault(require("./number/isAboveOrEqual.js"));
17
+ var _isIntegerBetween = _interopRequireDefault(require("./number/isIntegerBetween.js"));
18
+ var _isIntegerBelow = _interopRequireDefault(require("./number/isIntegerBelow.js"));
19
+ var _isIntegerBelowOrEqual = _interopRequireDefault(require("./number/isIntegerBelowOrEqual.js"));
20
+ var _isIntegerAbove = _interopRequireDefault(require("./number/isIntegerAbove.js"));
21
+ var _isIntegerAboveOrEqual = _interopRequireDefault(require("./number/isIntegerAboveOrEqual.js"));
22
+ var _is4 = _interopRequireDefault(require("./regexp/is.js"));
23
+ var _is5 = _interopRequireDefault(require("./object/is.js"));
24
+ var _isNotEmpty2 = _interopRequireDefault(require("./object/isNotEmpty.js"));
25
+ var _is6 = _interopRequireDefault(require("./string/is.js"));
26
+ var _isBetween2 = _interopRequireDefault(require("./string/isBetween.js"));
27
+ var _isNotEmpty3 = _interopRequireDefault(require("./string/isNotEmpty.js"));
31
28
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
32
29
  var Is = Object.freeze(Object.defineProperties(Object.create(null), {
33
30
  Array: {
34
31
  enumerable: !0,
35
32
  writable: !1,
36
33
  configurable: !1,
37
- value: _is["default"]
34
+ value: Array.isArray
38
35
  },
39
36
  NeArray: {
40
37
  enumerable: !0,
@@ -52,25 +49,25 @@ var Is = Object.freeze(Object.defineProperties(Object.create(null), {
52
49
  enumerable: !0,
53
50
  writable: !1,
54
51
  configurable: !1,
55
- value: _is2["default"]
52
+ value: _is["default"]
56
53
  },
57
54
  Date: {
58
55
  enumerable: !0,
59
56
  writable: !1,
60
57
  configurable: !1,
61
- value: _is3["default"]
58
+ value: _is2["default"]
62
59
  },
63
60
  Function: {
64
61
  enumerable: !0,
65
62
  writable: !1,
66
63
  configurable: !1,
67
- value: _is4["default"]
64
+ value: _is3["default"]
68
65
  },
69
66
  Num: {
70
67
  enumerable: !0,
71
68
  writable: !1,
72
69
  configurable: !1,
73
- value: _is5["default"]
70
+ value: Number.isFinite
74
71
  },
75
72
  NumBetween: {
76
73
  enumerable: !0,
@@ -130,7 +127,7 @@ var Is = Object.freeze(Object.defineProperties(Object.create(null), {
130
127
  enumerable: !0,
131
128
  writable: !1,
132
129
  configurable: !1,
133
- value: _is5["default"]
130
+ value: Number.isFinite
134
131
  },
135
132
  NumberBetween: {
136
133
  enumerable: !0,
@@ -166,7 +163,7 @@ var Is = Object.freeze(Object.defineProperties(Object.create(null), {
166
163
  enumerable: !0,
167
164
  writable: !1,
168
165
  configurable: !1,
169
- value: _isInteger["default"]
166
+ value: Number.isInteger
170
167
  },
171
168
  IntBetween: {
172
169
  enumerable: !0,
@@ -226,7 +223,7 @@ var Is = Object.freeze(Object.defineProperties(Object.create(null), {
226
223
  enumerable: !0,
227
224
  writable: !1,
228
225
  configurable: !1,
229
- value: _isInteger["default"]
226
+ value: Number.isInteger
230
227
  },
231
228
  IntegerBetween: {
232
229
  enumerable: !0,
@@ -262,13 +259,13 @@ var Is = Object.freeze(Object.defineProperties(Object.create(null), {
262
259
  enumerable: !0,
263
260
  writable: !1,
264
261
  configurable: !1,
265
- value: _is6["default"]
262
+ value: _is4["default"]
266
263
  },
267
264
  Object: {
268
265
  enumerable: !0,
269
266
  writable: !1,
270
267
  configurable: !1,
271
- value: _is7["default"]
268
+ value: _is5["default"]
272
269
  },
273
270
  NeObject: {
274
271
  enumerable: !0,
@@ -286,7 +283,7 @@ var Is = Object.freeze(Object.defineProperties(Object.create(null), {
286
283
  enumerable: !0,
287
284
  writable: !1,
288
285
  configurable: !1,
289
- value: _is8["default"]
286
+ value: _is6["default"]
290
287
  },
291
288
  StringBetween: {
292
289
  enumerable: !0,
@@ -319,5 +316,4 @@ var Is = Object.freeze(Object.defineProperties(Object.create(null), {
319
316
  value: _equal["default"]
320
317
  }
321
318
  }));
322
- var _default = Is;
323
- exports["default"] = _default;
319
+ var _default = exports["default"] = Is;
package/number/is.js CHANGED
@@ -4,9 +4,6 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: !0
5
5
  });
6
6
  exports["default"] = isNumber;
7
- var _isNumericalNaN = _interopRequireDefault(require("./isNumericalNaN"));
8
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
9
7
  function isNumber(val) {
10
- if ((0, _isNumericalNaN["default"])(val)) return !1;
11
- return typeof val === 'number' || val instanceof Number;
8
+ return Number.isFinite(val);
12
9
  }
package/number/isAbove.js CHANGED
@@ -1,12 +1,8 @@
1
1
  'use strict';
2
-
3
2
  Object.defineProperty(exports, "__esModule", {
4
3
  value: !0
5
4
  });
6
5
  exports["default"] = isNumberAbove;
7
- var _is = _interopRequireDefault(require("../number/is"));
8
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
9
6
  function isNumberAbove(val, ref) {
10
- if (!(0, _is["default"])(val) || !(0, _is["default"])(ref)) return !1;
11
- return val > ref;
7
+ return !Number.isFinite(val) || !Number.isFinite(ref) ? !1 : val > ref;
12
8
  }
@@ -1,12 +1,8 @@
1
1
  'use strict';
2
-
3
2
  Object.defineProperty(exports, "__esModule", {
4
3
  value: !0
5
4
  });
6
5
  exports["default"] = isNumberAboveOrEqual;
7
- var _is = _interopRequireDefault(require("../number/is"));
8
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
9
6
  function isNumberAboveOrEqual(val, ref) {
10
- if (!(0, _is["default"])(val) || !(0, _is["default"])(ref)) return !1;
11
- return val >= ref;
7
+ return !Number.isFinite(val) || !Number.isFinite(ref) ? !1 : val >= ref;
12
8
  }
package/number/isBelow.js CHANGED
@@ -1,12 +1,8 @@
1
1
  'use strict';
2
-
3
2
  Object.defineProperty(exports, "__esModule", {
4
3
  value: !0
5
4
  });
6
5
  exports["default"] = isBelow;
7
- var _is = _interopRequireDefault(require("../number/is"));
8
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
9
6
  function isBelow(val, ref) {
10
- if (!(0, _is["default"])(val) || !(0, _is["default"])(ref)) return !1;
11
- return val < ref;
7
+ return !Number.isFinite(val) || !Number.isFinite(ref) ? !1 : val < ref;
12
8
  }
@@ -1,12 +1,8 @@
1
1
  'use strict';
2
-
3
2
  Object.defineProperty(exports, "__esModule", {
4
3
  value: !0
5
4
  });
6
5
  exports["default"] = isBelowOrEqual;
7
- var _is = _interopRequireDefault(require("../number/is"));
8
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
9
6
  function isBelowOrEqual(val, ref) {
10
- if (!(0, _is["default"])(val) || !(0, _is["default"])(ref)) return !1;
11
- return val <= ref;
7
+ return !Number.isFinite(val) || !Number.isFinite(ref) ? !1 : val <= ref;
12
8
  }
@@ -1,12 +1,9 @@
1
1
  'use strict';
2
-
3
2
  Object.defineProperty(exports, "__esModule", {
4
3
  value: !0
5
4
  });
6
5
  exports["default"] = isBetween;
7
- var _is = _interopRequireDefault(require("../number/is"));
8
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
9
6
  function isBetween(val, min, max) {
10
- if (!(0, _is["default"])(val) || !(0, _is["default"])(min) || !(0, _is["default"])(max) || min >= max) return !1;
7
+ if (!Number.isFinite(val) || !Number.isFinite(min) || !Number.isFinite(max) || min >= max) return !1;
11
8
  return val >= min && val <= max;
12
9
  }
@@ -4,9 +4,6 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: !0
5
5
  });
6
6
  exports["default"] = isInteger;
7
- var _is = _interopRequireDefault(require("./is"));
8
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
9
7
  function isInteger(val) {
10
- if (!(0, _is["default"])(val)) return !1;
11
8
  return Number.isInteger(val);
12
9
  }
@@ -1,13 +1,8 @@
1
1
  'use strict';
2
-
3
2
  Object.defineProperty(exports, "__esModule", {
4
3
  value: !0
5
4
  });
6
5
  exports["default"] = isIntegerAbove;
7
- var _is = _interopRequireDefault(require("../number/is"));
8
- var _isInteger = _interopRequireDefault(require("../number/isInteger"));
9
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
10
6
  function isIntegerAbove(val, ref) {
11
- if (!(0, _isInteger["default"])(val) || !(0, _is["default"])(ref)) return !1;
12
- return val > ref;
7
+ return !Number.isInteger(val) || !Number.isFinite(ref) ? !1 : val > ref;
13
8
  }