@dxos/util 0.8.1 → 0.8.2-main.10c050d

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 (84) hide show
  1. package/dist/lib/browser/index.mjs +197 -141
  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 +184 -125
  5. package/dist/lib/node/index.cjs.map +4 -4
  6. package/dist/lib/node/meta.json +1 -1
  7. package/dist/lib/node-esm/index.mjs +197 -141
  8. package/dist/lib/node-esm/index.mjs.map +4 -4
  9. package/dist/lib/node-esm/meta.json +1 -1
  10. package/dist/types/src/array-to-hex.d.ts.map +1 -1
  11. package/dist/types/src/array.d.ts +8 -0
  12. package/dist/types/src/array.d.ts.map +1 -1
  13. package/dist/types/src/binder.d.ts.map +1 -1
  14. package/dist/types/src/bitfield.d.ts +1 -1
  15. package/dist/types/src/bitfield.d.ts.map +1 -1
  16. package/dist/types/src/callback-collection.d.ts.map +1 -1
  17. package/dist/types/src/callback.d.ts.map +1 -1
  18. package/dist/types/src/case.d.ts.map +1 -1
  19. package/dist/types/src/chunk-array.d.ts.map +1 -1
  20. package/dist/types/src/clear-undefined.d.ts +5 -0
  21. package/dist/types/src/clear-undefined.d.ts.map +1 -0
  22. package/dist/types/src/complex.d.ts.map +1 -1
  23. package/dist/types/src/deep.d.ts +3 -2
  24. package/dist/types/src/deep.d.ts.map +1 -1
  25. package/dist/types/src/defer-function.d.ts.map +1 -1
  26. package/dist/types/src/defer.d.ts.map +1 -1
  27. package/dist/types/src/di-key.d.ts +3 -3
  28. package/dist/types/src/di-key.d.ts.map +1 -1
  29. package/dist/types/src/entry.d.ts.map +1 -1
  30. package/dist/types/src/first-two-chars.d.ts.map +1 -1
  31. package/dist/types/src/for-each-async.d.ts.map +1 -1
  32. package/dist/types/src/human-hash.d.ts.map +1 -1
  33. package/dist/types/src/index.d.ts +12 -10
  34. package/dist/types/src/index.d.ts.map +1 -1
  35. package/dist/types/src/instance-id.d.ts.map +1 -1
  36. package/dist/types/src/interval.d.ts.map +1 -1
  37. package/dist/types/src/join-tables.d.ts.map +1 -1
  38. package/dist/types/src/json.d.ts.map +1 -1
  39. package/dist/types/src/map-values.d.ts +5 -0
  40. package/dist/types/src/map-values.d.ts.map +1 -1
  41. package/dist/types/src/map.d.ts.map +1 -1
  42. package/dist/types/src/object.d.ts +3 -0
  43. package/dist/types/src/object.d.ts.map +1 -0
  44. package/dist/types/src/order-keys.d.ts.map +1 -1
  45. package/dist/types/src/order.d.ts.map +1 -1
  46. package/dist/types/src/pick.d.ts.map +1 -1
  47. package/dist/types/src/position.d.ts +2 -3
  48. package/dist/types/src/position.d.ts.map +1 -1
  49. package/dist/types/src/random.d.ts.map +1 -1
  50. package/dist/types/src/range.d.ts.map +1 -1
  51. package/dist/types/src/reducers.d.ts.map +1 -1
  52. package/dist/types/src/remove-undefined-keys.d.ts.map +1 -1
  53. package/dist/types/src/safe-await.d.ts.map +1 -1
  54. package/dist/types/src/safe-instanceof.d.ts.map +1 -1
  55. package/dist/types/src/safe-parse.d.ts.map +1 -1
  56. package/dist/types/src/sliding-window-summary.d.ts.map +1 -1
  57. package/dist/types/src/sort.d.ts.map +1 -1
  58. package/dist/types/src/string.d.ts.map +1 -1
  59. package/dist/types/src/sum.d.ts.map +1 -1
  60. package/dist/types/src/throw-unhandled-error.d.ts.map +1 -1
  61. package/dist/types/src/to-fallback.d.ts.map +1 -1
  62. package/dist/types/src/tracer.d.ts.map +1 -1
  63. package/dist/types/src/tree.d.ts.map +1 -1
  64. package/dist/types/src/types.d.ts.map +1 -1
  65. package/dist/types/src/uint8array.d.ts.map +1 -1
  66. package/dist/types/tsconfig.tsbuildinfo +1 -1
  67. package/package.json +10 -6
  68. package/src/array.ts +34 -0
  69. package/src/bitfield.ts +2 -2
  70. package/src/callback-collection.ts +3 -3
  71. package/src/callback.ts +2 -2
  72. package/src/clear-undefined.ts +15 -0
  73. package/src/complex.ts +6 -6
  74. package/src/deep.ts +6 -2
  75. package/src/defer.ts +2 -2
  76. package/src/di-key.ts +2 -2
  77. package/src/human-hash.ts +2 -2
  78. package/src/index.ts +12 -10
  79. package/src/map-values.ts +14 -0
  80. package/src/object.ts +7 -0
  81. package/src/position.ts +12 -11
  82. package/src/sliding-window-summary.ts +3 -3
  83. package/src/tracer.ts +6 -6
  84. package/src/weak.ts +2 -2
