@vinicunca/perkakas 0.3.6 → 0.4.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 (160) hide show
  1. package/dist/commonjs/array/index.js +0 -4
  2. package/dist/commonjs/guard/has-sub-object.js +19 -0
  3. package/dist/commonjs/guard/index.js +3 -0
  4. package/dist/commonjs/guard/is-deep-equal.js +55 -0
  5. package/dist/commonjs/guard/is-included-in.js +11 -0
  6. package/dist/commonjs/object/from-keys.js +15 -0
  7. package/dist/commonjs/object/index.js +1 -1
  8. package/dist/commonjs/object/merge.js +2 -2
  9. package/dist/commonjs/object/omit-by.js +3 -2
  10. package/dist/commonjs/object/pick-by.js +3 -2
  11. package/dist/es/array/index.js +0 -4
  12. package/dist/es/guard/has-sub-object.js +15 -0
  13. package/dist/es/guard/index.js +3 -0
  14. package/dist/es/guard/is-deep-equal.js +51 -0
  15. package/dist/es/guard/is-included-in.js +7 -0
  16. package/dist/es/object/from-keys.js +11 -0
  17. package/dist/es/object/index.js +1 -1
  18. package/dist/es/object/merge.js +2 -2
  19. package/dist/es/object/omit-by.js +3 -2
  20. package/dist/es/object/pick-by.js +3 -2
  21. package/dist/metadata.json +6976 -6506
  22. package/dist/types/array/difference-with.d.ts +3 -3
  23. package/dist/types/array/drop-first-by.d.ts +0 -1
  24. package/dist/types/array/drop-first-by.d.ts.map +1 -1
  25. package/dist/types/array/drop-last.d.ts +2 -1
  26. package/dist/types/array/drop-last.d.ts.map +1 -1
  27. package/dist/types/array/drop.d.ts +2 -1
  28. package/dist/types/array/drop.d.ts.map +1 -1
  29. package/dist/types/array/filter.d.ts +14 -0
  30. package/dist/types/array/filter.d.ts.map +1 -1
  31. package/dist/types/array/find-index.d.ts +2 -0
  32. package/dist/types/array/find-index.d.ts.map +1 -1
  33. package/dist/types/array/find-last-index.d.ts +2 -0
  34. package/dist/types/array/find-last-index.d.ts.map +1 -1
  35. package/dist/types/array/first-by.d.ts +0 -1
  36. package/dist/types/array/first-by.d.ts.map +1 -1
  37. package/dist/types/array/flat-map.d.ts +2 -0
  38. package/dist/types/array/flat-map.d.ts.map +1 -1
  39. package/dist/types/array/flatten-deep.d.ts +5 -4
  40. package/dist/types/array/flatten-deep.d.ts.map +1 -1
  41. package/dist/types/array/flatten.d.ts +7 -6
  42. package/dist/types/array/flatten.d.ts.map +1 -1
  43. package/dist/types/array/group-by.d.ts +1 -0
  44. package/dist/types/array/group-by.d.ts.map +1 -1
  45. package/dist/types/array/has-at-least.d.ts +0 -1
  46. package/dist/types/array/has-at-least.d.ts.map +1 -1
  47. package/dist/types/array/index-by.d.ts +0 -1
  48. package/dist/types/array/index-by.d.ts.map +1 -1
  49. package/dist/types/array/index.d.ts +0 -4
  50. package/dist/types/array/index.d.ts.map +1 -1
  51. package/dist/types/array/last.d.ts +2 -1
  52. package/dist/types/array/last.d.ts.map +1 -1
  53. package/dist/types/array/length.d.ts +1 -0
  54. package/dist/types/array/length.d.ts.map +1 -1
  55. package/dist/types/array/nth-by.d.ts +0 -1
  56. package/dist/types/array/nth-by.d.ts.map +1 -1
  57. package/dist/types/array/only.d.ts +2 -1
  58. package/dist/types/array/only.d.ts.map +1 -1
  59. package/dist/types/array/rank-by.d.ts +0 -1
  60. package/dist/types/array/rank-by.d.ts.map +1 -1
  61. package/dist/types/array/reduce.d.ts +2 -0
  62. package/dist/types/array/reduce.d.ts.map +1 -1
  63. package/dist/types/array/reverse.d.ts +4 -2
  64. package/dist/types/array/reverse.d.ts.map +1 -1
  65. package/dist/types/array/sort-by.d.ts +2 -3
  66. package/dist/types/array/sort-by.d.ts.map +1 -1
  67. package/dist/types/array/sorted-index-by.d.ts +0 -1
  68. package/dist/types/array/sorted-index-by.d.ts.map +1 -1
  69. package/dist/types/array/sorted-index-with.d.ts +0 -1
  70. package/dist/types/array/sorted-index-with.d.ts.map +1 -1
  71. package/dist/types/array/sorted-index.d.ts +0 -1
  72. package/dist/types/array/sorted-index.d.ts.map +1 -1
  73. package/dist/types/array/sorted-last-index-by.d.ts +0 -1
  74. package/dist/types/array/sorted-last-index-by.d.ts.map +1 -1
  75. package/dist/types/array/sorted-last-index.d.ts +0 -1
  76. package/dist/types/array/sorted-last-index.d.ts.map +1 -1
  77. package/dist/types/array/splice.d.ts +2 -1
  78. package/dist/types/array/splice.d.ts.map +1 -1
  79. package/dist/types/array/split-at.d.ts +2 -0
  80. package/dist/types/array/split-at.d.ts.map +1 -1
  81. package/dist/types/array/take-first-by.d.ts +0 -1
  82. package/dist/types/array/take-first-by.d.ts.map +1 -1
  83. package/dist/types/array/uniq-with.d.ts +3 -3
  84. package/dist/types/function/conditional.d.ts +0 -1
  85. package/dist/types/function/conditional.d.ts.map +1 -1
  86. package/dist/types/function/purry.d.ts +1 -0
  87. package/dist/types/function/purry.d.ts.map +1 -1
  88. package/dist/types/function/times.d.ts +0 -1
  89. package/dist/types/function/times.d.ts.map +1 -1
  90. package/dist/types/guard/has-sub-object.d.ts +35 -0
  91. package/dist/types/guard/has-sub-object.d.ts.map +1 -0
  92. package/dist/types/guard/index.d.ts +3 -0
  93. package/dist/types/guard/index.d.ts.map +1 -1
  94. package/dist/types/guard/is-deep-equal.d.ts +50 -0
  95. package/dist/types/guard/is-deep-equal.d.ts.map +1 -0
  96. package/dist/types/guard/is-included-in.d.ts +54 -0
  97. package/dist/types/guard/is-included-in.d.ts.map +1 -0
  98. package/dist/types/number/add.d.ts +0 -1
  99. package/dist/types/number/add.d.ts.map +1 -1
  100. package/dist/types/number/ceil.d.ts +2 -1
  101. package/dist/types/number/ceil.d.ts.map +1 -1
  102. package/dist/types/number/clamp.d.ts +6 -6
  103. package/dist/types/number/divide.d.ts +0 -1
  104. package/dist/types/number/divide.d.ts.map +1 -1
  105. package/dist/types/number/floor.d.ts +2 -1
  106. package/dist/types/number/floor.d.ts.map +1 -1
  107. package/dist/types/number/multiply.d.ts +2 -1
  108. package/dist/types/number/multiply.d.ts.map +1 -1
  109. package/dist/types/number/round.d.ts +2 -1
  110. package/dist/types/number/round.d.ts.map +1 -1
  111. package/dist/types/number/subtract.d.ts +2 -1
  112. package/dist/types/number/subtract.d.ts.map +1 -1
  113. package/dist/types/object/from-keys.d.ts +42 -0
  114. package/dist/types/object/from-keys.d.ts.map +1 -0
  115. package/dist/types/object/from-pairs.d.ts +1 -1
  116. package/dist/types/object/index.d.ts +1 -1
  117. package/dist/types/object/index.d.ts.map +1 -1
  118. package/dist/types/object/invert.d.ts +2 -0
  119. package/dist/types/object/invert.d.ts.map +1 -1
  120. package/dist/types/object/keys.d.ts +1 -0
  121. package/dist/types/object/keys.d.ts.map +1 -1
  122. package/dist/types/object/merge.d.ts +39 -12
  123. package/dist/types/object/merge.d.ts.map +1 -1
  124. package/dist/types/object/path-or.d.ts +2 -0
  125. package/dist/types/object/path-or.d.ts.map +1 -1
  126. package/dist/types/object/pick-by.d.ts +2 -0
  127. package/dist/types/object/pick-by.d.ts.map +1 -1
  128. package/dist/types/object/set-path.d.ts +2 -0
  129. package/dist/types/object/set-path.d.ts.map +1 -1
  130. package/dist/types/object/values.d.ts +1 -0
  131. package/dist/types/object/values.d.ts.map +1 -1
  132. package/dist/types/string/cases-types.d.ts +13 -13
  133. package/dist/types/string/cases-types.d.ts.map +1 -1
  134. package/dist/types/string/cases.d.ts +9 -9
  135. package/dist/types/string/cases.d.ts.map +1 -1
  136. package/dist/types/string/random-string.d.ts +1 -0
  137. package/dist/types/string/random-string.d.ts.map +1 -1
  138. package/dist/types/utils/purry-order-rules.d.ts +4 -4
  139. package/dist/types/utils/purry-order-rules.d.ts.map +1 -1
  140. package/package.json +11 -10
  141. package/dist/commonjs/array/compact.js +0 -8
  142. package/dist/commonjs/array/count-by.js +0 -24
  143. package/dist/commonjs/array/difference.js +0 -22
  144. package/dist/commonjs/array/intersection.js +0 -22
  145. package/dist/commonjs/object/equals.js +0 -67
  146. package/dist/es/array/compact.js +0 -4
  147. package/dist/es/array/count-by.js +0 -20
  148. package/dist/es/array/difference.js +0 -18
  149. package/dist/es/array/intersection.js +0 -18
  150. package/dist/es/object/equals.js +0 -63
  151. package/dist/types/array/compact.d.ts +0 -12
  152. package/dist/types/array/compact.d.ts.map +0 -1
  153. package/dist/types/array/count-by.d.ts +0 -20
  154. package/dist/types/array/count-by.d.ts.map +0 -1
  155. package/dist/types/array/difference.d.ts +0 -35
  156. package/dist/types/array/difference.d.ts.map +0 -1
  157. package/dist/types/array/intersection.d.ts +0 -30
  158. package/dist/types/array/intersection.d.ts.map +0 -1
  159. package/dist/types/object/equals.d.ts +0 -30
  160. package/dist/types/object/equals.d.ts.map +0 -1
