@welshman/net 0.1.2 → 0.2.1

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 (64) hide show
  1. package/dist/lib/src/TaskQueue.d.ts +2 -0
  2. package/dist/lib/src/TaskQueue.d.ts.map +1 -1
  3. package/dist/lib/src/TaskQueue.js +10 -0
  4. package/dist/lib/src/TaskQueue.js.map +1 -1
  5. package/dist/lib/src/Tools.d.ts +100 -3
  6. package/dist/lib/src/Tools.d.ts.map +1 -1
  7. package/dist/lib/src/Tools.js +169 -3
  8. package/dist/lib/src/Tools.js.map +1 -1
  9. package/dist/net/src/auth.d.ts +2 -1
  10. package/dist/net/src/auth.d.ts.map +1 -1
  11. package/dist/net/src/auth.js +16 -2
  12. package/dist/net/src/auth.js.map +1 -1
  13. package/dist/net/src/context.d.ts.map +1 -1
  14. package/dist/net/src/context.js +3 -3
  15. package/dist/net/src/context.js.map +1 -1
  16. package/dist/net/src/diff.d.ts.map +1 -1
  17. package/dist/net/src/diff.js +11 -12
  18. package/dist/net/src/diff.js.map +1 -1
  19. package/dist/net/src/policy.js +3 -3
  20. package/dist/net/src/policy.js.map +1 -1
  21. package/dist/net/src/pool.d.ts +1 -1
  22. package/dist/net/src/pool.d.ts.map +1 -1
  23. package/dist/net/src/pool.js +1 -1
  24. package/dist/net/src/pool.js.map +1 -1
  25. package/dist/net/src/publish.d.ts +29 -30
  26. package/dist/net/src/publish.d.ts.map +1 -1
  27. package/dist/net/src/publish.js +79 -108
  28. package/dist/net/src/publish.js.map +1 -1
  29. package/dist/net/src/request.d.ts +26 -60
  30. package/dist/net/src/request.d.ts.map +1 -1
  31. package/dist/net/src/request.js +170 -158
  32. package/dist/net/src/request.js.map +1 -1
  33. package/dist/net/src/tracker.d.ts.map +1 -1
  34. package/dist/net/src/tracker.js +4 -4
  35. package/dist/net/src/tracker.js.map +1 -1
  36. package/dist/relay/src/repository.d.ts +1 -1
  37. package/dist/relay/src/repository.d.ts.map +1 -1
  38. package/dist/relay/src/repository.js +1 -1
  39. package/dist/relay/src/repository.js.map +1 -1
  40. package/dist/util/src/Events.d.ts +1 -1
  41. package/dist/util/src/Events.d.ts.map +1 -1
  42. package/dist/util/src/Events.js +6 -5
  43. package/dist/util/src/Events.js.map +1 -1
  44. package/dist/util/src/Kinds.d.ts +3 -0
  45. package/dist/util/src/Kinds.d.ts.map +1 -1
  46. package/dist/util/src/Kinds.js +3 -0
  47. package/dist/util/src/Kinds.js.map +1 -1
  48. package/dist/util/src/List.d.ts +2 -0
  49. package/dist/util/src/List.d.ts.map +1 -1
  50. package/dist/util/src/List.js +10 -3
  51. package/dist/util/src/List.js.map +1 -1
  52. package/dist/util/src/Profile.d.ts +3 -10
  53. package/dist/util/src/Profile.d.ts.map +1 -1
  54. package/dist/util/src/Profile.js +1 -0
  55. package/dist/util/src/Profile.js.map +1 -1
  56. package/dist/util/src/Relay.d.ts +6 -0
  57. package/dist/util/src/Relay.d.ts.map +1 -1
  58. package/dist/util/src/Relay.js +9 -2
  59. package/dist/util/src/Relay.js.map +1 -1
  60. package/dist/util/src/Tags.d.ts +1 -0
  61. package/dist/util/src/Tags.d.ts.map +1 -1
  62. package/dist/util/src/Tags.js +2 -1
  63. package/dist/util/src/Tags.js.map +1 -1
  64. package/package.json +5 -4
@@ -4,12 +4,14 @@ export type TaskQueueOptions<Item> = {
4
4
  };