@@ -1 +1 @@
1
- {"version":3,"file":"throw-unhandled-error.d.ts","sourceRoot":"","sources":["../../../src/throw-unhandled-error.ts"],"names":[],"mappings":"AAIA;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,UAAW,KAAK,SAI/C,CAAC"}
1
+ {"version":3,"file":"throw-unhandled-error.d.ts","sourceRoot":"","sources":["../../../src/throw-unhandled-error.ts"],"names":[],"mappings":"AAIA;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,GAAI,OAAO,KAAK,SAI/C,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"to-fallback.d.ts","sourceRoot":"","sources":["../../../src/to-fallback.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,YAAY,CAAC;AAE5C,eAAO,MAAM,OAAO,UAiJnB,CAAC;AAEF,eAAO,MAAM,KAAK,0HAkBjB,CAAC;AAGF,eAAO,MAAM,UAAU,QAAS,SAAS,WAA6B,CAAC;AAEvE,eAAO,MAAM,UAAU,QAAS,MAAM,WAA6B,CAAC;AAEpE,eAAO,MAAM,OAAO,SAAU,MAAM,WAA2B,CAAC;AAEhE,eAAO,MAAM,QAAQ,QAAS,SAAS,yHAA2B,CAAC;AAEnE,eAAO,MAAM,QAAQ,QAAS,MAAM,yHAA2B,CAAC;AAEhE,eAAO,MAAM,KAAK,SAAU,MAAM,yHAAyB,CAAC;AAE5D,MAAM,MAAM,aAAa,GAAG;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,CAAC,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC;CAC7B,CAAC;AAEF,eAAO,MAAM,aAAa,QAAS,SAAS,kBAA+B,CAAC;AAG5E,eAAO,MAAM,aAAa,QAAS,MAAM,kBAAkC,CAAC;AAE5E,eAAO,MAAM,UAAU,SAAU,MAAM,KAAG,aAiBzC,CAAC"}
1
+ {"version":3,"file":"to-fallback.d.ts","sourceRoot":"","sources":["../../../src/to-fallback.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,YAAY,CAAC;AAE5C,eAAO,MAAM,OAAO,UAiJnB,CAAC;AAEF,eAAO,MAAM,KAAK,0HAkBjB,CAAC;AAGF,eAAO,MAAM,UAAU,GAAI,KAAK,SAAS,WAA6B,CAAC;AAEvE,eAAO,MAAM,UAAU,GAAI,KAAK,MAAM,WAA6B,CAAC;AAEpE,eAAO,MAAM,OAAO,GAAI,MAAM,MAAM,WAA2B,CAAC;AAEhE,eAAO,MAAM,QAAQ,GAAI,KAAK,SAAS,yHAA2B,CAAC;AAEnE,eAAO,MAAM,QAAQ,GAAI,KAAK,MAAM,yHAA2B,CAAC;AAEhE,eAAO,MAAM,KAAK,GAAI,MAAM,MAAM,yHAAyB,CAAC;AAE5D,MAAM,MAAM,aAAa,GAAG;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,CAAC,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC;CAC7B,CAAC;AAEF,eAAO,MAAM,aAAa,GAAI,KAAK,SAAS,kBAA+B,CAAC;AAG5E,eAAO,MAAM,aAAa,GAAI,KAAK,MAAM,kBAAkC,CAAC;AAE5E,eAAO,MAAM,UAAU,GAAI,MAAM,MAAM,KAAG,aAiBzC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"tracer.d.ts","sourceRoot":"","sources":["../../../src/tracer.ts"],"names":[],"mappings":"AAMA;;GAEG;AACH,MAAM,MAAM,KAAK,GAAG;IAClB,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,GAAG,CAAC;CACb,CAAC;AAEF;;GAEG;AAEH,qBAAa,MAAM;IACjB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA8B;IAEtD,OAAO,CAAC,UAAU,CAAS;IAO3B,IAAI,SAAS,YAEZ;IAED,IAAI;IAIJ,GAAG,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,KAAK,EAAE,GAAG,SAAS;IASlE,KAAK;IAIL,KAAK;IAKL,IAAI;IAKJ,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,GAAG;IAI5B,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,GAAG,GAAG;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,IAAI,CAAA;KAAE;IAYjE,OAAO,CAAC,YAAY;IASpB,OAAO,CAAC,KAAK;CAKd;AAID,eAAO,MAAM,MAAM,QAAe,CAAC"}
1
+ {"version":3,"file":"tracer.d.ts","sourceRoot":"","sources":["../../../src/tracer.ts"],"names":[],"mappings":"AAMA;;GAEG;AACH,MAAM,MAAM,KAAK,GAAG;IAClB,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,GAAG,CAAC;CACb,CAAC;AAEF;;GAEG;AAEH,qBAAa,MAAM;IACjB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA8B;IAEtD,OAAO,CAAC,UAAU,CAAS;IAO3B,IAAI,SAAS,YAEZ;IAED,IAAI,IAAI,MAAM,EAAE;IAIhB,GAAG,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,KAAK,EAAE,GAAG,SAAS;IASlE,KAAK,IAAI,IAAI;IAIb,KAAK,IAAI,IAAI;IAKb,IAAI,IAAI,IAAI;IAKZ,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,GAAG,GAAG,IAAI;IAInC,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,GAAG,GAAG;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,IAAI,CAAA;KAAE;IAYjE,OAAO,CAAC,YAAY;IASpB,OAAO,CAAC,KAAK;CAKd;AAID,eAAO,MAAM,MAAM,QAAe,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"tree.d.ts","sourceRoot":"","sources":["../../../src/tree.ts"],"names":[],"mappings":"AAQA,MAAM,MAAM,QAAQ,GAAG;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,CAAC,EAAE,QAAQ,EAAE,CAAC;CACvB,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,aAAa,SAAU,QAAQ,cAAa,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE,SAAa,MAAM,EAAE,aA2CjG,CAAC"}
1
+ {"version":3,"file":"tree.d.ts","sourceRoot":"","sources":["../../../src/tree.ts"],"names":[],"mappings":"AAQA,MAAM,MAAM,QAAQ,GAAG;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,CAAC,EAAE,QAAQ,EAAE,CAAC;CACvB,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,aAAa,GAAI,MAAM,QAAQ,EAAE,YAAW,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAO,EAAE,OAAM,MAAM,EAAO,aA2CtG,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/types.ts"],"names":[],"mappings":"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"}
@@ -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,GAAI,GAAG,UAAU,EAAE,GAAG,UAAU,KAAG,OAY1D,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,aAAa,GAAI,OAAO,UAAU,KAAG,MAEjD,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,aAAa,GAAI,QAAQ,MAAM,KAAG,UAE9C,CAAC;AAEF,eAAO,MAAM,aAAa,GAAI,QAAQ,MAAM,KAAG,UAAuD,CAAC;AAEvG,eAAO,MAAM,aAAa,GAAI,OAAO,UAAU,KAAG,MAA8C,CAAC"}
@@ -1 +1 @@
1
- {"version":"5.7.3"}
1
+ {"version":"5.8.3"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dxos/util",
3
- "version": "0.8.1",
3
+ "version": "0.8.2-main.10c050d",
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",
@@ -27,13 +27,17 @@
27
27
  "src"
28
28
  ],
29
29
  "dependencies": {
30
- "@dxos/debug": "0.8.1",
31
- "@dxos/invariant": "0.8.1",
32
- "@dxos/keys": "0.8.1",
33
- "@dxos/node-std": "0.8.1"
30
+ "lodash.get": "^4.4.2",
31
+ "lodash.set": "^4.3.2",
32
+ "@dxos/debug": "0.8.2-main.10c050d",
33
+ "@dxos/keys": "0.8.2-main.10c050d",
34
+ "@dxos/node-std": "0.8.2-main.10c050d",
35
+ "@dxos/invariant": "0.8.2-main.10c050d"
34
36
  },
35
37
  "devDependencies": {
36
- "@dxos/crypto": "0.8.1"
38
+ "@types/lodash.get": "^4.4.9",
39
+ "@types/lodash.set": "^4.3.9",
40
+ "@dxos/crypto": "0.8.2-main.10c050d"
37
41
  },
38
42
  "publishConfig": {
39
43
  "access": "public"
package/src/array.ts CHANGED
@@ -98,3 +98,37 @@ export const partition = <T>(array: T[], guard: (item: T, index: number, array:
98
98
  [[], []],
99
99
  );
100
100
  };
101
+
102
+ /**
103
+ * Returns elements that exist in all provided arrays based on a selector function.
104
+ *
105
+ * @param arrays - Arrays to intersect.
106
+ * @param selector - Function to extract the comparison value from each element.
107
+ * @returns Array containing elements from the first array that exist in all other arrays.
108
+ */
109
+ export const intersectBy = <T, K>(arrays: T[][], selector: (item: T) => K): T[] => {
110
+ if (arrays.length === 0) {
111
+ return [];
112
+ }
113
+
114
+ if (arrays.length === 1) {
115
+ return [...arrays[0]];
116
+ }
117
+
118
+ const [first, ...rest] = arrays;
119
+
120
+ // Create lookup maps for all other arrays.
121
+ const lookups = rest.map((array) => {
122
+ const map = new Map<K, T>();
123
+ for (const item of array) {
124
+ map.set(selector(item), item);
125
+ }
126
+ return map;
127
+ });
128
+
129
+ // Keep items from first array that exist in all other arrays.
130
+ return first.filter((item) => {
131
+ const key = selector(item);
132
+ return lookups.every((lookup) => lookup.has(key));
133
+ });
134
+ };
package/src/bitfield.ts CHANGED
@@ -20,7 +20,7 @@ export class BitField {
20
20
  return !!bit;
21
21
  }
22
22
 
23
- static set(data: Uint8Array, idx: number, value: boolean) {
23
+ static set(data: Uint8Array, idx: number, value: boolean): void {
24
24
  if (value) {
25
25
  data[idx >> 3] = data[idx >> 3] | (1 << (7 - (idx % 8)));
26
26
  } else {
@@ -48,7 +48,7 @@ export class BitField {
48
48
  return result;
49
49
  }
50
50
 
51
- static and(first: Uint8Array, second: Uint8Array) {
51
+ static and(first: Uint8Array, second: Uint8Array): Uint8Array {
52
52
  invariant(first.length === second.length, 'Bitfields must be of the same length');
53
53
  const result = new Uint8Array(first.length);
54
54
  for (let i = 0; i < first.length; i++) {
@@ -8,15 +8,15 @@
8
8
  export class CallbackCollection<F extends (...args: any[]) => Promise<any>> {
9
9
  #callbacks: F[] = [];
10
10
 
11
- append(callback: F) {
11
+ append(callback: F): void {
12
12
  this.#callbacks.push(callback);
13
13
  }
14
14
 
15
- prepend(callback: F) {
15
+ prepend(callback: F): void {
16
16
  this.#callbacks.unshift(callback);
17
17
  }
18
18
 
19
- remove(callback: F) {
19
+ remove(callback: F): void {
20
20
  this.#callbacks = this.#callbacks.filter((c) => c !== callback);
21
21
  }
22
22
 
package/src/callback.ts CHANGED
@@ -25,12 +25,12 @@ export class Callback<T extends (...args: any[]) => any> {
25
25
  return this._callback?.(...args);
26
26
  }
27
27
 
28
- public set(callback: T) {
28
+ public set(callback: T): void {
29
29
  invariant(!this._callback, 'Callback already set');
30
30
  this._callback = callback;
31
31
  }
32
32
 
33
- public isSet() {
33
+ public isSet(): boolean {
34
34
  return !!this._callback;
35
35
  }
36
36
  }
@@ -0,0 +1,15 @@
1
+ //
2
+ // Copyright 2025 DXOS.org
3
+ //
4
+
5
+ /**
6
+ * Remove undefined values from an object.
7
+ */
8
+ export const clearUndefined = <O extends {}>(obj: O): O => {
9
+ for (const key of [...Object.getOwnPropertyNames(obj), ...Object.getOwnPropertySymbols(obj)]) {
10
+ if (obj[key as keyof O] === undefined) {
11
+ delete obj[key as keyof O];
12
+ }
13
+ }
14
+ return obj;
15
+ };
package/src/complex.ts CHANGED
@@ -35,17 +35,17 @@ export class ComplexSet<T> implements Set<T> {
35
35
  }
36
36
  }
37
37
 
38
- toString() {
38
+ toString(): string {
39
39
  return inspectObject(this);
40
40
  }
41
41
 
42
- toJSON() {
42
+ toJSON(): T[] | { size: number } {
43
43
  return this._values.size > MAX_SERIALIZATION_LENGTH
44
44
  ? { size: this._values.size }
45
45
  : Array.from(this._values.values());
46
46
  }
47
47
 
48
- [inspect.custom]() {
48
+ [inspect.custom](): string {
49
49
  return inspectObject(this);
50
50
  }
51
51
 
@@ -164,17 +164,17 @@ export class ComplexMap<K, V> implements Map<K, V> {
164
164
  }
165
165
  }
166
166
 
167
- toString() {
167
+ toString(): string {
168
168
  return inspectObject(this);
169
169
  }
170
170
 
171
- toJSON() {
171
+ toJSON(): V[] | { size: number } {
172
172
  return this._values.size > MAX_SERIALIZATION_LENGTH
173
173
  ? { size: this._values.size }
174
174
  : Array.from(this._values.values());
175
175
  }
176
176
 
177
- [inspect.custom]() {
177
+ [inspect.custom](): string {
178
178
  return inspectObject(this);
179
179
  }
180
180
 
package/src/deep.ts CHANGED
@@ -2,8 +2,14 @@
2
2
  // Copyright 2024 DXOS.org
3
3
  //
4
4
 
5
+ import get from 'lodash.get';
6
+ import set from 'lodash.set';
7
+
5
8
  import { invariant } from '@dxos/invariant';
6
9
 
10
+ // TODO(burdon): Re-export most common utils? (isEqual, defaultsDeep, merge, omit, pick, etc.)
11
+ export { get, set };
12
+
7
13
  /**
8
14
  * Initialize a deeply nested object.
9
15
  * @returns The value of the prop after assignment.
@@ -25,8 +31,6 @@ export const setDeep = <T>(obj: any, path: readonly (string | number)[], value:
25
31
 
26
32
  /**
27
33
  * Gets a value from a deeply nested object.
28
- * @param obj
29
- * @param path
30
34
  * @returns The value of the prop if it exists, otherwise undefined.
31
35
  */
32
36
  export const getDeep = <T>(obj: any, path: readonly (string | number)[]): T | undefined => {
package/src/defer.ts CHANGED
@@ -23,7 +23,7 @@ class DeferGuard {
23
23
  */
24
24
  constructor(private readonly _fn: () => void) {}
25
25
 
26
- [Symbol.dispose]() {
26
+ [Symbol.dispose](): void {
27
27
  const result = this._fn();
28
28
  if ((result as any) instanceof Promise) {
29
29
  throw new Error('Async functions in defer are not supported. Use deferAsync instead.');
@@ -50,7 +50,7 @@ class DeferAsyncGuard implements AsyncDisposable {
50
50
  */
51
51
  constructor(private readonly _fn: () => Promise<void>) {}
52
52
 
53
- async [Symbol.asyncDispose]() {
53
+ async [Symbol.asyncDispose](): Promise<void> {
54
54
  await this._fn();
55
55
  }
56
56
  }
package/src/di-key.ts CHANGED
@@ -19,11 +19,11 @@ export class SymbolDiKey<T> {
19
19
 
20
20
  public [symbolSingleton]?: SingletonFactory<T> = undefined;
21
21
 
22
- toString() {
22
+ toString(): string {
23
23
  return String(this.symbol).slice(7, -1);
24
24
  }
25
25
 
26
- [inspect.custom]() {
26
+ [inspect.custom](): string {
27
27
  return this.toString();
28
28
  }
29
29
  }
package/src/human-hash.ts CHANGED
@@ -299,7 +299,7 @@ export class HumanHasher {
299
299
  * @param words How many words to output (more = safer)
300
300
  * @param separator The string used to seperate the words
301
301
  */
302
- humanize(hexdigest: string, words = 4, separator = '-') {
302
+ humanize(hexdigest: string, words = 4, separator = '-'): string {
303
303
  const pairs = hexdigest.match(/(..?)/g);
304
304
  if (!pairs) {
305
305
  throw new Error('');
@@ -317,7 +317,7 @@ export class HumanHasher {
317
317
  * @param bytes A list of bytes (numbers from 0-254)
318
318
  * @param target The number of bytes to return / compress to
319
319
  */
320
- _compress(bytes: number[], target: number) {
320
+ _compress(bytes: number[], target: number): number[] {
321
321
  const length = bytes.length;
322
322
  if (target > length) {
323
323
  throw new Error('Fewer input bytes than requested output');
package/src/index.ts CHANGED
@@ -2,43 +2,48 @@
2
2
  // Copyright 2025 DXOS.org
3
3
  //
4
4
 
5
- export * from './array';
6
5
  export * from './array-to-hex';
6
+ export * from './array';
7
7
  export * from './binder';
8
8
  export * from './bitfield';
9
- export * from './callback';
10
9
  export * from './callback-collection';
10
+ export * from './callback';
11
11
  export * from './case';
12
12
  export * from './chunk-array';
13
13
  export * from './circular-buffer';
14
+ export * from './clear-undefined';
14
15
  export * from './complex';
15
- export * from './defer';
16
- export * from './defer-function';
17
16
  export * from './deep';
17
+ export * from './defer-function';
18
+ export * from './defer';
18
19
  export * from './entry';
19
20
  export * from './first-two-chars';
20
21
  export * from './for-each-async';
21
22
  export * from './human-hash';
22
- export * from './interval';
23
23
  export * from './instance-id';
24
+ export * from './interval';
24
25
  export * from './join-tables';
25
26
  export * from './json';
26
- export * from './map';
27
27
  export * from './map-values';
28
+ export * from './map';
28
29
  export * from './no-infer';
29
- export * from './order';
30
+ export * from './object';
30
31
  export * from './order-keys';
32
+ export * from './order';
31
33
  export * from './pick';
32
34
  export * from './platform';
33
35
  export * from './position';
34
36
  export * from './random';
35
37
  export * from './range';
36
38
  export * from './reducers';
39
+ export * from './remove-undefined-keys';
37
40
  export * from './safe-await';
38
41
  export * from './safe-instanceof';
39
42
  export * from './safe-parse';
40
43
  export * from './sliding-window-summary';
44
+ export * from './sliding-window-summary';
41
45
  export * from './sort';
46
+ export * from './string';
42
47
  export * from './sum';
43
48
  export * from './throw-unhandled-error';
44
49
  export * from './to-fallback';
@@ -47,6 +52,3 @@ export * from './tree';
47
52
  export * from './types';
48
53
  export * from './uint8array';
49
54
  export * from './weak';
50
- export * from './sliding-window-summary';
51
- export * from './string';
52
- export * from './remove-undefined-keys';
package/src/map-values.ts CHANGED
@@ -124,3 +124,17 @@ class DeepMapperAsync {
124
124
  }
125
125
  };
126
126
  }
127
+
128
+ /**
129
+ * Visits all values on an object or every item in an array.
130
+ * No-op if the value is not an object or array.
131
+ */
132
+ export const visitValues = (object: unknown, visitor: (value: unknown, key: string | number) => void) => {
133
+ if (Array.isArray(object)) {
134
+ object.forEach((item, index) => visitor(item, index));
135
+ } else if (typeof object === 'object' && object !== null) {
136
+ for (const [key, value] of Object.entries(object)) {
137
+ visitor(value, key);
138
+ }
139
+ }
140
+ };
package/src/object.ts ADDED
@@ -0,0 +1,7 @@
1
+ //
2
+ // Copyright 2025 DXOS.org
3
+ //
4
+
5
+ export const keys = <R>(obj: R): (keyof R)[] => Object.keys(obj as any) as (keyof R)[];
6
+
7
+ export const entries = <R>(obj: R): [keyof R, R[keyof R]][] => Object.entries(obj as any) as [keyof R, any][];
package/src/position.ts CHANGED
@@ -2,9 +2,10 @@
2
2
  // Copyright 2025 DXOS.org
3
3
  //
4
4
 
5
+ // TODO(burdon): This shouldn't be in this low-level util? Move to app-framework?
6
+
5
7
  /**
6
- * Determines priority order.
7
- *
8
+ * Determines priority order:
8
9
  * - `static` - Remain in natural order.
9
10
  * - `hoist` - Placed before `static`.
10
11
  * - `fallback` - Placed after `static`.
@@ -15,17 +16,17 @@ export type Position = 'static' | 'hoist' | 'fallback';
15
16
  /**
16
17
  * Sorting function for sorting by position.
17
18
  */
18
- export const byPosition = <T extends { position?: Position }>(a: T, b: T) => {
19
- const aPosition = a.position ?? 'static';
20
- const bPosition = b.position ?? 'static';
21
-
22
- if (aPosition === bPosition) {
19
+ export const byPosition = <T extends { position?: Position }>(
20
+ { position: a = 'static' }: T,
21
+ { position: b = 'static' }: T,
22
+ ) => {
23
+ if (a === b) {
23
24
  return 0;
24
- } else if (aPosition === 'hoist' || bPosition === 'fallback') {
25
+ } else if (a === 'hoist' || b === 'fallback') {
25
26
  return -1;
26
- } else if (bPosition === 'hoist' || aPosition === 'fallback') {
27
+ } else if (b === 'hoist' || a === 'fallback') {
27
28
  return 1;
29
+ } else {
30
+ return 0;
28
31
  }
29
-
30
- return 0;
31
32
  };
@@ -28,12 +28,12 @@ export class SlidingWindowSummary {
28
28
  }
29
29
  }
30
30
 
31
- public record(value: number) {
31
+ public record(value: number): void {
32
32
  const evicted = this._buffer.push(value);
33
33
  this._sum += value - (evicted ?? 0);
34
34
  }
35
35
 
36
- public average() {
36
+ public average(): number {
37
37
  return this._buffer.elementCount === 0 ? 0 : this._withPrecision(this._sum / this._buffer.elementCount);
38
38
  }
39
39
 
@@ -58,7 +58,7 @@ export class SlidingWindowSummary {
58
58
  return { mean, median, p90, stdDev, histogram };
59
59
  }
60
60
 
61
- private _withPrecision(value: number) {
61
+ private _withPrecision(value: number): number {
62
62
  if (this._precision == null) {
63
63
  return value;
64
64
  }
package/src/tracer.ts CHANGED
@@ -32,7 +32,7 @@ export class Tracer {
32
32
  return this._recording;
33
33
  }
34
34
 
35
- keys() {
35
+ keys(): string[] {
36
36
  return Array.from(this._events.keys());
37
37
  }
38
38
 
@@ -45,21 +45,21 @@ export class Tracer {
45
45
  return events;
46
46
  }
47
47
 
48
- clear() {
48
+ clear(): void {
49
49
  this._events.clear();
50
50
  }
51
51
 
52
- start() {
52
+ start(): this {
53
53
  this._recording = true;
54
54
  return this;
55
55
  }
56
56
 
57
- stop() {
57
+ stop(): this {
58
58
  this._recording = false;
59
59
  return this;
60
60
  }
61
61
 
62
- emit(id: string, value?: any) {
62
+ emit(id: string, value?: any): void {
63
63
  this._post(this._createEvent(id, value));
64
64
  }
65
65
 
@@ -84,7 +84,7 @@ export class Tracer {
84
84
  return event;
85
85
  }
86
86
 
87
- private _post(event: Event) {
87
+ private _post(event: Event): void {
88
88
  if (this._recording) {
89
89
  defaultMap(this._events, event.id, []).push(event);
90
90
  }
package/src/weak.ts CHANGED
@@ -96,7 +96,7 @@ export class WeakDictionary<K, V extends object> implements Map<K, V> {
96
96
  });
97
97
  }
98
98
 
99
- private _register(key: K, value: V) {
99
+ private _register(key: K, value: V): void {
100
100
  this._finalization.register(
101
101
  value,
102
102
  () => {
@@ -106,7 +106,7 @@ export class WeakDictionary<K, V extends object> implements Map<K, V> {
106
106
  );
107
107
  }
108
108
 
109
- private _unregister(value: V) {
109
+ private _unregister(value: V): void {
110
110
  this._finalization.unregister(value);
111
111
  }
112
112
  }