@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;IACb,IAAI,IAAI,IAAI,CAAA;CACb;AAED,MAAM,WAAW,oBAAoB;IACnC;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAA;IAEhB;;OAEG;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,CA2DpJ"}
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;AAqBtC,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,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"}
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-80ddad5bb",
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-80ddad5bb",
185
- "@libp2p/interface": "2.4.1-80ddad5bb",
186
- "@libp2p/logger": "5.1.7-80ddad5bb",
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-80ddad5bb",
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",
@@ -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