@hardlydifficult/poller 1.0.12 → 1.0.14

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/README.md CHANGED
@@ -13,122 +13,57 @@ npm install @hardlydifficult/poller
13
13
  ```typescript
14
14
  import { Poller } from "@hardlydifficult/poller";
15
15
 
16
- const fetchUser = async () => {
17
- const res = await fetch("https://api.example.com/user");
18
- return res.json();
19
- };
20
-
21
- const poller = new Poller(
22
- fetchUser,
23
- (user, previousUser) => {
24
- console.log("User changed:", user);
16
+ const poller = Poller.create({
17
+ fetch: async () => {
18
+ const res = await fetch("https://api.example.com/user");
19
+ return res.json();
25
20
  },
26
- 5000 // Poll every 5 seconds
27
- );
28
-
29
- await poller.start();
30
- // Polling begins immediately and every 5 seconds
31
-
32
- // Optionally, manually trigger a poll with debounce
33
- poller.trigger(1000); // Fires after 1s of inactivity
34
-
35
- // Stop polling when no longer needed
36
- poller.stop();
37
- ```
38
-
39
- ## Polling with Change Detection
40
-
41
- The `Poller` class periodically fetches data using a user-provided async function and invokes a callback only when the result changes. Change detection uses deep equality via `JSON.stringify`, ensuring structurally identical values (even with different object references) do not trigger redundant callbacks.
42
-
43
- ### Constructor Parameters
44
-
45
- | Parameter | Type | Description |
46
- |------|--|---------|
47
- | `fetchFn` | `() => Promise<T>` | Async function that fetches the data to poll |
48
- | `onChange` | `(current: T, previous: T \| undefined) => void` | Callback invoked when data changes (using deep equality) |
49
- | `intervalMs` | `number` | Polling interval in milliseconds |
50
- | `onError?` | `(error: unknown) => void` | Optional callback for fetch errors |
51
-
52
- ### `start(): Promise<void>`
53
-
54
- Begins polling immediately and at the configured interval.
21
+ onChange: (user, previousUser) => {
22
+ console.log("User changed:", user, previousUser);
23
+ },
24
+ intervalMs: 5000,
25
+ });
55
26
 
56
- ```typescript
57
27
  await poller.start();
58
- // Polls once immediately, then every intervalMs ms
59
- ```
60
-
61
- ### `stop(): void`
62
-
63
- Stops polling and clears any pending debounced triggers.
64
-
65
- ```typescript
28
+ poller.trigger();
66
29
  poller.stop();
67
- // No further polls occur; timers cleared
68
30
  ```
69
31
 
70
- ### `trigger(debounceMs?: number): void`
71
-
72
- Manually trigger a poll with debouncing to avoid excessive requests during rapid events.
32
+ ## Options
73
33
 
74
34
  ```typescript
75
- // Default debounce: 1000ms
76
- poller.trigger();
77
-
78
- // Custom debounce
79
- poller.trigger(2000); // Fires after 2 seconds of no other triggers
35
+ interface PollerOptions<T> {
36
+ fetch: () => Promise<T>;
37
+ onChange: (current: T, previous: T | undefined) => void;
38
+ intervalMs: number;
39
+ onError?: (error: unknown) => void;
40
+ debounceMs?: number; // default 1000
41
+ comparator?: (current: T, previous: T | undefined) => boolean;
42
+ }
80
43
  ```
81
44
 
82
- ## Debounced Manual Trigger
83
-
84
- The `trigger()` method allows manually forcing a poll while debouncing multiple rapid calls:
85
-
86
- ```typescript
87
- await poller.start();
88
- poller.trigger(500); // Schedules a poll after 500ms
89
- poller.trigger(500); // Resets debounce — only one poll fires
90
- ```
45
+ `comparator` should return `true` when values are considered equal (no change). By default Poller compares values using `JSON.stringify`.
91
46
 
92
47
  ## Error Handling
93
48
 