5
5
  export declare class TaskQueue<Item> {
6
6
  readonly options: TaskQueueOptions<Item>;
7
+ _subs: ((item: Item) => void)[];
7
8
  items: Item[];
8
9
  isPaused: boolean;
9
10
  isProcessing: boolean;
10
11
  constructor(options: TaskQueueOptions<Item>);
11
12
  push(item: Item): void;
12
13
  remove(item: Item): void;
14
+ subscribe(subscriber: (item: Item) => void): () => void;
13
15
  process(): Promise<void>;
14
16
  stop(): void;
15
17
  start(): void;
@@ -1 +1 @@
1
- {"version":3,"file":"TaskQueue.d.ts","sourceRoot":"","sources":["../../../../lib/src/TaskQueue.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,gBAAgB,CAAC,IAAI,IAAI;IACnC,SAAS,EAAE,MAAM,CAAA;IACjB,WAAW,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,OAAO,CAAA;CACrC,CAAA;AAED,qBAAa,SAAS,CAAC,IAAI;IAKb,QAAQ,CAAC,OAAO,EAAE,gBAAgB,CAAC,IAAI,CAAC;IAJpD,KAAK,EAAE,IAAI,EAAE,CAAK;IAClB,QAAQ,UAAQ;IAChB,YAAY,UAAQ;gBAEC,OAAO,EAAE,gBAAgB,CAAC,IAAI,CAAC;IAEpD,IAAI,CAAC,IAAI,EAAE,IAAI;IAKf,MAAM,CAAC,IAAI,EAAE,IAAI;IAIX,OAAO;IAwBb,IAAI;IAIJ,KAAK;IAKL,KAAK;CAGN"}
1
+ {"version":3,"file":"TaskQueue.d.ts","sourceRoot":"","sources":["../../../../lib/src/TaskQueue.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,gBAAgB,CAAC,IAAI,IAAI;IACnC,SAAS,EAAE,MAAM,CAAA;IACjB,WAAW,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,OAAO,CAAA;CACrC,CAAA;AAED,qBAAa,SAAS,CAAC,IAAI;IAMb,QAAQ,CAAC,OAAO,EAAE,gBAAgB,CAAC,IAAI,CAAC;IALpD,KAAK,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,CAAC,EAAE,CAAK;IACpC,KAAK,EAAE,IAAI,EAAE,CAAK;IAClB,QAAQ,UAAQ;IAChB,YAAY,UAAQ;gBAEC,OAAO,EAAE,gBAAgB,CAAC,IAAI,CAAC;IAEpD,IAAI,CAAC,IAAI,EAAE,IAAI;IAKf,MAAM,CAAC,IAAI,EAAE,IAAI;IAIjB,SAAS,CAAC,UAAU,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI;IAQpC,OAAO;IA4Bb,IAAI;IAIJ,KAAK;IAKL,KAAK;CAGN"}
@@ -1,6 +1,7 @@
1
1
  import { remove, yieldThread } from "./Tools.js";
2
2
  export class TaskQueue {
3
3
  options;
4
+ _subs = [];
4
5
  items = [];
5
6
  isPaused = false;
6
7
  isProcessing = false;
@@ -14,6 +15,12 @@ export class TaskQueue {
14
15
  remove(item) {
15
16
  this.items = remove(item, this.items);
16
17
  }
18
+ subscribe(subscriber) {
19
+ this._subs.push(subscriber);
20
+ return () => {
21
+ this._subs = remove(subscriber, this._subs);
22
+ };
23
+ }
17
24
  async process() {
18
25
  if (this.isProcessing || this.isPaused || this.items.length === 0) {
19
26
  return;
@@ -22,6 +29,9 @@ export class TaskQueue {
22
29
  await yieldThread();
23
30
  for (const item of this.items.splice(0, this.options.batchSize)) {
24
31
  try {
32
+ for (const subscriber of this._subs) {
33
+ subscriber(item);
34
+ }
25
35
  await this.options.processItem(item);
26
36
  }
27
37
  catch (e) {
@@ -1 +1 @@
1
- {"version":3,"file":"TaskQueue.js","sourceRoot":"","sources":["../../../../lib/src/TaskQueue.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,MAAM,EAAE,WAAW,EAAC,MAAM,YAAY,CAAA;AAO9C,MAAM,OAAO,SAAS;IAKC;IAJrB,KAAK,GAAW,EAAE,CAAA;IAClB,QAAQ,GAAG,KAAK,CAAA;IAChB,YAAY,GAAG,KAAK,CAAA;IAEpB,YAAqB,OAA+B;QAA/B,YAAO,GAAP,OAAO,CAAwB;IAAG,CAAC;IAExD,IAAI,CAAC,IAAU;QACb,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACrB,IAAI,CAAC,OAAO,EAAE,CAAA;IAChB,CAAC;IAED,MAAM,CAAC,IAAU;QACf,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAA;IACvC,CAAC;IAED,KAAK,CAAC,OAAO;QACX,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAClE,OAAM;QACR,CAAC;QAED,IAAI,CAAC,YAAY,GAAG,IAAI,CAAA;QAExB,MAAM,WAAW,EAAE,CAAA;QAEnB,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;YAChE,IAAI,CAAC;gBACH,MAAM,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,CAAA;YACtC,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;YAClB,CAAC;QACH,CAAC;QAED,IAAI,CAAC,YAAY,GAAG,KAAK,CAAA;QAEzB,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1B,IAAI,CAAC,OAAO,EAAE,CAAA;QAChB,CAAC;IACH,CAAC;IAED,IAAI;QACF,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAA;IACtB,CAAC;IAED,KAAK;QACH,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAA;QACrB,IAAI,CAAC,OAAO,EAAE,CAAA;IAChB,CAAC;IAED,KAAK;QACH,IAAI,CAAC,KAAK,GAAG,EAAE,CAAA;IACjB,CAAC;CACF"}
1
+ {"version":3,"file":"TaskQueue.js","sourceRoot":"","sources":["../../../../lib/src/TaskQueue.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,MAAM,EAAE,WAAW,EAAC,MAAM,YAAY,CAAA;AAO9C,MAAM,OAAO,SAAS;IAMC;IALrB,KAAK,GAA6B,EAAE,CAAA;IACpC,KAAK,GAAW,EAAE,CAAA;IAClB,QAAQ,GAAG,KAAK,CAAA;IAChB,YAAY,GAAG,KAAK,CAAA;IAEpB,YAAqB,OAA+B;QAA/B,YAAO,GAAP,OAAO,CAAwB;IAAG,CAAC;IAExD,IAAI,CAAC,IAAU;QACb,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACrB,IAAI,CAAC,OAAO,EAAE,CAAA;IAChB,CAAC;IAED,MAAM,CAAC,IAAU;QACf,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAA;IACvC,CAAC;IAED,SAAS,CAAC,UAAgC;QACxC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;QAE3B,OAAO,GAAG,EAAE;YACV,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,CAAA;QAC7C,CAAC,CAAA;IACH,CAAC;IAED,KAAK,CAAC,OAAO;QACX,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAClE,OAAM;QACR,CAAC;QAED,IAAI,CAAC,YAAY,GAAG,IAAI,CAAA;QAExB,MAAM,WAAW,EAAE,CAAA;QAEnB,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;YAChE,IAAI,CAAC;gBACH,KAAK,MAAM,UAAU,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;oBACpC,UAAU,CAAC,IAAI,CAAC,CAAA;gBAClB,CAAC;gBAED,MAAM,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,CAAA;YACtC,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;YAClB,CAAC;QACH,CAAC;QAED,IAAI,CAAC,YAAY,GAAG,KAAK,CAAA;QAEzB,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1B,IAAI,CAAC,OAAO,EAAE,CAAA;QAChB,CAAC;IACH,CAAC;IAED,IAAI;QACF,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAA;IACtB,CAAC;IAED,KAAK;QACH,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAA;QACrB,IAAI,CAAC,OAAO,EAAE,CAAA;IAChB,CAAC;IAED,KAAK;QACH,IAAI,CAAC,KAAK,GAAG,EAAE,CAAA;IACjB,CAAC;CACF"}
@@ -1,4 +1,8 @@
1
1
  type Obj<T = any> = Record<string, T>;
2
+ export type Nil = null | undefined;
3
+ export declare const isNil: <T>(x: T, ...args: unknown[]) => boolean;
4
+ export declare const isNotNil: <T>(x: T, ...args: unknown[]) => x is T & {};
5
+ export declare const assertNotNil: <T>(x: T, ...args: unknown[]) => NonNullable<T>;
2
6
  /** Function that does nothing and returns undefined */
3
7
  export declare const noop: (...args: unknown[]) => undefined;
4
8
  /**
@@ -100,6 +104,10 @@ export declare const MONTH: number;
100
104
  export declare const QUARTER: number;
101
105
  /** One year in seconds (approximate) */
102
106
  export declare const YEAR: number;
107
+ /** User's default locale */
108
+ export declare const LOCALE: string;
109
+ /** User's default timezone */
110
+ export declare const TIMEZONE: string;
103
111
  /**
104
112
  * Multiplies time unit by count
105
113
  * @param unit - Time unit in seconds
@@ -122,6 +130,55 @@ export declare const ago: (unit: number, count?: number) => number;
122
130
  * @returns Time in milliseconds
123
131
  */
124
132
  export declare const ms: (seconds: number) => number;
133
+ /**
134
+ * Converts seconds to date
135
+ * @param seconds - Time in seconds
136
+ * @returns Date object
137
+ */
138
+ export declare const secondsToDate: (seconds: number) => Date;
139
+ /**
140
+ * Converts date object to seconds
141
+ * @param date - Date object
142
+ * @returns timestamp in seconds
143
+ */
144
+ export declare const dateToSeconds: (date: Date) => number;
145
+ /**
146
+ * Creates a local date from a date string
147
+ * @param dateString - date string
148
+ * @param timezone - timezone string
149
+ * @returns timezone-aware Date object
150
+ */
151
+ export declare const createLocalDate: (dateString: any, timezone?: string) => Date;
152
+ /** Formatter for date+time */
153
+ export declare const dateTimeFormatter: Intl.DateTimeFormat;
154
+ /**
155
+ * Formats seconds as a datetime
156
+ * @param seconds - timestamp in seconds
157
+ * @returns datetime string
158
+ */
159
+ export declare const formatTimestamp: (seconds: number) => string;
160
+ /** Formatter for date */
161
+ export declare const dateFormatter: Intl.DateTimeFormat;
162
+ /**
163
+ * Formats seconds as a date
164
+ * @param seconds - timestamp in seconds
165
+ * @returns date string
166
+ */
167
+ export declare const formatTimestampAsDate: (ts: number) => string;
168
+ /** Formatter for time */
169
+ export declare const timeFormatter: Intl.DateTimeFormat;
170
+ /**
171
+ * Formats seconds as a time
172
+ * @param seconds - timestamp in seconds
173
+ * @returns time string
174
+ */
175
+ export declare const formatTimestampAsTime: (ts: number) => string;
176
+ /**
177
+ * Formats seconds as a relative date (x minutes ago)
178
+ * @param seconds - timestamp in seconds
179
+ * @returns relative date string
180
+ */
181
+ export declare const formatTimestampRelative: (ts: number) => string;
125
182
  /**
126
183
  * Returns the first element of an array
127
184
  * @param xs - The array
@@ -195,6 +252,13 @@ export declare const difference: <T>(a: T[], b: T[]) => T[];
195
252
  * @returns New array with element removed
196
253
  */
197
254
  export declare const remove: <T>(a: T, xs: T[]) => T[];
255
+ /**
256
+ * Removes element at index
257
+ * @param i - Index to remove
258
+ * @param xs - Source array
259
+ * @returns New array with element removed
260
+ */
261
+ export declare const removeAt: <T>(i: number, xs: T[]) => T[];
198
262
  /**
199
263
  * Returns elements from second array not present in first
200
264
  * @param a - Array of elements to exclude
@@ -277,6 +341,13 @@ export declare const sortBy: <T>(f: (x: T) => any, xs: T[]) => T[];
277
341
  * @returns Map of groups
278
342
  */
279
343
  export declare const groupBy: <T, K>(f: (x: T) => K, xs: T[]) => Map<K, T[]>;
344
+ /**
345
+ * Counts array elements by key function
346
+ * @param f - Function to generate group key
347
+ * @param xs - Array to count entries
348
+ * @returns Map of counts
349
+ */
350
+ export declare const countBy: <T, K>(f: (x: T) => K, xs: T[]) => Map<K, number>;
280
351
  /**
281
352
  * Creates map from array using key function
282
353
  * @param f - Function to generate key
@@ -308,7 +379,9 @@ export declare const chunks: <T>(n: number, xs: T[]) => T[][];
308
379
  /** Splits array into two parts at index */
309
380
  export declare const splitAt: <T>(n: number, xs: T[]) => T[][];
310
381
  /** Inserts element into array at index */
311
- export declare const insert: <T>(n: number, x: T, xs: T[]) => T[];
382
+ export declare const insertAt: <T>(n: number, x: T, xs: T[]) => T[];
383
+ /** Replaces array element at index */
384
+ export declare const replaceAt: <T>(n: number, x: T, xs: T[]) => T[];
312
385
  /** Returns random element from array */
313
386
  export declare const choice: <T>(xs: T[]) => T;
314
387
  /** Returns shuffled copy of iterable */
@@ -321,6 +394,8 @@ export declare const isIterable: (x: any) => boolean;
321
394
  export declare const toIterable: (x: any) => any;
322
395
  /** Ensures value is array by wrapping if needed */
323
396
  export declare const ensurePlural: <T>(x: T | T[]) => T[];
397
+ /** Ensures values are not undefined */
398
+ export declare const removeNil: <T>(xs: T[]) => NonNullable<T & {}>[];
324
399
  /**
325
400
  * Checks if value is a plain object
326
401
  * @param obj - Value to check
@@ -446,6 +521,17 @@ export declare const randomId: () => string;
446
521
  * @returns Promise that resolves after t milliseconds
447
522
  */
448
523
  export declare const sleep: (t: number) => Promise<unknown>;
524
+ export type PollOptions = {
525
+ signal: AbortSignal;
526
+ condition: () => boolean;
527
+ interval?: number;
528
+ };
529
+ /**
530
+ * Creates a promise that resolves after the condition completes or timeout
531
+ * @param options - PollOptions
532
+ * @returns void Promise
533
+ */
534
+ export declare const poll: ({ interval, condition, signal }: PollOptions) => Promise<void>;
449
535
  /**
450
536
  * Creates a microtask that yields to other tasks in the event loop
451
537
  * @returns Promise that resolves after yielding
@@ -481,6 +567,13 @@ export declare const batch: <T>(t: number, f: (xs: T[]) => void) => (x: T) => vo
481
567
  * @returns Function that returns promise of result
482
568
  */
483
569
  export declare const batcher: <T, U>(t: number, execute: (request: T[]) => U[] | Promise<U[]>) => (request: T) => Promise<U>;
570
+ /**
571
+ * Returns a promise that resolves after some proportion of promises complete
572
+ * @param threshold - number between 0 and 1 for how many promises to wait for
573
+ * @param promises - array of promises
574
+ * @returns promise
575
+ */
576
+ export declare const race: (threshold: number, promises: Promise<unknown>[]) => Promise<void>;
484
577
  /**
485
578
  * Removes protocol (http://, https://, etc) from URL
486
579
  * @param url - URL to process
@@ -565,6 +658,8 @@ export declare const on: <EventMap extends Record<string | symbol, any[]>, E ext
565
658
  * @returns Truncated string
566
659
  */
567
660
  export declare const ellipsize: (s: string, l: number, suffix?: string) => string;
661
+ /** Displays a list of items with oxford commas and a chosen conjunction */
662
+ export declare const displayList: <T>(xs: T[], conj?: string, n?: number) => string;
568
663
  /** Generates a hash string from input string */
569
664
  export declare const hash: (s: string) => string;
570
665
  /** Returns a function that gets the nth element of an array */
@@ -576,15 +671,17 @@ export declare const nthNe: (i: number, v: any) => (xs: any[], ...args: unknown[
576
671
  /** Returns a function that checks if key/value pairs of x match all pairs in spec */
577
672
  export declare const spec: (values: Obj | Array<any>) => (x: Obj | Array<any>, ...args: unknown[]) => boolean;
578
673
  /** Returns a function that checks equality with value */
579
- export declare const eq: <T>(v: T) => (x: T) => boolean;
674
+ export declare const eq: <T>(v: T) => (x: T, ...args: unknown[]) => boolean;
580
675
  /** Returns a function that checks inequality with value */
581
- export declare const ne: <T>(v: T) => (x: T) => boolean;
676
+ export declare const ne: <T>(v: T) => (x: T, ...args: unknown[]) => boolean;
582
677
  /** Returns a function that gets property value from object */
583
678
  export declare const prop: <T>(k: string) => (x: Record<string, unknown>) => T;
584
679
  /** Returns a function that adds/updates a property on object */
585
680
  export declare const assoc: <K extends string, T, U>(k: K, v: T) => (o: U) => U & Record<K, T>;
586
681
  /** Returns a function that removes a property on object */
587
682
  export declare const dissoc: <K extends string, T extends Obj>(k: K) => (o: T) => T;
683
+ /** Returns a function that checks whether a value is in the given sequence */
684
+ export declare const member: <T>(xs: Iterable<T>) => (x: T) => boolean;
588
685
  /**
589
686
  * Adds value to Set at key in object
590
687
  * @param m - Object mapping keys to Sets
@@ -1 +1 @@
1
- {"version":3,"file":"Tools.d.ts","sourceRoot":"","sources":["../../../../lib/src/Tools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Tools.d.ts","sourceRoot":"","sources":["../../../../lib/src/Tools.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,7 @@
1
1
  import { bech32, utf8 } from "@scure/base";
2
+ export const isNil = (x, ...args) => x === undefined || x === null;
3
+ export const isNotNil = (x, ...args) => x !== undefined && x !== null;
4
+ export const assertNotNil = (x, ...args) => x;
2
5
  // ----------------------------------------------------------------------------
3
6
  // Basic functional programming utilities
4
7
  // ----------------------------------------------------------------------------
@@ -155,6 +158,13 @@ export const MONTH = 30 * DAY;
155
158
  export const QUARTER = 90 * DAY;
156
159
  /** One year in seconds (approximate) */
157
160
  export const YEAR = 365 * DAY;
161
+ /** User's default locale */
162
+ export const LOCALE = new Intl.DateTimeFormat().resolvedOptions().locale;
163
+ /** User's default timezone */
164
+ export const TIMEZONE = (() => {
165
+ const [_, sign = "+", offset] = new Date().toString().match(/GMT([-\+]?)(\d+)/);
166
+ return sign + offset.slice(0, 2) + ":" + offset.slice(2);
167
+ })();
158
168
  /**
159
169
  * Multiplies time unit by count
160
170
  * @param unit - Time unit in seconds
@@ -177,6 +187,87 @@ export const ago = (unit, count = 1) => now() - int(unit, count);
177
187
  * @returns Time in milliseconds
178
188
  */
179
189
  export const ms = (seconds) => seconds * 1000;
190
+ /**
191
+ * Converts seconds to date
192
+ * @param seconds - Time in seconds
193
+ * @returns Date object
194
+ */
195
+ export const secondsToDate = (seconds) => new Date(seconds * 1000);
196
+ /**
197
+ * Converts date object to seconds
198
+ * @param date - Date object
199
+ * @returns timestamp in seconds
200
+ */
201
+ export const dateToSeconds = (date) => Math.round(date.valueOf() / 1000);
202
+ /**
203
+ * Creates a local date from a date string
204
+ * @param dateString - date string
205
+ * @param timezone - timezone string
206
+ * @returns timezone-aware Date object
207
+ */
208
+ export const createLocalDate = (dateString, timezone = TIMEZONE) => new Date(`${dateString} GMT${timezone}`);
209
+ /** Formatter for date+time */
210
+ export const dateTimeFormatter = new Intl.DateTimeFormat(LOCALE, {
211
+ dateStyle: "short",
212
+ timeStyle: "short",
213
+ });
214
+ /**
215
+ * Formats seconds as a datetime
216
+ * @param seconds - timestamp in seconds
217
+ * @returns datetime string
218
+ */
219
+ export const formatTimestamp = (seconds) => dateTimeFormatter.format(secondsToDate(seconds));
220
+ /** Formatter for date */
221
+ export const dateFormatter = new Intl.DateTimeFormat(LOCALE, {
222
+ year: "numeric",
223
+ month: "long",
224
+ day: "numeric",
225
+ });
226
+ /**
227
+ * Formats seconds as a date
228
+ * @param seconds - timestamp in seconds
229
+ * @returns date string
230
+ */
231
+ export const formatTimestampAsDate = (ts) => dateFormatter.format(secondsToDate(ts));
232
+ /** Formatter for time */
233
+ export const timeFormatter = new Intl.DateTimeFormat(LOCALE, {
234
+ timeStyle: "short",
235
+ });
236
+ /**
237
+ * Formats seconds as a time
238
+ * @param seconds - timestamp in seconds
239
+ * @returns time string
240
+ */
241
+ export const formatTimestampAsTime = (ts) => timeFormatter.format(secondsToDate(ts));
242
+ /**
243
+ * Formats seconds as a relative date (x minutes ago)
244
+ * @param seconds - timestamp in seconds
245
+ * @returns relative date string
246
+ */
247
+ export const formatTimestampRelative = (ts) => {
248
+ let unit;
249
+ let delta = now() - ts;
250
+ if (delta < int(MINUTE)) {
251
+ unit = "second";
252
+ }
253
+ else if (delta < int(HOUR)) {
254
+ unit = "minute";
255
+ delta = Math.round(delta / int(MINUTE));
256
+ }
257
+ else if (delta < int(DAY, 2)) {
258
+ unit = "hour";
259
+ delta = Math.round(delta / int(HOUR));
260
+ }
261
+ else {
262
+ unit = "day";
263
+ delta = Math.round(delta / int(DAY));
264
+ }
265
+ const locale = new Intl.RelativeTimeFormat().resolvedOptions().locale;
266
+ const formatter = new Intl.RelativeTimeFormat(locale, {
267
+ numeric: "auto",
268
+ });
269
+ return formatter.format(-delta, unit);
270
+ };
180
271
  // ----------------------------------------------------------------------------
181
272
  // Sequences
182
273
  // ----------------------------------------------------------------------------
@@ -272,6 +363,13 @@ export const difference = (a, b) => {
272
363
  * @returns New array with element removed
273
364
  */
274
365
  export const remove = (a, xs) => xs.filter(x => x !== a);
366
+ /**
367
+ * Removes element at index
368
+ * @param i - Index to remove
369
+ * @param xs - Source array
370
+ * @returns New array with element removed
371
+ */
372
+ export const removeAt = (i, xs) => [...xs.slice(0, i), ...xs.slice(i + 1)];
275
373
  /**
276
374
  * Returns elements from second array not present in first
277
375
  * @param a - Array of elements to exclude
@@ -410,6 +508,19 @@ export const groupBy = (f, xs) => {
410
508
  }
411
509
  return r;
412
510
  };
511
+ /**
512
+ * Counts array elements by key function
513
+ * @param f - Function to generate group key
514
+ * @param xs - Array to count entries
515
+ * @returns Map of counts
516
+ */
517
+ export const countBy = (f, xs) => {
518
+ const r = new Map();
519
+ for (const [k, items] of groupBy(f, xs)) {
520
+ r.set(k, items.length);
521
+ }
522
+ return r;
523
+ };
413
524
  /**
414
525
  * Creates map from array using key function
415
526
  * @param f - Function to generate key
@@ -475,7 +586,9 @@ export const chunks = (n, xs) => {
475
586
  /** Splits array into two parts at index */
476
587
  export const splitAt = (n, xs) => [xs.slice(0, n), xs.slice(n)];
477
588
  /** Inserts element into array at index */
478
- export const insert = (n, x, xs) => [...xs.slice(0, n), x, ...xs.slice(n)];
589
+ export const insertAt = (n, x, xs) => [...xs.slice(0, n), x, ...xs.slice(n)];
590
+ /** Replaces array element at index */
591
+ export const replaceAt = (n, x, xs) => [...xs.slice(0, n), x, ...xs.slice(n + 1)];
479
592
  /** Returns random element from array */
480
593
  export const choice = (xs) => xs[Math.floor(xs.length * Math.random())];
481
594
  /** Returns shuffled copy of iterable */
@@ -488,6 +601,8 @@ export const isIterable = (x) => Symbol.iterator in Object(x);
488
601
  export const toIterable = (x) => (isIterable(x) ? x : [x]);
489
602
  /** Ensures value is array by wrapping if needed */
490
603
  export const ensurePlural = (x) => (x instanceof Array ? x : [x]);
604
+ /** Ensures values are not undefined */
605
+ export const removeNil = (xs) => xs.filter(isNotNil).map(assertNotNil);
491
606
  // ----------------------------------------------------------------------------
492
607
  // Objects
493
608
  // ----------------------------------------------------------------------------
@@ -719,6 +834,23 @@ export const randomId = () => Math.random().toString().slice(2);
719
834
  * @returns Promise that resolves after t milliseconds
720
835
  */
721
836
  export const sleep = (t) => new Promise(resolve => setTimeout(resolve, t));
837
+ /**
838
+ * Creates a promise that resolves after the condition completes or timeout
839
+ * @param options - PollOptions
840
+ * @returns void Promise
841
+ */
842
+ export const poll = ({ interval = 300, condition, signal }) => new Promise(resolve => {
843
+ const int = setInterval(() => {
844
+ if (condition()) {
845
+ resolve();
846
+ clearInterval(int);
847
+ }
848
+ }, interval);
849
+ signal.addEventListener("abort", () => {
850
+ resolve();
851
+ clearInterval(int);
852
+ });
853
+ });
722
854
  /**
723
855
  * Creates a microtask that yields to other tasks in the event loop
724
856
  * @returns Promise that resolves after yielding
@@ -822,6 +954,28 @@ export const batcher = (t, execute) => {
822
954
  queue.push({ request, resolve, reject });
823
955
  });
824
956
  };
957
+ /**
958
+ * Returns a promise that resolves after some proportion of promises complete
959
+ * @param threshold - number between 0 and 1 for how many promises to wait for
960
+ * @param promises - array of promises
961
+ * @returns promise
962
+ */
963
+ export const race = (threshold, promises) => {
964
+ let count = 0;
965
+ if (threshold === 0) {
966
+ return Promise.resolve();
967
+ }
968
+ return new Promise((resolve, reject) => {
969
+ promises.forEach(p => {
970
+ p.then(() => {
971
+ count++;
972
+ if (count >= threshold * promises.length) {
973
+ resolve();
974
+ }
975
+ }).catch(reject);
976
+ });
977
+ });
978
+ };
825
979
  // ----------------------------------------------------------------------------
826
980
  // URLs
827
981
  // ----------------------------------------------------------------------------
@@ -954,6 +1108,16 @@ export const ellipsize = (s, l, suffix = "...") => {
954
1108
  }
955
1109
  return s + suffix;
956
1110
  };
1111
+ /** Displays a list of items with oxford commas and a chosen conjunction */
1112
+ export const displayList = (xs, conj = "and", n = 6) => {
1113
+ if (xs.length > n + 2) {
1114
+ return `${xs.slice(0, n).join(", ")}, ${conj} ${xs.length - n} others`;
1115
+ }
1116
+ if (xs.length < 3) {
1117
+ return xs.join(` ${conj} `);
1118
+ }
1119
+ return `${xs.slice(0, -1).join(", ")}, ${conj} ${xs.slice(-1).join("")}`;
1120
+ };
957
1121
  /** Generates a hash string from input string */
958
1122
  export const hash = (s) => Math.abs(s.split("").reduce((a, b) => ((a << 5) - a + b.charCodeAt(0)) | 0, 0)).toString();
959
1123
  // ----------------------------------------------------------------------------
@@ -983,15 +1147,17 @@ export const spec = (values) => (x, ...args) => {
983
1147
  return true;
984
1148
  };
985
1149
  /** Returns a function that checks equality with value */
986
- export const eq = (v) => (x) => x === v;
1150
+ export const eq = (v) => (x, ...args) => x === v;
987
1151
  /** Returns a function that checks inequality with value */
988
- export const ne = (v) => (x) => x !== v;
1152
+ export const ne = (v) => (x, ...args) => x !== v;
989
1153
  /** Returns a function that gets property value from object */
990
1154
  export const prop = (k) => (x) => x[k];
991
1155
  /** Returns a function that adds/updates a property on object */
992
1156
  export const assoc = (k, v) => (o) => ({ ...o, [k]: v });
993
1157
  /** Returns a function that removes a property on object */
994
1158
  export const dissoc = (k) => (o) => omit([k], o);
1159
+ /** Returns a function that checks whether a value is in the given sequence */
1160
+ export const member = (xs) => (x) => Array.from(xs).includes(x);
995
1161
  // ----------------------------------------------------------------------------
996
1162
  // Sets
997
1163
  // ----------------------------------------------------------------------------