@dxos/util 0.5.3-main.bc67fdb → 0.5.3-main.bfb5bca

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 (41) hide show
  1. package/dist/lib/browser/index.mjs +67 -0
  2. package/dist/lib/browser/index.mjs.map +4 -4
  3. package/dist/lib/browser/meta.json +1 -1
  4. package/dist/lib/node/index.cjs +66 -0
  5. package/dist/lib/node/index.cjs.map +4 -4
  6. package/dist/lib/node/meta.json +1 -1
  7. package/dist/types/src/array.d.ts +25 -0
  8. package/dist/types/src/array.d.ts.map +1 -0
  9. package/dist/types/src/array.test.d.ts +2 -0
  10. package/dist/types/src/array.test.d.ts.map +1 -0
  11. package/dist/types/src/assign.d.ts.map +1 -1
  12. package/dist/types/src/callback.d.ts.map +1 -1
  13. package/dist/types/src/complex.d.ts.map +1 -1
  14. package/dist/types/src/defer-function.d.ts.map +1 -1
  15. package/dist/types/src/di-key.d.ts.map +1 -1
  16. package/dist/types/src/entry.d.ts.map +1 -1
  17. package/dist/types/src/for-each-async.d.ts.map +1 -1
  18. package/dist/types/src/index.d.ts +3 -0
  19. package/dist/types/src/index.d.ts.map +1 -1
  20. package/dist/types/src/join-tables.d.ts +7 -0
  21. package/dist/types/src/join-tables.d.ts.map +1 -0
  22. package/dist/types/src/join-tables.test.d.ts +2 -0
  23. package/dist/types/src/join-tables.test.d.ts.map +1 -0
  24. package/dist/types/src/map-values.d.ts.map +1 -1
  25. package/dist/types/src/map.d.ts.map +1 -1
  26. package/dist/types/src/order.d.ts.map +1 -1
  27. package/dist/types/src/reducers.d.ts.map +1 -1
  28. package/dist/types/src/sort.d.ts.map +1 -1
  29. package/dist/types/src/throw-unhandled-error.d.ts +7 -0
  30. package/dist/types/src/throw-unhandled-error.d.ts.map +1 -0
  31. package/dist/types/src/types.d.ts +1 -1
  32. package/dist/types/src/types.d.ts.map +1 -1
  33. package/dist/types/src/uint8array.d.ts +1 -0
  34. package/dist/types/src/uint8array.d.ts.map +1 -1
  35. package/package.json +6 -6
  36. package/src/array.test.ts +99 -0
  37. package/src/array.ts +71 -0
  38. package/src/index.ts +3 -0
  39. package/src/join-tables.test.ts +30 -0
  40. package/src/join-tables.ts +38 -0
  41. 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,2 @@
1
+ export {};
2
+ //# sourceMappingURL=array.test.d.ts.map
@@ -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,gBASzE,CAAC;AAEF,eAAO,MAAM,OAAO,QAAS,GAAG,QAAQ,SAAS,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,KAAG,OAAO,GAAG,SAMhF,CAAC"}
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,sDAmB7B,CAAC"}
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":"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"}
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,mEAEX,CAAC"}
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;yBAIH,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
+ {"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,6DAAsF,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
+ {"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,qCAAsC,MAAM,KAAK,QAAQ,IAAI,CAAC,oBAA+B,CAAC"}
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,2 @@
1
+ export {};
2
+ //# sourceMappingURL=join-tables.test.d.ts.map
@@ -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,qDAAsD,MAAM,4BAMjF,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,aAAa,UAAW,GAAG,cAAc,GAAG,mBAAmB,GAAG,KAAK,GAAG,KAAK,GAAG,KAAG,GAEjG,CAAC"}
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,0DAQtB,CAAC"}
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,iEAkB5B,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,+EAU5B,CAAC"}
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,mDACqE,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,oEAgC3B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,SAAS,yDAMrB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,aAAa,8DAMzB,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,kDAOxB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,kBAAkB,gCACN,MAAM,sDAS7B,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,6BAatE,CAAC"}
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,kFAatB,CAAC"}
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,6CAAuD,CAAC;AAC/E,eAAO,MAAM,WAAW,0CAAkF,CAAC;AAC3G,eAAO,MAAM,oBAAoB,wDAAwE,CAAC;AAE1G,eAAO,MAAM,SAAS,gDAAiE,CAAC;AAExF;;GAEG;AACH,eAAO,MAAM,aAAa,0DAMzB,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;;eAahC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,SAAS,wBAAyB,MAAM,MAAM,MAAM,QAGhE,CAAC;AAEF,eAAO,MAAM,YAAY,UAAW,MAAM,GAAG,SAAS,iBAAiB,MAAM,uBAO5E,CAAC"}
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,3 +1,4 @@
1
+ /// <reference types="node" />
1
2
  export declare const arraysEqual: (a: Uint8Array, b: Uint8Array) => boolean;
2
3
  /**
3
4
  * Non-copying conversion of Uint8Array to Buffer.
@@ -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-main.bc67fdb",
3
+ "version": "0.5.3-main.bfb5bca",
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.3-main.bc67fdb",
20
- "@dxos/invariant": "0.5.3-main.bc67fdb",
21
- "@dxos/node-std": "0.5.3-main.bc67fdb",
22
- "@dxos/keys": "0.5.3-main.bc67fdb"
19
+ "@dxos/debug": "0.5.3-main.bfb5bca",
20
+ "@dxos/keys": "0.5.3-main.bfb5bca",
21
+ "@dxos/invariant": "0.5.3-main.bfb5bca",
22
+ "@dxos/node-std": "0.5.3-main.bfb5bca"
23
23
  },
24
24
  "devDependencies": {
25
- "@dxos/crypto": "0.5.3-main.bc67fdb"
25
+ "@dxos/crypto": "0.5.3-main.bfb5bca"
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
+ };