@@ -17,11 +17,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./all-pass"), exports);
18
18
  __exportStar(require("./any-pass"), exports);
19
19
  __exportStar(require("./chunk"), exports);
20
- __exportStar(require("./compact"), exports);
21
20
  __exportStar(require("./concat"), exports);
22
- __exportStar(require("./count-by"), exports);
23
21
  __exportStar(require("./difference-with"), exports);
24
- __exportStar(require("./difference"), exports);
25
22
  __exportStar(require("./drop-last"), exports);
26
23
  __exportStar(require("./drop"), exports);
27
24
  __exportStar(require("./drop-first-by"), exports);
@@ -42,7 +39,6 @@ __exportStar(require("./for-each"), exports);
42
39
  __exportStar(require("./group-by"), exports);
43
40
  __exportStar(require("./has-at-least"), exports);
44
41
  __exportStar(require("./index-by"), exports);
45
- __exportStar(require("./intersection"), exports);
46
42
  __exportStar(require("./intersection-with"), exports);
47
43
  __exportStar(require("./join"), exports);
48
44
  __exportStar(require("./last"), exports);
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.hasSubObject = void 0;
4
+ const purry_1 = require("../function/purry");
5
+ function hasSubObject(...args) {
6
+ return (0, purry_1.purry)(_hasSubObject, args);
7
+ }
8
+ exports.hasSubObject = hasSubObject;
9
+ function _hasSubObject(data, subObject) {
10
+ for (const key of Object.keys(subObject)) {
11
+ if (!Object.prototype.hasOwnProperty.call(data, key)) {
12
+ return false;
13
+ }
14
+ if (!isDeepEqual(subObject[key], data[key])) {
15
+ return false;
16
+ }
17
+ }
18
+ return true;
19
+ }
@@ -14,13 +14,16 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./has-sub-object"), exports);
17
18
  __exportStar(require("./is-array"), exports);
