@libp2p/utils 6.4.0-80ddad5bb → 6.4.0-c1d0b7fa4
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.
|
@@ -1,6 +1,30 @@
|
|
|
1
1
|
import type { AbortOptions } from '@libp2p/interface';
|
|
2
2
|
export interface RepeatingTask {
|
|
3
|
+
/**
|
|
4
|
+
* Update the interval after which the next iteration of the task will run.
|
|
5
|
+
*
|
|
6
|
+
* This is useful if, for example, you want to retry a task with a short rest
|
|
7
|
+
* duration until it succeeds, then periodically after that.
|
|
8
|
+
*
|
|
9
|
+
* This only affects the next iteration of the task, if it is currently
|
|
10
|
+
* running, that run will not be interrupted.
|
|
11
|
+
*/
|
|
12
|
+
setInterval(ms: number): void;
|
|
13
|
+
/**
|
|
14
|
+
* Update the amount of time a task will run before the passed abort signal
|
|
15
|
+
* will fire.
|
|
16
|
+
*
|
|
17
|
+
* * This only affects the next iteration of the task, if it is currently
|
|
18
|
+
* running, that run will not be interrupted.
|
|
19
|
+
*/
|
|
20
|
+
setTimeout(ms: number): void;
|
|
21
|
+
/**
|
|
22
|
+
* Start the task running
|
|
23
|
+
*/
|
|
3
24
|
start(): void;
|
|
25
|
+
/**
|
|
26
|
+
* Stop the task running
|
|
27
|
+
*/
|
|
4
28
|
stop(): void;
|
|
5
29
|
}
|
|
6
30
|
export interface RepeatingTaskOptions {
|
|
@@ -11,6 +35,8 @@ export interface RepeatingTaskOptions {
|
|
|
11
35
|
timeout?: number;
|
|
12
36
|
/**
|
|
13
37
|
* Whether to schedule the task to run immediately
|
|
38
|
+
*
|
|
39
|
+
* @default false
|
|
14
40
|
*/
|
|
15
41
|
runImmediately?: boolean;
|
|
16
42
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"repeating-task.d.ts","sourceRoot":"","sources":["../../src/repeating-task.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAErD,MAAM,WAAW,aAAa;IAC5B,KAAK,IAAI,IAAI,CAAA;
|
|
1
|
+
{"version":3,"file":"repeating-task.d.ts","sourceRoot":"","sources":["../../src/repeating-task.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAErD,MAAM,WAAW,aAAa;IAC5B;;;;;;;;OAQG;IACH,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAAA;IAE7B;;;;;;OAMG;IACH,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAAA;IAE5B;;OAEG;IACH,KAAK,IAAI,IAAI,CAAA;IAEb;;OAEG;IACH,IAAI,IAAI,IAAI,CAAA;CACb;AAED,MAAM,WAAW,oBAAoB;IACnC;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAA;IAEhB;;;;OAIG;IACH,cAAc,CAAC,EAAE,OAAO,CAAA;CACzB;AAED,wBAAgB,aAAa,CAAE,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,YAAY,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,oBAAoB,GAAG,aAAa,CA2EpJ"}
|
|
@@ -27,6 +27,20 @@ export function repeatingTask(fn, interval, options) {
|
|
|
27
27
|
}
|
|
28
28
|
let started = false;
|
|
29
29
|
return {
|
|
30
|
+
setInterval: (ms) => {
|
|
31
|
+
interval = ms;
|
|
32
|
+
// maybe reschedule
|
|
33
|
+
if (timeout != null) {
|
|
34
|
+
clearTimeout(timeout);
|
|
35
|
+
timeout = setTimeout(runTask, interval);
|
|
36
|
+
}
|
|
37
|
+
},
|
|
38
|
+
setTimeout: (ms) => {
|
|
39
|
+
if (options == null) {
|
|
40
|
+
options = {};
|
|
41
|
+
}
|
|
42
|
+
options.timeout = ms;
|
|
43
|
+
},
|
|
30
44
|
start: () => {
|
|
31
45
|
if (started) {
|
|
32
46
|
return;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"repeating-task.js","sourceRoot":"","sources":["../../src/repeating-task.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AACnD,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;
|
|
1
|
+
{"version":3,"file":"repeating-task.js","sourceRoot":"","sources":["../../src/repeating-task.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AACnD,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AAkDtC,MAAM,UAAU,aAAa,CAAE,EAAoD,EAAE,QAAgB,EAAE,OAA8B;IACnI,IAAI,OAAsC,CAAA;IAC1C,IAAI,kBAAmC,CAAA;IAEvC,SAAS,OAAO;QACd,MAAM,IAAI,GAAiB;YACzB,MAAM,EAAE,kBAAkB,CAAC,MAAM;SAClC,CAAA;QAED,IAAI,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,CAAC;YAC7B,MAAM,MAAM,GAAG,SAAS,CAAC,CAAC,kBAAkB,CAAC,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;YAC3F,eAAe,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAA;YAEjC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;QACtB,CAAC;QAED,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE;YAChC,MAAM,EAAE,CAAC,IAAI,CAAC,CAAA;QAChB,CAAC,CAAC;aACC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC;aACf,OAAO,CAAC,GAAG,EAAE;YACZ,IAAI,kBAAkB,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;gBACtC,gCAAgC;gBAChC,OAAM;YACR,CAAC;YAED,aAAa;YACb,OAAO,GAAG,UAAU,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAA;QACzC,CAAC,CAAC,CAAA;IACN,CAAC;IAED,IAAI,OAAO,GAAG,KAAK,CAAA;IAEnB,OAAO;QACL,WAAW,EAAE,CAAC,EAAE,EAAE,EAAE;YAClB,QAAQ,GAAG,EAAE,CAAA;YAEb,mBAAmB;YACnB,IAAI,OAAO,IAAI,IAAI,EAAE,CAAC;gBACpB,YAAY,CAAC,OAAO,CAAC,CAAA;gBACrB,OAAO,GAAG,UAAU,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAA;YACzC,CAAC;QACH,CAAC;QACD,UAAU,EAAE,CAAC,EAAE,EAAE,EAAE;YACjB,IAAI,OAAO,IAAI,IAAI,EAAE,CAAC;gBACpB,OAAO,GAAG,EAAE,CAAA;YACd,CAAC;YAED,OAAO,CAAC,OAAO,GAAG,EAAE,CAAA;QACtB,CAAC;QACD,KAAK,EAAE,GAAG,EAAE;YACV,IAAI,OAAO,EAAE,CAAC;gBACZ,OAAM;YACR,CAAC;YAED,OAAO,GAAG,IAAI,CAAA;YACd,kBAAkB,GAAG,IAAI,eAAe,EAAE,CAAA;YAC1C,eAAe,CAAC,QAAQ,EAAE,kBAAkB,CAAC,MAAM,CAAC,CAAA;YAEpD,UAAU;YACV,IAAI,OAAO,EAAE,cAAc,KAAK,IAAI,EAAE,CAAC;gBACrC,cAAc,CAAC,GAAG,EAAE;oBAClB,OAAO,EAAE,CAAA;gBACX,CAAC,CAAC,CAAA;YACJ,CAAC;iBAAM,CAAC;gBACN,YAAY;gBACZ,OAAO,GAAG,UAAU,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAA;YACzC,CAAC;QACH,CAAC;QACD,IAAI,EAAE,GAAG,EAAE;YACT,YAAY,CAAC,OAAO,CAAC,CAAA;YACrB,kBAAkB,EAAE,KAAK,EAAE,CAAA;YAC3B,OAAO,GAAG,KAAK,CAAA;QACjB,CAAC;KACF,CAAA;AACH,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@libp2p/utils",
|
|
3
|
-
"version": "6.4.0-
|
|
3
|
+
"version": "6.4.0-c1d0b7fa4",
|
|
4
4
|
"description": "Package to aggregate shared logic and dependencies for the libp2p ecosystem",
|
|
5
5
|
"license": "Apache-2.0 OR MIT",
|
|
6
6
|
"homepage": "https://github.com/libp2p/js-libp2p/tree/main/packages/utils#readme",
|
|
@@ -181,9 +181,9 @@
|
|
|
181
181
|
"dependencies": {
|
|
182
182
|
"@chainsafe/is-ip": "^2.0.2",
|
|
183
183
|
"@chainsafe/netmask": "^2.0.0",
|
|
184
|
-
"@libp2p/crypto": "5.0.10-
|
|
185
|
-
"@libp2p/interface": "2.4.1-
|
|
186
|
-
"@libp2p/logger": "5.1.7-
|
|
184
|
+
"@libp2p/crypto": "5.0.10-c1d0b7fa4",
|
|
185
|
+
"@libp2p/interface": "2.4.1-c1d0b7fa4",
|
|
186
|
+
"@libp2p/logger": "5.1.7-c1d0b7fa4",
|
|
187
187
|
"@multiformats/multiaddr": "^12.3.3",
|
|
188
188
|
"@sindresorhus/fnv1a": "^3.1.0",
|
|
189
189
|
"@types/murmurhash3js-revisited": "^3.0.3",
|
|
@@ -204,7 +204,7 @@
|
|
|
204
204
|
"uint8arrays": "^5.1.0"
|
|
205
205
|
},
|
|
206
206
|
"devDependencies": {
|
|
207
|
-
"@libp2p/peer-id": "5.0.11-
|
|
207
|
+
"@libp2p/peer-id": "5.0.11-c1d0b7fa4",
|
|
208
208
|
"@types/netmask": "^2.0.5",
|
|
209
209
|
"aegir": "^45.0.5",
|
|
210
210
|
"benchmark": "^2.1.4",
|
package/src/repeating-task.ts
CHANGED
|
@@ -3,7 +3,34 @@ import { anySignal } from 'any-signal'
|
|
|
3
3
|
import type { AbortOptions } from '@libp2p/interface'
|
|
4
4
|
|
|
5
5
|
export interface RepeatingTask {
|
|
6
|
+
/**
|
|
7
|
+
* Update the interval after which the next iteration of the task will run.
|
|
8
|
+
*
|
|
9
|
+
* This is useful if, for example, you want to retry a task with a short rest
|
|
10
|
+
* duration until it succeeds, then periodically after that.
|
|
11
|
+
*
|
|
12
|
+
* This only affects the next iteration of the task, if it is currently
|
|
13
|
+
* running, that run will not be interrupted.
|
|
14
|
+
*/
|
|
15
|
+
setInterval(ms: number): void
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* Update the amount of time a task will run before the passed abort signal
|
|
19
|
+
* will fire.
|
|
20
|
+
*
|
|
21
|
+
* * This only affects the next iteration of the task, if it is currently
|
|
22
|
+
* running, that run will not be interrupted.
|
|
23
|
+
*/
|
|
24
|
+
setTimeout(ms: number): void
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* Start the task running
|
|
28
|
+
*/
|
|
6
29
|
start(): void
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* Stop the task running
|
|
33
|
+
*/
|
|
7
34
|
stop(): void
|
|
8
35
|
}
|
|
9
36
|
|
|
@@ -16,6 +43,8 @@ export interface RepeatingTaskOptions {
|
|
|
16
43
|
|
|
17
44
|
/**
|
|
18
45
|
* Whether to schedule the task to run immediately
|
|
46
|
+
*
|
|
47
|
+
* @default false
|
|
19
48
|
*/
|
|
20
49
|
runImmediately?: boolean
|
|
21
50
|
}
|
|
@@ -54,6 +83,22 @@ export function repeatingTask (fn: (options?: AbortOptions) => void | Promise<vo
|
|
|
54
83
|
let started = false
|
|
55
84
|
|
|
56
85
|
return {
|
|
86
|
+
setInterval: (ms) => {
|
|
87
|
+
interval = ms
|
|
88
|
+
|
|
89
|
+
// maybe reschedule
|
|
90
|
+
if (timeout != null) {
|
|
91
|
+
clearTimeout(timeout)
|
|
92
|
+
timeout = setTimeout(runTask, interval)
|
|
93
|
+
}
|
|
94
|
+
},
|
|
95
|
+
setTimeout: (ms) => {
|
|
96
|
+
if (options == null) {
|
|
97
|
+
options = {}
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
options.timeout = ms
|
|
101
|
+
},
|
|
57
102
|
start: () => {
|
|
58
103
|
if (started) {
|
|
59
104
|
return
|