@takeshape/util 8.161.0 → 8.166.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.
package/dist/arrays.d.ts CHANGED
@@ -1,5 +1,6 @@
1
1
  export declare function arrayContainsAll<T>(a: T[], b: T[]): boolean;
2
2
  export declare function setIsEqual<T>(a: T[], b: T[]): boolean;
3
+ export declare function arrayStartsWith<T>(a: T[], b: T[]): boolean;
3
4
  export declare function isDefined<T>(x: T | null | undefined): x is T;
4
5
  export declare function toArray<T>(obj: T | null): T[];
5
6
  //# sourceMappingURL=arrays.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"arrays.d.ts","sourceRoot":"","sources":["../../src/arrays.ts"],"names":[],"mappings":"AAAA,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,OAAO,CAE3D;AAED,wBAAgB,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,OAAO,CAErD;AAED,wBAAgB,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,SAAS,GAAG,CAAC,IAAI,CAAC,CAE5D;AAED,wBAAgB,OAAO,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,EAAE,CAE7C"}
1
+ {"version":3,"file":"arrays.d.ts","sourceRoot":"","sources":["../../src/arrays.ts"],"names":[],"mappings":"AAAA,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,OAAO,CAE3D;AAED,wBAAgB,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,OAAO,CAWrD;AAED,wBAAgB,eAAe,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,OAAO,CAY1D;AAED,wBAAgB,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,SAAS,GAAG,CAAC,IAAI,CAAC,CAE5D;AAED,wBAAgB,OAAO,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,EAAE,CAE7C"}
package/dist/arrays.js CHANGED
@@ -4,6 +4,7 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.arrayContainsAll = arrayContainsAll;
7
+ exports.arrayStartsWith = arrayStartsWith;
7
8
  exports.isDefined = isDefined;
8
9
  exports.setIsEqual = setIsEqual;
9
10
  exports.toArray = toArray;
@@ -13,7 +14,30 @@ function arrayContainsAll(a, b) {
13
14
  }
14
15
 
15
16
  function setIsEqual(a, b) {
16
- return arrayContainsAll(a, b) && arrayContainsAll(b, a);
17
+ if (a.length !== b.length) {
18
+ return false;
19
+ }
20
+
21
+ if (a.length === 0) {
22
+ return true;
23
+ }
24
+
25
+ const refSet = new Set(a);
26
+ return b.every(value => refSet.has(value));
27
+ }
28
+
29
+ function arrayStartsWith(a, b) {
30
+ if (a.length < b.length) {
31
+ return false;
32
+ }
33
+
34
+ for (let i = 0; i < b.length; i++) {
35
+ if (a[i] !== b[i]) {
36
+ return false;
37
+ }
38
+ }
39
+
40
+ return true;
17
41
  }
18
42
 
19
43
  function isDefined(x) {
package/es/arrays.js CHANGED
@@ -2,7 +2,29 @@ export function arrayContainsAll(a, b) {
2
2
  return a.every(value => b.includes(value));
3
3
  }
4
4
  export function setIsEqual(a, b) {
5
- return arrayContainsAll(a, b) && arrayContainsAll(b, a);
5
+ if (a.length !== b.length) {
6
+ return false;
7
+ }
8
+
9
+ if (a.length === 0) {
10
+ return true;
11
+ }
12
+
13
+ const refSet = new Set(a);
14
+ return b.every(value => refSet.has(value));
15
+ }
16
+ export function arrayStartsWith(a, b) {
17
+ if (a.length < b.length) {
18
+ return false;
19
+ }
20
+
21
+ for (let i = 0; i < b.length; i++) {
22
+ if (a[i] !== b[i]) {
23
+ return false;
24
+ }
25
+ }
26
+
27
+ return true;
6
28
  }
7
29
  export function isDefined(x) {
8
30
  return x !== null && x !== undefined;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@takeshape/util",
3
- "version": "8.161.0",
3
+ "version": "8.166.0",
4
4
  "description": "Shared utilities",
5
5
  "homepage": "https://www.takeshape.io",
6
6
  "repository": {
@@ -21,7 +21,7 @@
21
21
  "es"
22
22
  ],
23
23
  "dependencies": {
24
- "@takeshape/routing": "8.161.0",
24
+ "@takeshape/routing": "8.166.0",
25
25
  "@types/url-parse": "^1.4.4",
26
26
  "aws-sdk": "2.1096.0",
27
27
  "classnames": "^2.2.5",