18
19
  __exportStar(require("./is-boolean"), exports);
19
20
  __exportStar(require("./is-date"), exports);
21
+ __exportStar(require("./is-deep-equal"), exports);
20
22
  __exportStar(require("./is-defined"), exports);
21
23
  __exportStar(require("./is-empty"), exports);
22
24
  __exportStar(require("./is-error"), exports);
23
25
  __exportStar(require("./is-function"), exports);
26
+ __exportStar(require("./is-included-in"), exports);
24
27
  __exportStar(require("./is-nil"), exports);
25
28
  __exportStar(require("./is-non-null"), exports);
26
29
  __exportStar(require("./is-not"), exports);
@@ -0,0 +1,55 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isDeepEqual = void 0;
4
+ const purry_1 = require("../function/purry");
5
+ function isDeepEqual(...args) {
6
+ return (0, purry_1.purry)(isDeepEqualImplementation, args);
7
+ }
8
+ exports.isDeepEqual = isDeepEqual;
9
+ function isDeepEqualImplementation(data, other) {
10
+ if (data === other) {
11
+ return true;
12
+ }
13
+ if (typeof data === 'number' && typeof other === 'number') {
14
+ return data !== data && other !== other;
15
+ }
16
+ if (typeof data !== 'object' || typeof other !== 'object') {
17
+ return false;
18
+ }
19
+ if (data === null || other === null) {
20
+ return false;
21
+ }
22
+ if (Object.getPrototypeOf(data) !== Object.getPrototypeOf(other)) {
23
+ return false;
24
+ }
25
+ if (Array.isArray(data)) {
26
+ if (data.length !== other.length) {
27
+ return false;
28
+ }
29
+ for (let i = 0; i < data.length; i++) {
30
+ if (!isDeepEqualImplementation(data[i], other[i])) {
31
+ return false;
32
+ }
33
+ }
34
+ return true;
35
+ }
36
+ if (data instanceof Date) {
37
+ return data.getTime() === other.getTime();
38
+ }
39
+ if (data instanceof RegExp) {
40
+ return data.toString() === other.toString();
41
+ }
42
+ const keys = Object.keys(data);
43
+ if (keys.length !== Object.keys(other).length) {
44
+ return false;
45
+ }
46
+ for (const key of keys) {
47
+ if (!Object.prototype.hasOwnProperty.call(other, key)) {
48
+ return false;
49
+ }
50
+ if (!isDeepEqualImplementation(data[key], other[key])) {
51
+ return false;
52
+ }
53
+ }
54
+ return true;
55
+ }
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isIncludedIn = void 0;
4
+ function isIncludedIn(dataOrContainer, container) {
5
+ if (container === undefined) {
6
+ const asSet = new Set(dataOrContainer);
7
+ return (data) => asSet.has(data);
8
+ }
9
+ return container.includes(dataOrContainer);
10
+ }
11
+ exports.isIncludedIn = isIncludedIn;
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.fromKeys = void 0;
4
+ const purry_1 = require("../function/purry");
5
+ function fromKeys(...args) {
6
+ return (0, purry_1.purry)(fromKeysImplementation, args);
7
+ }
8
+ exports.fromKeys = fromKeys;
9
+ function fromKeysImplementation(data, mapper) {
10
+ const result = {};
11
+ for (const key of data) {
12
+ result[key] = mapper(key);
13
+ }
14
+ return result;
15
+ }
@@ -16,8 +16,8 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./add-prop"), exports);
18
18
  __exportStar(require("./clone"), exports);