94
- Errors during polling do not halt the poller. They are optionally reported via `onError`, if provided.
95
-
96
49
  ```typescript
97
- const poller = new Poller(
98
- async () => {
50
+ const poller = new Poller({
51
+ fetch: async () => {
99
52
  throw new Error("Network failure");
100
53
  },
101
- (data) => console.log(data),
102
- 2000,
103
- (error) => console.error("Poll failed:", error)
104
- );
105
- await poller.start();
106
- // Logs: Poll failed: Error: Network failure
107
- // Continues polling after each error
54
+ onChange: () => {},
55
+ intervalMs: 2000,
56
+ onError: (error) => console.error("Poll failed:", error),
57
+ });
108
58
  ```
109
59
 
110
- ## Overlapping Request Handling
111
-
112
- The `Poller` skips new polls while a fetch is still in progress, preventing overlapping requests.
60
+ ## Custom Comparator
113
61
 
114
62
  ```typescript
115
- const fetchFn = async () => {
116
- // Simulates slow network never resolves before interval
117
- await new Promise((resolve) => setTimeout(resolve, 6000));
118
- return "data";
119
- };
120
- const poller = new Poller(fetchFn, () => {}, 1000);
121
- await poller.start();
122
- // Only one fetch runs at a time — subsequent intervals are skipped until it completes
63
+ const poller = new Poller({
64
+ fetch: async () => ({ id: "123", updatedAt: Date.now() }),
65
+ onChange: (current) => console.log("Changed", current),
66
+ intervalMs: 1000,
67
+ comparator: (current, previous) => current.id === previous?.id,
68
+ });
123
69
  ```
124
-
125
- ## Deep Equality Detection
126
-
127
- The `Poller` uses `JSON.stringify` to compare current and previous values, enabling detection of structural changes in objects and arrays.
128
-
129
- ```typescript
130
- const fetchCount = async () => ({ value: 1 });
131
- const poller = new Poller(fetchCount, (curr, prev) => {
132
- // Fires only when value changes
133
- }, 1000);
134
- ```
package/dist/Poller.d.ts CHANGED
@@ -1,18 +1,35 @@
1
1
  /** Generic polling utility that periodically fetches data and invokes a callback when the result changes. */
2
+ export interface PollerOptions<T> {
3
+ fetch: () => Promise<T>;
4
+ onChange: (current: T, previous: T | undefined) => void;
5
+ intervalMs: number;
6
+ onError?: (error: unknown) => void;
7
+ debounceMs?: number;
8
+ comparator?: (current: T, previous: T | undefined) => boolean;
9
+ }
10
+ /**
11
+ *
12
+ */
2
13
  export declare class Poller<T> {
3
14
  private readonly fetchFn;
4
15
  private readonly onChange;
5
16
  private readonly intervalMs;
6
17
  private readonly onError?;
18
+ private readonly debounceMs;
19
+ private readonly comparator;
7
20
  private timer;
8
21
  private previous;
9
22
  private running;
10
23
  private fetching;
11
24
  private triggerTimeout;
25
+ constructor(options: PollerOptions<T>);
26
+ /** @deprecated Use `Poller.create(options)` or `new Poller({ ...options })` instead. */
12
27
  constructor(fetchFn: () => Promise<T>, onChange: (current: T, previous: T | undefined) => void, intervalMs: number, onError?: (error: unknown) => void);
28
+ static create<T>(options: PollerOptions<T>): Poller<T>;
13
29
  start(): Promise<void>;
14
30
  stop(): void;
15
31
  trigger(debounceMs?: number): void;
16
32
  private poll;
33
+ private static resolveOptions;
17
34
  }
18
35
  //# sourceMappingURL=Poller.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Poller.d.ts","sourceRoot":"","sources":["../src/Poller.ts"],"names":[],"mappings":"AAAA,6GAA6G;AAC7G,qBAAa,MAAM,CAAC,CAAC;IACnB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAmB;IAC3C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAgD;IACzE,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAA2B;IAEpD,OAAO,CAAC,KAAK,CAA6C;IAC1D,OAAO,CAAC,QAAQ,CAAgB;IAChC,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,cAAc,CAA4C;gBAGhE,OAAO,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EACzB,QAAQ,EAAE,CAAC,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,GAAG,SAAS,KAAK,IAAI,EACvD,UAAU,EAAE,MAAM,EAClB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI;IAQ9B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAW5B,IAAI,IAAI,IAAI;IAYZ,OAAO,CAAC,UAAU,SAAO,GAAG,IAAI;YAalB,IAAI;CAuBnB"}
