@dxos/util 0.5.2 → 0.5.3-main.056e7da
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/lib/browser/index.mjs +67 -0
- package/dist/lib/browser/index.mjs.map +4 -4
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/node/index.cjs +66 -0
- package/dist/lib/node/index.cjs.map +4 -4
- package/dist/lib/node/meta.json +1 -1
- package/dist/types/src/array.d.ts +25 -0
- package/dist/types/src/array.d.ts.map +1 -0
- package/dist/types/src/array.test.d.ts +2 -0
- package/dist/types/src/array.test.d.ts.map +1 -0
- package/dist/types/src/assign.d.ts.map +1 -1
- package/dist/types/src/callback.d.ts.map +1 -1
- package/dist/types/src/complex.d.ts.map +1 -1
- package/dist/types/src/defer-function.d.ts.map +1 -1
- package/dist/types/src/di-key.d.ts.map +1 -1
- package/dist/types/src/entry.d.ts.map +1 -1
- package/dist/types/src/for-each-async.d.ts.map +1 -1
- package/dist/types/src/index.d.ts +3 -0
- package/dist/types/src/index.d.ts.map +1 -1
- package/dist/types/src/join-tables.d.ts +7 -0
- package/dist/types/src/join-tables.d.ts.map +1 -0
- package/dist/types/src/join-tables.test.d.ts +2 -0
- package/dist/types/src/join-tables.test.d.ts.map +1 -0
- package/dist/types/src/map-values.d.ts.map +1 -1
- package/dist/types/src/map.d.ts.map +1 -1
- package/dist/types/src/order.d.ts.map +1 -1
- package/dist/types/src/reducers.d.ts.map +1 -1
- package/dist/types/src/sort.d.ts.map +1 -1
- package/dist/types/src/throw-unhandled-error.d.ts +7 -0
- package/dist/types/src/throw-unhandled-error.d.ts.map +1 -0
- package/dist/types/src/types.d.ts +1 -1
- package/dist/types/src/types.d.ts.map +1 -1
- package/dist/types/src/uint8array.d.ts +1 -0
- package/dist/types/src/uint8array.d.ts.map +1 -1
- package/package.json +6 -6
- package/src/array.test.ts +99 -0
- package/src/array.ts +71 -0
- package/src/index.ts +3 -0
- package/src/join-tables.test.ts +30 -0
- package/src/join-tables.ts +38 -0
- package/src/throw-unhandled-error.ts +14 -0
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
export type Comparator<A, B = A> = (a: A, b: B) => boolean;
|
|
2
|
+
export type DiffResult<A, B = A> = {
|
|
3
|
+
added: B[];
|
|
4
|
+
updated: B[];
|
|
5
|
+
removed: A[];
|
|
6
|
+
};
|
|
7
|
+
/**
|
|
8
|
+
* Compute diff between two arrays.
|
|
9
|
+
* @param previous
|
|
10
|
+
* @param next
|
|
11
|
+
* @param comparator
|
|
12
|
+
*/
|
|
13
|
+
export declare const diff: <A, B = A>(previous: readonly A[], next: readonly B[], comparator: Comparator<A, B>) => DiffResult<A, B>;
|
|
14
|
+
export declare const intersection: <A, B = A>(a: A[], b: B[], comparator: Comparator<A, B>) => A[];
|
|
15
|
+
/**
|
|
16
|
+
* Returns a new array with only the first instance of each unique item
|
|
17
|
+
* based on a specified property.
|
|
18
|
+
*
|
|
19
|
+
* @typeParam T - The type of items in the input array.
|
|
20
|
+
* @param array - The array to filter for distinct items.
|
|
21
|
+
* @param key - The property key to determine uniqueness for each item.
|
|
22
|
+
* @returns A new array with only distinct items based on the specified property.
|
|
23
|
+
*/
|
|
24
|
+
export declare const distinctBy: <T, K>(array: T[], selector: (item: T) => K) => T[];
|
|
25
|
+
//# sourceMappingURL=array.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"array.d.ts","sourceRoot":"","sources":["../../../src/array.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,UAAU,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,OAAO,CAAC;AAE3D,MAAM,MAAM,UAAU,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI;IACjC,KAAK,EAAE,CAAC,EAAE,CAAC;IACX,OAAO,EAAE,CAAC,EAAE,CAAC;IACb,OAAO,EAAE,CAAC,EAAE,CAAC;CACd,CAAC;AAEF;;;;;GAKG;AAEH,eAAO,MAAM,IAAI,uBACL,SAAS,CAAC,EAAE,QAChB,SAAS,CAAC,EAAE,cACN,WAAW,CAAC,EAAE,CAAC,CAAC,KAC3B,WAAW,CAAC,EAAE,CAAC,CAoBjB,CAAC;AAGF,eAAO,MAAM,YAAY,gBAAiB,CAAC,EAAE,KAAK,CAAC,EAAE,cAAc,WAAW,CAAC,EAAE,CAAC,CAAC,KAAG,CAAC,EACvB,CAAC;AAEjE;;;;;;;;GAQG;AACH,eAAO,MAAM,UAAU,gBAAiB,CAAC,EAAE,YAAY,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,KAAG,CAAC,EAYxE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"array.test.d.ts","sourceRoot":"","sources":["../../../src/array.test.ts"],"names":[],"mappings":""}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"assign.d.ts","sourceRoot":"","sources":["../../../src/assign.ts"],"names":[],"mappings":"AAMA;;;GAGG;AACH,eAAO,MAAM,UAAU,WAAY,GAAG,QAAQ,SAAS,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,
|
|
1
|
+
{"version":3,"file":"assign.d.ts","sourceRoot":"","sources":["../../../src/assign.ts"],"names":[],"mappings":"AAMA;;;GAGG;AACH,eAAO,MAAM,UAAU,WAAY,GAAG,QAAQ,SAAS,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,SAAS,CAAC,KAAG,CAStF,CAAC;AAEF,eAAO,MAAM,OAAO,QAAS,GAAG,QAAQ,SAAS,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,KAAG,OAAO,GAAG,SAMhF,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"callback.d.ts","sourceRoot":"","sources":["../../../src/callback.ts"],"names":[],"mappings":"AAMA;;;;;;;GAOG;AAEH,qBAAa,QAAQ,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG;IACrD,OAAO,CAAC,SAAS,CAAgB;IAE1B,IAAI,CAAC,GAAG,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC;IAK3C,SAAS,CAAC,GAAG,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,GAAG,SAAS;IAI5D,GAAG,CAAC,QAAQ,EAAE,CAAC;IAKf,KAAK;CAGb;AAED,MAAM,MAAM,YAAY,CAAC,CAAC,IAAI;IAAE,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,CAAA;CAAE,CAAC;AAEnD;;;GAGG;AACH,eAAO,MAAM,iBAAiB,
|
|
1
|
+
{"version":3,"file":"callback.d.ts","sourceRoot":"","sources":["../../../src/callback.ts"],"names":[],"mappings":"AAMA;;;;;;;GAOG;AAEH,qBAAa,QAAQ,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG;IACrD,OAAO,CAAC,SAAS,CAAgB;IAE1B,IAAI,CAAC,GAAG,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC;IAK3C,SAAS,CAAC,GAAG,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,GAAG,SAAS;IAI5D,GAAG,CAAC,QAAQ,EAAE,CAAC;IAKf,KAAK;CAGb;AAED,MAAM,MAAM,YAAY,CAAC,CAAC,IAAI;IAAE,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,CAAA;CAAE,CAAC;AAEnD;;;GAGG;AACH,eAAO,MAAM,iBAAiB,+BAAgC,aAAa,CAAC,CAAC,QAmB5E,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"complex.d.ts","sourceRoot":"","sources":["../../../src/complex.ts"],"names":[],"mappings":";AAIA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIpC,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG,SAAS,CAAC;AAErE,MAAM,MAAM,mBAAmB,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,SAAS,CAAC;AAI7D;;;;;;;GAOG;AACH,qBAAa,UAAU,CAAC,CAAC,CAAE,YAAW,GAAG,CAAC,CAAC,CAAC;IAKxC,OAAO,CAAC,QAAQ,CAAC,WAAW;IAJ9B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA2B;gBAIhC,WAAW,EAAE,mBAAmB,CAAC,CAAC,CAAC,EACpD,MAAM,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI;IAS7B,QAAQ;IAIR,MAAM;;;IAMN,CAAC,OAAO,CAAC,MAAM,CAAC;IAIhB,GAAG,CAAC,KAAK,EAAE,CAAC,GAAG,IAAI;IAKnB,KAAK,IAAI,IAAI;IAIb,MAAM,CAAC,KAAK,EAAE,CAAC,GAAG,OAAO;IAIzB,OAAO,CAAC,UAAU,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,CAAC,EAAE,GAAG,GAAG,IAAI;IAQpF,GAAG,CAAC,KAAK,EAAE,CAAC,GAAG,OAAO;IAItB,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,gBAAgB,CAAC,CAAC,CAAC;IAIvC,OAAO,IAAI,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAMpC,IAAI,IAAI,gBAAgB,CAAC,CAAC,CAAC;IAI3B,MAAM,IAAI,gBAAgB,CAAC,CAAC,CAAC;IAI7B,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,MAAM,CAEjC;CACF;AAED,MAAM,MAAM,qBAAqB,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,CAAC;AAE1F;;GAEG;AACH,eAAO,MAAM,OAAO,
|
|
1
|
+
{"version":3,"file":"complex.d.ts","sourceRoot":"","sources":["../../../src/complex.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"defer-function.d.ts","sourceRoot":"","sources":["../../../src/defer-function.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAKH,eAAO,MAAM,aAAa,uBACH,GAAG,EAAE,KAAK,GAAG,
|
|
1
|
+
{"version":3,"file":"defer-function.d.ts","sourceRoot":"","sources":["../../../src/defer-function.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAKH,eAAO,MAAM,aAAa,uBACH,GAAG,EAAE,KAAK,GAAG,cAAc,MAAM,CAAC,eAC7C,WAAW,CAAC,CAAC,KAAG,WAAW,CAAC,CACf,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"di-key.d.ts","sourceRoot":"","sources":["../../../src/di-key.ts"],"names":[],"mappings":";AAIA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIpC,eAAO,MAAM,eAAe,eAAsB,CAAC;AAEnD,MAAM,MAAM,gBAAgB,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC;AAE1C,qBAAa,WAAW,CAAC,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC;gBAEH,IAAI,EAAE,MAAM;IAIjB,CAAC,eAAe,CAAC,CAAC,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAa;IAE3D,QAAQ;IAIR,CAAC,OAAO,CAAC,MAAM,CAAC;CAGjB;AAED,MAAM,MAAM,gBAAgB,CAAC,CAAC,IAAI;IAChC,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;IAExB,CAAC,eAAe,CAAC,CAAC,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAC;CACzC,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,MAAM,KAAK,CAAC,CAAC,IACf;IACE,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;CACzB,GACD,WAAW,CAAC,CAAC,CAAC,CAAC;AAEnB,eAAO,MAAM,KAAK;IAChB;;;;;;OAMG;;oBAKa,MAAM;
|
|
1
|
+
{"version":3,"file":"di-key.d.ts","sourceRoot":"","sources":["../../../src/di-key.ts"],"names":[],"mappings":";AAIA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIpC,eAAO,MAAM,eAAe,eAAsB,CAAC;AAEnD,MAAM,MAAM,gBAAgB,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC;AAE1C,qBAAa,WAAW,CAAC,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC;gBAEH,IAAI,EAAE,MAAM;IAIjB,CAAC,eAAe,CAAC,CAAC,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAa;IAE3D,QAAQ;IAIR,CAAC,OAAO,CAAC,MAAM,CAAC;CAGjB;AAED,MAAM,MAAM,gBAAgB,CAAC,CAAC,IAAI;IAChC,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;IAExB,CAAC,eAAe,CAAC,CAAC,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAC;CACzC,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,MAAM,KAAK,CAAC,CAAC,IACf;IACE,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;CACzB,GACD,WAAW,CAAC,CAAC,CAAC,CAAC;AAEnB,eAAO,MAAM,KAAK;IAChB;;;;;;OAMG;;oBAKa,MAAM,GAAG,MAAM,CAAC,CAAC;yBAId,MAAM;kBAMX,MAAM,GAAG,CAAC,GAAG,MAAM;IAWjC;;;;;;OAMG;oBACa,MAAM,GAAG,CAAC,EAAE;;gCASP,QAAQ,GAAG,EAAE,GAAG,CAAC,oBAAoB,MAAM,GAAG,CAAC,EAAE,GAAG,QAAQ,GAAG,EAAE,GAAG,CAAC;kDASnD,MAAM,GAAG,CAAC,EAAE;CAGjD,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"entry.d.ts","sourceRoot":"","sources":["../../../src/entry.ts"],"names":[],"mappings":"AAIA;;GAEG;AACH,eAAO,MAAM,KAAK,
|
|
1
|
+
{"version":3,"file":"entry.d.ts","sourceRoot":"","sources":["../../../src/entry.ts"],"names":[],"mappings":"AAIA;;GAEG;AACH,eAAO,MAAM,KAAK,cAAe,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,KAAG,SAAS,CAAC,EAAE,CAAC,EAAE,SAAS,CAA2B,CAAC;AAEzG,qBAAa,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;IAMzB,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,IAAI;IAGvB,IAAI,GAAG,IAAI,CAAC,CAEX;IAED,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,CAEjB;IAED,QAAQ,CAAC,KAAK,EAAE,CAAC,GAAG,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC;IAOzC,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,GAAG,QAAQ,CAAC,EAAE,EAAE,EAAE,EAAE,SAAS,CAAC;CAGhG"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"for-each-async.d.ts","sourceRoot":"","sources":["../../../src/for-each-async.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,YAAY,
|
|
1
|
+
{"version":3,"file":"for-each-async.d.ts","sourceRoot":"","sources":["../../../src/for-each-async.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,YAAY,aAAc,CAAC,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,MAAM,KAAK,QAAQ,IAAI,CAAC,oBAA+B,CAAC"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
export * from './array';
|
|
1
2
|
export * from './assign';
|
|
2
3
|
export * from './binder';
|
|
3
4
|
export * from './bitfield';
|
|
@@ -28,4 +29,6 @@ export * from './weak';
|
|
|
28
29
|
export * from './map-values';
|
|
29
30
|
export * from './defer';
|
|
30
31
|
export * from './circular-buffer';
|
|
32
|
+
export * from './join-tables';
|
|
33
|
+
export * from './throw-unhandled-error';
|
|
31
34
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAIA,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC;AAC9B,cAAc,SAAS,CAAC;AACxB,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,QAAQ,CAAC;AACvB,cAAc,OAAO,CAAC;AACtB,cAAc,SAAS,CAAC;AACxB,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,YAAY,CAAC;AAC3B,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,QAAQ,CAAC;AACvB,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,OAAO,CAAC;AACtB,cAAc,kBAAkB,CAAC;AACjC,cAAc,QAAQ,CAAC;AACvB,cAAc,cAAc,CAAC;AAC7B,cAAc,SAAS,CAAC;AACxB,cAAc,mBAAmB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAIA,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC;AAC9B,cAAc,SAAS,CAAC;AACxB,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,QAAQ,CAAC;AACvB,cAAc,OAAO,CAAC;AACtB,cAAc,SAAS,CAAC;AACxB,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,YAAY,CAAC;AAC3B,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,QAAQ,CAAC;AACvB,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,OAAO,CAAC;AACtB,cAAc,kBAAkB,CAAC;AACjC,cAAc,QAAQ,CAAC;AACvB,cAAc,cAAc,CAAC;AAC7B,cAAc,SAAS,CAAC;AACxB,cAAc,mBAAmB,CAAC;AAClC,cAAc,eAAe,CAAC;AAC9B,cAAc,yBAAyB,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Joins two untyped tables on the given columns.
|
|
3
|
+
* @param leftColumn The column to join on in the first table.
|
|
4
|
+
* @param rightColumn The column to join on in the second table.
|
|
5
|
+
*/
|
|
6
|
+
export declare const joinTables: (leftColumn: string, rightColumn: string, left: Record<string, any>[], right: Record<string, any>[]) => any[];
|
|
7
|
+
//# sourceMappingURL=join-tables.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"join-tables.d.ts","sourceRoot":"","sources":["../../../src/join-tables.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,eAAO,MAAM,UAAU,eACT,MAAM,eACL,MAAM,QACb,OAAO,MAAM,EAAE,GAAG,CAAC,EAAE,SACpB,OAAO,MAAM,EAAE,GAAG,CAAC,EAAE,UAwB7B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"join-tables.test.d.ts","sourceRoot":"","sources":["../../../src/join-tables.test.ts"],"names":[],"mappings":""}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"map-values.d.ts","sourceRoot":"","sources":["../../../src/map-values.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,SAAS,
|
|
1
|
+
{"version":3,"file":"map-values.d.ts","sourceRoot":"","sources":["../../../src/map-values.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,SAAS,cAAe,OAAO,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC,KAAG,OAAO,MAAM,EAAE,CAAC,CAM1G,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,aAAa,UAAW,GAAG,MAAM,CAAC,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,GAAG,KAAK,GAAG,KAAG,GAEjG,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"map.d.ts","sourceRoot":"","sources":["../../../src/map.ts"],"names":[],"mappings":"AAIA,UAAU,IAAI,CAAC,CAAC,EAAE,CAAC;IACjB,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC;IAC3B,GAAG,CAAC,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC;CAC7B;AAED;;GAEG;AACH,eAAO,MAAM,UAAU,
|
|
1
|
+
{"version":3,"file":"map.d.ts","sourceRoot":"","sources":["../../../src/map.ts"],"names":[],"mappings":"AAIA,UAAU,IAAI,CAAC,CAAC,EAAE,CAAC;IACjB,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC;IAC3B,GAAG,CAAC,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC;CAC7B;AAED;;GAEG;AACH,eAAO,MAAM,UAAU,cAAe,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,MAQ3E,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"order.d.ts","sourceRoot":"","sources":["../../../src/order.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC;AAI/B;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,
|
|
1
|
+
{"version":3,"file":"order.d.ts","sourceRoot":"","sources":["../../../src/order.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC;AAI/B;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,uBAAwB,OAAO,MAAM,EAAE,CAAC,CAAC,sBAAwB,CAAC,EAkB9F,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,uBAAwB,OAAO,MAAM,EAAE,CAAC,CAAC,sBAAwB,OAAO,MAAM,EAAE,CAAC,CAU7G,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reducers.d.ts","sourceRoot":"","sources":["../../../src/reducers.ts"],"names":[],"mappings":"AAUA,MAAM,MAAM,QAAQ,CAAC,CAAC,EAAE,CAAC,IAAI,MAAM,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;AAExD,eAAO,MAAM,QAAQ,
|
|
1
|
+
{"version":3,"file":"reducers.d.ts","sourceRoot":"","sources":["../../../src/reducers.ts"],"names":[],"mappings":"AAUA,MAAM,MAAM,QAAQ,CAAC,CAAC,EAAE,CAAC,IAAI,MAAM,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;AAExD,eAAO,MAAM,QAAQ,gBAAiB,CAAC,YAAY,SAAS,CAAC,EAAE,CAAC,CAAC,QACyB,CAAC;AAE3F,eAAO,MAAM,MAAM,WAAY,MAAM,EAAE,WAOtC,CAAC;AAGF,MAAM,MAAM,eAAe,GAAG;IAC5B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,eAAe,cAAe,CAAC,EAAE,YAAY,SAAS,CAAC,EAAE,MAAM,CAAC,oBAgC5E,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,SAAS,iBAAkB,CAAC,EAAE,YAAY,SAAS,CAAC,EAAE,CAAC,CAAC,KAAG,IAAI,CAAC,CAM5E,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,aAAa,iBAAkB,CAAC,EAAE,YAAY,SAAS,CAAC,EAAE,CAAC,CAAC,KAAG,IAAI,CAAC,EAAE,CAAC,EAAE,CAMrF,CAAC;AAEF;;GAEG;AACH,MAAM,WAAW,OAAO,CAAC,CAAC,EAAE,CAAC;IAC3B;;OAEG;IACH,YAAY,IAAI,CAAC,CAAC;IAElB;;OAEG;IACH,MAAM,CAAC,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC;CAC/B;AAED;;GAEG;AACH,eAAO,MAAM,YAAY,kBAAmB,QAAQ,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC,EAAE,KAAG,CAOxE,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,kBAAkB,kBACpB,CAAC,KAAK,EAAE,CAAC,KAAK,MAAM,OACxB,QAAQ,CAAC,EAAE,CAAC,CAAC,KACjB,QAAQ,CAAC,EAAE,OAAO,MAAM,EAAE,CAAC,CAAC,CAO7B,CAAC;AAEH,MAAM,MAAM,UAAU,GAAG;IAAE,SAAS,EAAE,IAAI,GAAG,MAAM,GAAG,MAAM,CAAA;CAAE,CAAC;AAC/D,MAAM,MAAM,UAAU,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAE1E,eAAO,MAAM,OAAO,UAAW,IAAI,GAAG,MAAM,GAAG,MAAM,KAAG,IAAyD,CAAC;AAElH;;GAEG;AACH,eAAO,MAAM,mBAAmB,iCAAkC,MAAM,KAAG,QAAQ,CAAC,EAAE,UAAU,EAAE,CAahG,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sort.d.ts","sourceRoot":"","sources":["../../../src/sort.ts"],"names":[],"mappings":"AAOA,KAAK,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,MAAM,CAAC;AAEzC,eAAO,MAAM,aAAa,yBAEpB,GAAG,KAAK,GAAG,WACgC,CAAC;AAElD,eAAO,MAAM,aAAa,oDAEpB,MAAM,KAAK,MAAM,WAMpB,CAAC;AAEJ,eAAO,MAAM,aAAa,wCACc,MAAM,UAAU,QAAQ,GAAG,CAAC,oBAAe,QAAQ,GAAG,CAEjD,CAAC;AAE9C,eAAO,MAAM,YAAY,
|
|
1
|
+
{"version":3,"file":"sort.d.ts","sourceRoot":"","sources":["../../../src/sort.ts"],"names":[],"mappings":"AAOA,KAAK,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,MAAM,CAAC;AAEzC,eAAO,MAAM,aAAa,yBAEpB,GAAG,KAAK,GAAG,WACgC,CAAC;AAElD,eAAO,MAAM,aAAa,oDAEpB,MAAM,KAAK,MAAM,WAMpB,CAAC;AAEJ,eAAO,MAAM,aAAa,wCACc,MAAM,UAAU,QAAQ,GAAG,CAAC,oBAAe,QAAQ,GAAG,CAEjD,CAAC;AAE9C,eAAO,MAAM,YAAY,2CACkB,QAAQ,CAAC,CAAC,EAAE,SACjD,CAAC,KAAK,CAAC,WAWV,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Throws an unhandled error for the runtime to catch.
|
|
3
|
+
* Does not cause stack unwinding.
|
|
4
|
+
* Error will be thrown in the next microtask.
|
|
5
|
+
*/
|
|
6
|
+
export declare const throwUnhandledError: (error: Error) => void;
|
|
7
|
+
//# sourceMappingURL=throw-unhandled-error.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"throw-unhandled-error.d.ts","sourceRoot":"","sources":["../../../src/throw-unhandled-error.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,eAAO,MAAM,mBAAmB,UAAW,KAAK,SAI/C,CAAC"}
|
|
@@ -32,6 +32,6 @@ export declare const stripUndefinedValues: <T extends {
|
|
|
32
32
|
/**
|
|
33
33
|
* Swap position of element within array.
|
|
34
34
|
*/
|
|
35
|
-
export declare const arrayMove: <T>(array: T[], from: number, to: number) => T
|
|
35
|
+
export declare const arrayMove: <T>(array: T[], from: number, to: number) => Array<T>;
|
|
36
36
|
export declare const safeParseInt: (value: string | undefined, defaultValue?: number) => number | undefined;
|
|
37
37
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/types.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,aAAa,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;AAE3D,MAAM,MAAM,QAAQ,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC;AAElC,MAAM,MAAM,YAAY,CAAC,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;AAE7C;;GAEG;AACH,MAAM,MAAM,KAAK,GAAG,KAAK,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,GAAG,SAAS,CAAC;AAEtD;;GAEG;AACH,MAAM,MAAM,aAAa,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;AAE7C;;;;GAIG;AAEH,eAAO,MAAM,UAAU,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/types.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,aAAa,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;AAE3D,MAAM,MAAM,QAAQ,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC;AAElC,MAAM,MAAM,YAAY,CAAC,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;AAE7C;;GAEG;AACH,MAAM,MAAM,KAAK,GAAG,KAAK,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,GAAG,SAAS,CAAC;AAEtD;;GAEG;AACH,MAAM,MAAM,aAAa,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;AAE7C;;;;GAIG;AAEH,eAAO,MAAM,UAAU,aAAc,CAAC,+BAAwC,CAAC;AAC/E,eAAO,MAAM,WAAW,aAAc,CAAC,4BAAmE,CAAC;AAC3G,eAAO,MAAM,oBAAoB,aAAc,CAAC,0CAAyD,CAAC;AAE1G,eAAO,MAAM,SAAS,aAAc,CAAC,GAAG,IAAI,GAAG,SAAS,eAA+B,CAAC;AAExF;;GAEG;AACH,eAAO,MAAM,aAAa,aAAoB,cAAc,aAAa,CAAC,CAAC,CAAC,KAAG,QAAQ,CAAC,CAMvF,CAAC;AAEF,MAAM,MAAM,YAAY,CAAC,IAAI,EAAE,GAAG,SAAS,MAAM,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC;AAEpG;;GAEG;AACH,eAAO,MAAM,oBAAoB;;QAA6C,CAAC,KAAG,CAajF,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,SAAS,aAAc,CAAC,EAAE,QAAQ,MAAM,MAAM,MAAM,KAAG,MAAM,CAAC,CAG1E,CAAC;AAEF,eAAO,MAAM,YAAY,UAAW,MAAM,GAAG,SAAS,iBAAiB,MAAM,uBAO5E,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"uint8array.d.ts","sourceRoot":"","sources":["../../../src/uint8array.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,WAAW,MAAO,UAAU,KAAK,UAAU,KAAG,OAY1D,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,aAAa,UAAW,UAAU,KAAG,MAEjD,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,aAAa,WAAY,MAAM,KAAG,UAE9C,CAAC;AAEF,eAAO,MAAM,aAAa,WAAY,MAAM,KAAG,UAAuD,CAAC;AAEvG,eAAO,MAAM,aAAa,UAAW,UAAU,KAAG,MAA8C,CAAC"}
|
|
1
|
+
{"version":3,"file":"uint8array.d.ts","sourceRoot":"","sources":["../../../src/uint8array.ts"],"names":[],"mappings":";AAIA,eAAO,MAAM,WAAW,MAAO,UAAU,KAAK,UAAU,KAAG,OAY1D,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,aAAa,UAAW,UAAU,KAAG,MAEjD,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,aAAa,WAAY,MAAM,KAAG,UAE9C,CAAC;AAEF,eAAO,MAAM,aAAa,WAAY,MAAM,KAAG,UAAuD,CAAC;AAEvG,eAAO,MAAM,aAAa,UAAW,UAAU,KAAG,MAA8C,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dxos/util",
|
|
3
|
-
"version": "0.5.
|
|
3
|
+
"version": "0.5.3-main.056e7da",
|
|
4
4
|
"description": "Temporary bucket for misc functions, which should graduate into separate packages.",
|
|
5
5
|
"homepage": "https://dxos.org",
|
|
6
6
|
"bugs": "https://github.com/dxos/dxos/issues",
|
|
@@ -16,13 +16,13 @@
|
|
|
16
16
|
"src"
|
|
17
17
|
],
|
|
18
18
|
"dependencies": {
|
|
19
|
-
"@dxos/debug": "0.5.
|
|
20
|
-
"@dxos/invariant": "0.5.
|
|
21
|
-
"@dxos/keys": "0.5.
|
|
22
|
-
"@dxos/node-std": "0.5.
|
|
19
|
+
"@dxos/debug": "0.5.3-main.056e7da",
|
|
20
|
+
"@dxos/invariant": "0.5.3-main.056e7da",
|
|
21
|
+
"@dxos/keys": "0.5.3-main.056e7da",
|
|
22
|
+
"@dxos/node-std": "0.5.3-main.056e7da"
|
|
23
23
|
},
|
|
24
24
|
"devDependencies": {
|
|
25
|
-
"@dxos/crypto": "0.5.
|
|
25
|
+
"@dxos/crypto": "0.5.3-main.056e7da"
|
|
26
26
|
},
|
|
27
27
|
"publishConfig": {
|
|
28
28
|
"access": "public"
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
//
|
|
2
|
+
// Copyright 2024 DXOS.org
|
|
3
|
+
//
|
|
4
|
+
|
|
5
|
+
import { expect } from 'chai';
|
|
6
|
+
import { describe, test } from 'vitest';
|
|
7
|
+
|
|
8
|
+
import { diff, intersection, distinctBy } from './array';
|
|
9
|
+
|
|
10
|
+
describe('diff', () => {
|
|
11
|
+
test('returns the difference between two sets', () => {
|
|
12
|
+
{
|
|
13
|
+
const { added, updated, removed } = diff<number>([], [], (a, b) => a === b);
|
|
14
|
+
expect(added).to.deep.eq([]);
|
|
15
|
+
expect(updated).to.deep.eq([]);
|
|
16
|
+
expect(removed).to.deep.eq([]);
|
|
17
|
+
}
|
|
18
|
+
{
|
|
19
|
+
const previous = [1, 2, 3];
|
|
20
|
+
const next = [2, 3, 4];
|
|
21
|
+
const { added, updated, removed } = diff(previous, next, (a, b) => a === b);
|
|
22
|
+
expect(added).to.deep.eq([4]);
|
|
23
|
+
expect(updated).to.deep.eq([2, 3]);
|
|
24
|
+
expect(removed).to.deep.eq([1]);
|
|
25
|
+
}
|
|
26
|
+
{
|
|
27
|
+
const previous = [{ x: 1 }, { x: 2 }, { x: 3 }];
|
|
28
|
+
const next = [{ x: 2 }, { x: 3 }, { x: 4 }];
|
|
29
|
+
const { added, updated, removed } = diff(previous, next, (a, b) => a.x === b.x);
|
|
30
|
+
expect(added).to.deep.eq([{ x: 4 }]);
|
|
31
|
+
expect(updated).to.deep.eq([{ x: 2 }, { x: 3 }]);
|
|
32
|
+
expect(removed).to.deep.eq([{ x: 1 }]);
|
|
33
|
+
}
|
|
34
|
+
});
|
|
35
|
+
|
|
36
|
+
test('intersection', () => {
|
|
37
|
+
expect(intersection([1, 2, 3], [2, 3, 4], (a, b) => a === b)).to.deep.eq([2, 3]);
|
|
38
|
+
expect(
|
|
39
|
+
intersection([{ x: 1 }, { x: 2 }, { x: 3 }], [{ x: 2 }, { x: 3 }, { x: 4 }], (a, b) => a.x === b.x),
|
|
40
|
+
).to.deep.eq([{ x: 2 }, { x: 3 }]);
|
|
41
|
+
});
|
|
42
|
+
});
|
|
43
|
+
|
|
44
|
+
describe('distinctBy', () => {
|
|
45
|
+
test('filters distinct elements by a given key', () => {
|
|
46
|
+
{
|
|
47
|
+
const array = [1, 2, 2, 3, 4, 4, 5];
|
|
48
|
+
const distinct = distinctBy(array, (a) => a);
|
|
49
|
+
expect(distinct).to.deep.eq([1, 2, 3, 4, 5]);
|
|
50
|
+
}
|
|
51
|
+
{
|
|
52
|
+
const array = [{ x: 1 }, { x: 2 }, { x: 2 }, { x: 3 }, { x: 4 }, { x: 4 }, { x: 5 }];
|
|
53
|
+
const distinct = distinctBy(array, (a) => a.x);
|
|
54
|
+
expect(distinct).to.deep.eq([{ x: 1 }, { x: 2 }, { x: 3 }, { x: 4 }, { x: 5 }]);
|
|
55
|
+
}
|
|
56
|
+
{
|
|
57
|
+
const array = ['apple', 'banana', 'apple', 'orange', 'banana'];
|
|
58
|
+
const distinct = distinctBy(array, (a) => a);
|
|
59
|
+
expect(distinct).to.deep.eq(['apple', 'banana', 'orange']);
|
|
60
|
+
}
|
|
61
|
+
});
|
|
62
|
+
|
|
63
|
+
test('handles empty arrays', () => {
|
|
64
|
+
{
|
|
65
|
+
const array: number[] = [];
|
|
66
|
+
const distinct = distinctBy(array, (a) => a);
|
|
67
|
+
expect(distinct).to.deep.eq([]);
|
|
68
|
+
}
|
|
69
|
+
{
|
|
70
|
+
const array: { x: number }[] = [];
|
|
71
|
+
const distinct = distinctBy(array, (a) => a.x);
|
|
72
|
+
expect(distinct).to.deep.eq([]);
|
|
73
|
+
}
|
|
74
|
+
});
|
|
75
|
+
|
|
76
|
+
test('works with complex objects', () => {
|
|
77
|
+
{
|
|
78
|
+
const array = [{ x: { y: 1 } }, { x: { y: 2 } }, { x: { y: 1 } }];
|
|
79
|
+
const distinct = distinctBy(array, (a) => a.x.y);
|
|
80
|
+
expect(distinct).to.deep.eq([{ x: { y: 1 } }, { x: { y: 2 } }]);
|
|
81
|
+
}
|
|
82
|
+
});
|
|
83
|
+
|
|
84
|
+
test('case sensitivity', () => {
|
|
85
|
+
{
|
|
86
|
+
const array = ['apple', 'Apple', 'APPLE'];
|
|
87
|
+
const distinct = distinctBy(array, (a) => a.toLowerCase());
|
|
88
|
+
expect(distinct).to.deep.eq(['apple']);
|
|
89
|
+
}
|
|
90
|
+
});
|
|
91
|
+
|
|
92
|
+
test('null and undefined values', () => {
|
|
93
|
+
{
|
|
94
|
+
const array = [1, 2, null, 2, null, undefined, 3];
|
|
95
|
+
const distinct = distinctBy(array, (a) => a);
|
|
96
|
+
expect(distinct).to.deep.eq([1, 2, null, undefined, 3]);
|
|
97
|
+
}
|
|
98
|
+
});
|
|
99
|
+
});
|
package/src/array.ts
ADDED
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
//
|
|
2
|
+
// Copyright 2024 DXOS.org
|
|
3
|
+
//
|
|
4
|
+
|
|
5
|
+
export type Comparator<A, B = A> = (a: A, b: B) => boolean;
|
|
6
|
+
|
|
7
|
+
export type DiffResult<A, B = A> = {
|
|
8
|
+
added: B[];
|
|
9
|
+
updated: B[];
|
|
10
|
+
removed: A[];
|
|
11
|
+
};
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* Compute diff between two arrays.
|
|
15
|
+
* @param previous
|
|
16
|
+
* @param next
|
|
17
|
+
* @param comparator
|
|
18
|
+
*/
|
|
19
|
+
// TODO(burdon): Factor out.
|
|
20
|
+
export const diff = <A, B = A>(
|
|
21
|
+
previous: readonly A[],
|
|
22
|
+
next: readonly B[],
|
|
23
|
+
comparator: Comparator<A, B>,
|
|
24
|
+
): DiffResult<A, B> => {
|
|
25
|
+
const remaining = [...previous];
|
|
26
|
+
const result: DiffResult<A, B> = {
|
|
27
|
+
added: [],
|
|
28
|
+
updated: [],
|
|
29
|
+
removed: remaining,
|
|
30
|
+
};
|
|
31
|
+
|
|
32
|
+
// TODO(burdon): Mark and sweep.
|
|
33
|
+
for (const object of next) {
|
|
34
|
+
const index = remaining.findIndex((item) => comparator(item, object));
|
|
35
|
+
if (index === -1) {
|
|
36
|
+
result.added.push(object);
|
|
37
|
+
} else {
|
|
38
|
+
result.updated.push(object);
|
|
39
|
+
remaining.splice(index, 1);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
return result;
|
|
44
|
+
};
|
|
45
|
+
|
|
46
|
+
// TODO(burdon): Factor out.
|
|
47
|
+
export const intersection = <A, B = A>(a: A[], b: B[], comparator: Comparator<A, B>): A[] =>
|
|
48
|
+
a.filter((a) => b.find((b) => comparator(a, b)) !== undefined);
|
|
49
|
+
|
|
50
|
+
/**
|
|
51
|
+
* Returns a new array with only the first instance of each unique item
|
|
52
|
+
* based on a specified property.
|
|
53
|
+
*
|
|
54
|
+
* @typeParam T - The type of items in the input array.
|
|
55
|
+
* @param array - The array to filter for distinct items.
|
|
56
|
+
* @param key - The property key to determine uniqueness for each item.
|
|
57
|
+
* @returns A new array with only distinct items based on the specified property.
|
|
58
|
+
*/
|
|
59
|
+
export const distinctBy = <T, K>(array: T[], selector: (item: T) => K): T[] => {
|
|
60
|
+
const seenKeys = new Set<K>();
|
|
61
|
+
return array.filter((item) => {
|
|
62
|
+
const key = selector(item);
|
|
63
|
+
|
|
64
|
+
if (seenKeys.has(key)) {
|
|
65
|
+
return false;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
seenKeys.add(key);
|
|
69
|
+
return true;
|
|
70
|
+
});
|
|
71
|
+
};
|
package/src/index.ts
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
// Copyright 2020 DXOS.org
|
|
3
3
|
//
|
|
4
4
|
|
|
5
|
+
export * from './array';
|
|
5
6
|
export * from './assign';
|
|
6
7
|
export * from './binder';
|
|
7
8
|
export * from './bitfield';
|
|
@@ -32,3 +33,5 @@ export * from './weak';
|
|
|
32
33
|
export * from './map-values';
|
|
33
34
|
export * from './defer';
|
|
34
35
|
export * from './circular-buffer';
|
|
36
|
+
export * from './join-tables';
|
|
37
|
+
export * from './throw-unhandled-error';
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
//
|
|
2
|
+
// Copyright 2024 DXOS.org
|
|
3
|
+
//
|
|
4
|
+
|
|
5
|
+
import { expect } from 'chai';
|
|
6
|
+
import { describe, test } from 'vitest';
|
|
7
|
+
|
|
8
|
+
import { joinTables } from './join-tables';
|
|
9
|
+
|
|
10
|
+
describe('joinTables', () => {
|
|
11
|
+
test('smoke', () => {
|
|
12
|
+
const left = [
|
|
13
|
+
{ key: 1, name: 'A' },
|
|
14
|
+
{ key: 2, name: 'B' },
|
|
15
|
+
];
|
|
16
|
+
|
|
17
|
+
const right = [
|
|
18
|
+
{ foreignKey: 1, value: 'X' },
|
|
19
|
+
{ foreignKey: 3, value: 'Y' },
|
|
20
|
+
];
|
|
21
|
+
|
|
22
|
+
const result = joinTables('key', 'foreignKey', left, right);
|
|
23
|
+
|
|
24
|
+
expect(result).to.deep.eq([
|
|
25
|
+
{ foreignKey: 1, value: 'X', key: 1, name: 'A' },
|
|
26
|
+
{ key: 2, name: 'B' },
|
|
27
|
+
{ foreignKey: 3, value: 'Y' },
|
|
28
|
+
]);
|
|
29
|
+
});
|
|
30
|
+
});
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Joins two untyped tables on the given columns.
|
|
3
|
+
* @param leftColumn The column to join on in the first table.
|
|
4
|
+
* @param rightColumn The column to join on in the second table.
|
|
5
|
+
*/
|
|
6
|
+
//
|
|
7
|
+
// Copyright 2024 DXOS.org
|
|
8
|
+
//
|
|
9
|
+
|
|
10
|
+
export const joinTables = (
|
|
11
|
+
leftColumn: string,
|
|
12
|
+
rightColumn: string,
|
|
13
|
+
left: Record<string, any>[],
|
|
14
|
+
right: Record<string, any>[],
|
|
15
|
+
) => {
|
|
16
|
+
const map = new Map();
|
|
17
|
+
const used = new Set();
|
|
18
|
+
for (const row of right) {
|
|
19
|
+
map.set(row[rightColumn], row);
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
const result = [];
|
|
23
|
+
for (const row of left) {
|
|
24
|
+
const right = map.get(row[leftColumn]);
|
|
25
|
+
used.add(right);
|
|
26
|
+
|
|
27
|
+
result.push(Object.assign(right ?? {}, row));
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
// Add unmatched rows from the right table.
|
|
31
|
+
for (const row of right) {
|
|
32
|
+
if (!used.has(row)) {
|
|
33
|
+
result.push(row);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
return result;
|
|
38
|
+
};
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Throws an unhandled error for the runtime to catch.
|
|
3
|
+
* Does not cause stack unwinding.
|
|
4
|
+
* Error will be thrown in the next microtask.
|
|
5
|
+
*/
|
|
6
|
+
//
|
|
7
|
+
// Copyright 2024 DXOS.org
|
|
8
|
+
//
|
|
9
|
+
|
|
10
|
+
export const throwUnhandledError = (error: Error) => {
|
|
11
|
+
queueMicrotask(() => {
|
|
12
|
+
throw error;
|
|
13
|
+
});
|
|
14
|
+
};
|