19
- __exportStar(require("./equals"), exports);
20
19
  __exportStar(require("./for-each-obj"), exports);
20
+ __exportStar(require("./from-keys"), exports);
21
21
  __exportStar(require("./from-pairs"), exports);
22
22
  __exportStar(require("./index"), exports);
23
23
  __exportStar(require("./invert"), exports);
@@ -6,6 +6,6 @@ function merge(...args) {
6
6
  return (0, purry_1.purry)(merge_, args);
7
7
  }
8
8
  exports.merge = merge;
9
- function merge_(a, b) {
10
- return Object.assign({}, a, b);
9
+ function merge_(data, source) {
10
+ return { ...data, ...source };
11
11
  }
@@ -13,8 +13,9 @@ function omitBy_(object, fn) {
13
13
  }
14
14
  const out = {};
15
15
  for (const key of keys_1.keys.strict(object)) {
16
- if (!fn(object[key], key)) {
17
- out[key] = object[key];
16
+ const k = key;
17
+ if (!fn(object[k], k)) {
18
+ out[k] = object[k];
18
19
  }
19
20
  }
20
21
  return out;
@@ -13,8 +13,9 @@ function pickBy_(data, fn) {
13
13
  }
14
14
  const out = {};
15
15
  for (const key of keys_1.keys.strict(data)) {
16
- if (fn(data[key], key)) {
17
- out[key] = data[key];
16
+ const k = key;
17
+ if (fn(data[k], k)) {
18
+ out[k] = data[k];
18
19
  }
19
20
  }
20
21
  return out;
@@ -1,11 +1,8 @@
1
1
  export * from './all-pass';
2
2
  export * from './any-pass';
3
3
  export * from './chunk';
4
- export * from './compact';
5
4
  export * from './concat';
6
- export * from './count-by';
7
5
  export * from './difference-with';
8
- export * from './difference';
9
6
  export * from './drop-last';
10
7
  export * from './drop';
11
8
  export * from './drop-first-by';
@@ -26,7 +23,6 @@ export * from './for-each';
26
23
  export * from './group-by';
27
24
  export * from './has-at-least';
28
25
  export * from './index-by';
29
- export * from './intersection';
30
26
  export * from './intersection-with';
31
27
  export * from './join';
32
28
  export * from './last';
@@ -0,0 +1,15 @@
1
+ import { purry } from '../function/purry';
2
+ export function hasSubObject(...args) {
3
+ return purry(_hasSubObject, args);
4
+ }
5
+ function _hasSubObject(data, subObject) {
6
+ for (const key of Object.keys(subObject)) {
7
+ if (!Object.prototype.hasOwnProperty.call(data, key)) {
8
+ return false;
9
+ }
10
+ if (!isDeepEqual(subObject[key], data[key])) {
11
+ return false;
12
+ }
13
+ }
14
+ return true;
15
+ }
@@ -1,10 +1,13 @@
1
+ export * from './has-sub-object';
1
2
  export * from './is-array';
2
3
  export * from './is-boolean';
3
4
  export * from './is-date';
5
+ export * from './is-deep-equal';
4
6
  export * from './is-defined';
5
7
  export * from './is-empty';
6
8
  export * from './is-error';
7
9
  export * from './is-function';
10
+ export * from './is-included-in';
8
11
  export * from './is-nil';
9
12
  export * from './is-non-null';
10
13
  export * from './is-not';
@@ -0,0 +1,51 @@
1
+ import { purry } from '../function/purry';
2
+ export function isDeepEqual(...args) {
3
+ return purry(isDeepEqualImplementation, args);
4
+ }
5
+ function isDeepEqualImplementation(data, other) {
6
+ if (data === other) {
7
+ return true;
8
+ }
9
+ if (typeof data === 'number' && typeof other === 'number') {
10
+ return data !== data && other !== other;
11
+ }
12
+ if (typeof data !== 'object' || typeof other !== 'object') {
13
+ return false;
14
+ }
15
+ if (data === null || other === null) {
16
+ return false;
17
+ }
18
+ if (Object.getPrototypeOf(data) !== Object.getPrototypeOf(other)) {
19
+ return false;
20
+ }
21
+ if (Array.isArray(data)) {
22
+ if (data.length !== other.length) {
23
+ return false;
24
+ }
25
+ for (let i = 0; i < data.length; i++) {
26
+ if (!isDeepEqualImplementation(data[i], other[i])) {
27
+ return false;
28
+ }
29
+ }
30
+ return true;
31
+ }
32
+ if (data instanceof Date) {
33
+ return data.getTime() === other.getTime();
34
+ }
35
+ if (data instanceof RegExp) {
36
+ return data.toString() === other.toString();
37
+ }
38
+ const keys = Object.keys(data);
39
+ if (keys.length !== Object.keys(other).length) {
40
+ return false;
41
+ }
42
+ for (const key of keys) {
43
+ if (!Object.prototype.hasOwnProperty.call(other, key)) {
44
+ return false;
45
+ }
46
+ if (!isDeepEqualImplementation(data[key], other[key])) {
47
+ return false;
48
+ }
49
+ }
50
+ return true;
51
+ }
@@ -0,0 +1,7 @@
1
+ export function isIncludedIn(dataOrContainer, container) {
2
+ if (container === undefined) {
3
+ const asSet = new Set(dataOrContainer);
4
+ return (data) => asSet.has(data);
5
+ }
6
+ return container.includes(dataOrContainer);
7
+ }
@@ -0,0 +1,11 @@
1
+ import { purry } from '../function/purry';
2
+ export function fromKeys(...args) {
3
+ return purry(fromKeysImplementation, args);
4
+ }
5
+ function fromKeysImplementation(data, mapper) {
6
+ const result = {};
7
+ for (const key of data) {
8
+ result[key] = mapper(key);
9
+ }
10
+ return result;
11
+ }
@@ -1,7 +1,7 @@
1
1
  export * from './add-prop';
2
2
  export * from './clone';
3
- export * from './equals';
4
3
  export * from './for-each-obj';
4
+ export * from './from-keys';
5
5
  export * from './from-pairs';
6
6
  export * from './index';
7
7
  export * from './invert';
@@ -2,6 +2,6 @@ import { purry } from '../function/purry';
2
2
  export function merge(...args) {
3
3
  return purry(merge_, args);
4
4
  }
5
- function merge_(a, b) {
6
- return Object.assign({}, a, b);
5
+ function merge_(data, source) {
6
+ return { ...data, ...source };
7
7
  }
@@ -9,8 +9,9 @@ function omitBy_(object, fn) {
9
9
  }
10
10
  const out = {};
11
11
  for (const key of keys.strict(object)) {
12
- if (!fn(object[key], key)) {
13
- out[key] = object[key];
12
+ const k = key;
13
+ if (!fn(object[k], k)) {
14
+ out[k] = object[k];
14
15
  }
15
16
  }
16
17
  return out;
@@ -9,8 +9,9 @@ function pickBy_(data, fn) {
9
9
  }
10
10
  const out = {};
11
11
  for (const key of keys.strict(data)) {
12
- if (fn(data[key], key)) {
13
- out[key] = data[key];
12
+ const k = key;
13
+ if (fn(data[k], k)) {
14
+ out[k] = data[k];
14
15
  }
15
16
  }
16
17
  return out;