@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.
- package/dist/lib/src/TaskQueue.d.ts +2 -0
- package/dist/lib/src/TaskQueue.d.ts.map +1 -1
- package/dist/lib/src/TaskQueue.js +10 -0
- package/dist/lib/src/TaskQueue.js.map +1 -1
- package/dist/lib/src/Tools.d.ts +100 -3
- package/dist/lib/src/Tools.d.ts.map +1 -1
- package/dist/lib/src/Tools.js +169 -3
- package/dist/lib/src/Tools.js.map +1 -1
- package/dist/net/src/auth.d.ts +2 -1
- package/dist/net/src/auth.d.ts.map +1 -1
- package/dist/net/src/auth.js +16 -2
- package/dist/net/src/auth.js.map +1 -1
- package/dist/net/src/context.d.ts.map +1 -1
- package/dist/net/src/context.js +3 -3
- package/dist/net/src/context.js.map +1 -1
- package/dist/net/src/diff.d.ts.map +1 -1
- package/dist/net/src/diff.js +11 -12
- package/dist/net/src/diff.js.map +1 -1
- package/dist/net/src/policy.js +3 -3
- package/dist/net/src/policy.js.map +1 -1
- package/dist/net/src/pool.d.ts +1 -1
- package/dist/net/src/pool.d.ts.map +1 -1
- package/dist/net/src/pool.js +1 -1
- package/dist/net/src/pool.js.map +1 -1
- package/dist/net/src/publish.d.ts +29 -30
- package/dist/net/src/publish.d.ts.map +1 -1
- package/dist/net/src/publish.js +79 -108
- package/dist/net/src/publish.js.map +1 -1
- package/dist/net/src/request.d.ts +26 -60
- package/dist/net/src/request.d.ts.map +1 -1
- package/dist/net/src/request.js +170 -158
- package/dist/net/src/request.js.map +1 -1
- package/dist/net/src/tracker.d.ts.map +1 -1
- package/dist/net/src/tracker.js +4 -4
- package/dist/net/src/tracker.js.map +1 -1
- package/dist/relay/src/repository.d.ts +1 -1
- package/dist/relay/src/repository.d.ts.map +1 -1
- package/dist/relay/src/repository.js +1 -1
- package/dist/relay/src/repository.js.map +1 -1
- package/dist/util/src/Events.d.ts +1 -1
- package/dist/util/src/Events.d.ts.map +1 -1
- package/dist/util/src/Events.js +6 -5
- package/dist/util/src/Events.js.map +1 -1
- package/dist/util/src/Kinds.d.ts +3 -0
- package/dist/util/src/Kinds.d.ts.map +1 -1
- package/dist/util/src/Kinds.js +3 -0
- package/dist/util/src/Kinds.js.map +1 -1
- package/dist/util/src/List.d.ts +2 -0
- package/dist/util/src/List.d.ts.map +1 -1
- package/dist/util/src/List.js +10 -3
- package/dist/util/src/List.js.map +1 -1
- package/dist/util/src/Profile.d.ts +3 -10
- package/dist/util/src/Profile.d.ts.map +1 -1
- package/dist/util/src/Profile.js +1 -0
- package/dist/util/src/Profile.js.map +1 -1
- package/dist/util/src/Relay.d.ts +6 -0
- package/dist/util/src/Relay.d.ts.map +1 -1
- package/dist/util/src/Relay.js +9 -2
- package/dist/util/src/Relay.js.map +1 -1
- package/dist/util/src/Tags.d.ts +1 -0
- package/dist/util/src/Tags.d.ts.map +1 -1
- package/dist/util/src/Tags.js +2 -1
- package/dist/util/src/Tags.js.map +1 -1
- 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;
|
|
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;
|
|
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"}
|
package/dist/lib/src/Tools.d.ts
CHANGED
|
@@ -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
|
|
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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"}
|
package/dist/lib/src/Tools.js
CHANGED
|
@@ -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
|
|
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
|
// ----------------------------------------------------------------------------
|