1
+ {"version":3,"file":"Poller.d.ts","sourceRoot":"","sources":["../src/Poller.ts"],"names":[],"mappings":"AAAA,6GAA6G;AAC7G,MAAM,WAAW,aAAa,CAAC,CAAC;IAC9B,KAAK,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC;IACxB,QAAQ,EAAE,CAAC,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,GAAG,SAAS,KAAK,IAAI,CAAC;IACxD,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IACnC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,GAAG,SAAS,KAAK,OAAO,CAAC;CAC/D;AAED;;GAEG;AACH,qBAAa,MAAM,CAAC,CAAC;IACnB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAmB;IAC3C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAgD;IACzE,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAA2B;IACpD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAmD;IAE9E,OAAO,CAAC,KAAK,CAA6C;IAC1D,OAAO,CAAC,QAAQ,CAAgB;IAChC,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,cAAc,CAA4C;gBAEtD,OAAO,EAAE,aAAa,CAAC,CAAC,CAAC;IACrC,wFAAwF;gBAEtF,OAAO,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EACzB,QAAQ,EAAE,CAAC,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,GAAG,SAAS,KAAK,IAAI,EACvD,UAAU,EAAE,MAAM,EAClB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI;IA0BpC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,OAAO,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;IAIhD,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAW5B,IAAI,IAAI,IAAI;IAYZ,OAAO,CAAC,UAAU,SAAkB,GAAG,IAAI;YAa7B,IAAI;IAqBlB,OAAO,CAAC,MAAM,CAAC,cAAc;CAuB9B"}
package/dist/Poller.js CHANGED
@@ -1,22 +1,34 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Poller = void 0;
4
- /** Generic polling utility that periodically fetches data and invokes a callback when the result changes. */
4
+ /**
5
+ *
6
+ */
5
7
  class Poller {
6
8
  fetchFn;
7
9
  onChange;
8
10
  intervalMs;
9
11
  onError;
12
+ debounceMs;
13
+ comparator;
10
14
  timer;
11
15
  previous;
12
16
  running = false;
13
17
  fetching = false;
14
18
  triggerTimeout;
15
- constructor(fetchFn, onChange, intervalMs, onError) {
16
- this.fetchFn = fetchFn;
17
- this.onChange = onChange;
18
- this.intervalMs = intervalMs;
19
- this.onError = onError;
19
+ constructor(optionsOrFetch, onChange, intervalMs, onError) {
20
+ const options = Poller.resolveOptions(optionsOrFetch, onChange, intervalMs, onError);
21
+ this.fetchFn = options.fetch;
22
+ this.onChange = options.onChange;
23
+ this.intervalMs = options.intervalMs;
24
+ this.onError = options.onError;
25
+ this.debounceMs = options.debounceMs ?? 1_000;
26
+ this.comparator =
27
+ options.comparator ??
28
+ ((current, previous) => JSON.stringify(current) === JSON.stringify(previous));
29
+ }
30
+ static create(options) {
31
+ return new Poller(options);
20
32
  }
21
33
  async start() {
22
34
  if (this.running) {
@@ -39,7 +51,7 @@ class Poller {
39
51
  this.triggerTimeout = undefined;
40
52
  }
41
53
  }
42
- trigger(debounceMs = 1000) {
54
+ trigger(debounceMs = this.debounceMs) {
43
55
  if (!this.running) {
44
56
  return;
45
57
  }
@@ -58,9 +70,7 @@ class Poller {
58
70
  this.fetching = true;
59
71
  try {
60
72
  const current = await this.fetchFn();
61
- const currentJson = JSON.stringify(current);
62
- const previousJson = JSON.stringify(this.previous);
63
- if (currentJson !== previousJson) {
73
+ if (!this.comparator(current, this.previous)) {
64
74
  this.onChange(current, this.previous);
65
75
  this.previous = current;
66
76
  }
@@ -74,6 +84,20 @@ class Poller {
74
84
  this.fetching = false;
75
85
  }
76
86
  }
87
+ static resolveOptions(optionsOrFetch, onChange, intervalMs, onError) {
88
+ if (typeof optionsOrFetch !== "function") {
89
+ return optionsOrFetch;
90
+ }
91
+ if (!onChange || intervalMs === undefined) {
92
+ throw new Error("Poller positional constructor requires fetch, onChange, and intervalMs.");
93
+ }
94
+ return {
95
+ fetch: optionsOrFetch,
96
+ onChange,
97
+ intervalMs,
98
+ onError,
99
+ };
100
+ }
77
101
  }
78
102
  exports.Poller = Poller;
79
103
  //# sourceMappingURL=Poller.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Poller.js","sourceRoot":"","sources":["../src/Poller.ts"],"names":[],"mappings":";;;AAAA,6GAA6G;AAC7G,MAAa,MAAM;IACA,OAAO,CAAmB;IAC1B,QAAQ,CAAgD;IACxD,UAAU,CAAS;IACnB,OAAO,CAA4B;IAE5C,KAAK,CAA6C;IAClD,QAAQ,CAAgB;IACxB,OAAO,GAAG,KAAK,CAAC;IAChB,QAAQ,GAAG,KAAK,CAAC;IACjB,cAAc,CAA4C;IAElE,YACE,OAAyB,EACzB,QAAuD,EACvD,UAAkB,EAClB,OAAkC;QAElC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAED,KAAK,CAAC,KAAK;QACT,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,OAAO;QACT,CAAC;QACD,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;QAClB,IAAI,CAAC,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE;YAC5B,KAAK,IAAI,CAAC,IAAI,EAAE,CAAC;QACnB,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;IACtB,CAAC;IAED,IAAI;QACF,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QACrB,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACf,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC1B,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC;QACzB,CAAC;QACD,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACxB,YAAY,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YAClC,IAAI,CAAC,cAAc,GAAG,SAAS,CAAC;QAClC,CAAC;IACH,CAAC;IAED,OAAO,CAAC,UAAU,GAAG,IAAI;QACvB,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAClB,OAAO;QACT,CAAC;QACD,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACxB,YAAY,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QACpC,CAAC;QACD,IAAI,CAAC,cAAc,GAAG,UAAU,CAAC,GAAG,EAAE;YACpC,IAAI,CAAC,cAAc,GAAG,SAAS,CAAC;YAChC,KAAK,IAAI,CAAC,IAAI,EAAE,CAAC;QACnB,CAAC,EAAE,UAAU,CAAC,CAAC;IACjB,CAAC;IAEO,KAAK,CAAC,IAAI;QAChB,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,OAAO;QACT,CAAC;QACD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QAErB,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;YACrC,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;YAC5C,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAEnD,IAAI,WAAW,KAAK,YAAY,EAAE,CAAC;gBACjC,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACtC,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;YAC1B,CAAC;QACH,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;gBACjB,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YACtB,CAAC;QACH,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;QACxB,CAAC;IACH,CAAC;CACF;AAnFD,wBAmFC"}
1
+ {"version":3,"file":"Poller.js","sourceRoot":"","sources":["../src/Poller.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,2 +1,2 @@
1
- export { Poller } from "./Poller.js";
1
+ export { Poller, type PollerOptions } from "./Poller.js";
2
2
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,KAAK,aAAa,EAAE,MAAM,aAAa,CAAC"}
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,yCAAqC;AAA5B,mGAAA,MAAM,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,yCAAyD;AAAhD,mGAAA,MAAM,OAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hardlydifficult/poller",
3
- "version": "1.0.12",
3
+ "version": "1.0.14",
4
4
  "main": "./dist/index.js",
5
5
  "types": "./dist/index.d.ts",
6
6
  "files": [