rxjs-poll 2.2.12 → 3.0.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 (67) hide show
  1. package/README.md +68 -23
  2. package/dist/cjs/index.js +181 -99
  3. package/dist/cjs/index.js.map +1 -1
  4. package/dist/esm/index.js +182 -100
  5. package/dist/esm/index.js.map +1 -1
  6. package/dist/types/common/config.d.ts.map +1 -1
  7. package/dist/types/common/strategies.d.ts.map +1 -1
  8. package/dist/types/common/utils.d.ts +0 -1
  9. package/dist/types/common/utils.d.ts.map +1 -1
  10. package/dist/types/constants/config.const.d.ts +4 -1
  11. package/dist/types/constants/config.const.d.ts.map +1 -1
  12. package/dist/types/constants/notifier.const.d.ts +5 -0
  13. package/dist/types/constants/notifier.const.d.ts.map +1 -0
  14. package/dist/types/poll.d.ts +1 -1
  15. package/dist/types/poll.d.ts.map +1 -1
  16. package/dist/types/poller/create-poller.d.ts +12 -0
  17. package/dist/types/poller/create-poller.d.ts.map +1 -0
  18. package/dist/types/poller/execution/cycle-timer.d.ts +7 -0
  19. package/dist/types/poller/execution/cycle-timer.d.ts.map +1 -0
  20. package/dist/types/poller/execution/interval-factory.d.ts +3 -0
  21. package/dist/types/poller/execution/interval-factory.d.ts.map +1 -0
  22. package/dist/types/{common/service.d.ts → poller/execution/poll-service.d.ts} +3 -3
  23. package/dist/types/poller/execution/poll-service.d.ts.map +1 -0
  24. package/dist/types/poller/execution/repeat-factory.d.ts +3 -0
  25. package/dist/types/poller/execution/repeat-factory.d.ts.map +1 -0
  26. package/dist/types/{observables → poller/execution}/repeat-with.d.ts +3 -2
  27. package/dist/types/poller/execution/repeat-with.d.ts.map +1 -0
  28. package/dist/types/poller/execution/retry-poll.operator.d.ts +11 -0
  29. package/dist/types/poller/execution/retry-poll.operator.d.ts.map +1 -0
  30. package/dist/types/poller/pause/compose-pause.d.ts +10 -0
  31. package/dist/types/poller/pause/compose-pause.d.ts.map +1 -0
  32. package/dist/types/poller/pause/get-pause-mode.d.ts +10 -0
  33. package/dist/types/poller/pause/get-pause-mode.d.ts.map +1 -0
  34. package/dist/types/poller/pause/with-hidden-pause.d.ts +19 -0
  35. package/dist/types/poller/pause/with-hidden-pause.d.ts.map +1 -0
  36. package/dist/types/poller/pause/with-notifier-pause.d.ts +11 -0
  37. package/dist/types/poller/pause/with-notifier-pause.d.ts.map +1 -0
  38. package/dist/types/types/config.type.d.ts +34 -15
  39. package/dist/types/types/config.type.d.ts.map +1 -1
  40. package/dist/types/types/{observables.type.d.ts → pause-delay.type.d.ts} +3 -3
  41. package/dist/types/types/pause-delay.type.d.ts.map +1 -0
  42. package/dist/types/types/poller-composer.type.d.ts +3 -0
  43. package/dist/types/types/poller-composer.type.d.ts.map +1 -0
  44. package/dist/types/types/poller-context.type.d.ts +14 -0
  45. package/dist/types/types/poller-context.type.d.ts.map +1 -0
  46. package/dist/types/types/poller-factory.type.d.ts +11 -0
  47. package/dist/types/types/poller-factory.type.d.ts.map +1 -0
  48. package/dist/umd/index.js +181 -99
  49. package/dist/umd/index.js.map +1 -1
  50. package/dist/umd/index.min.js +1 -1
  51. package/dist/umd/index.min.js.map +1 -1
  52. package/package.json +7 -7
  53. package/dist/types/common/service.d.ts.map +0 -1
  54. package/dist/types/observables/document-visibility.d.ts +0 -17
  55. package/dist/types/observables/document-visibility.d.ts.map +0 -1
  56. package/dist/types/observables/factory.d.ts +0 -11
  57. package/dist/types/observables/factory.d.ts.map +0 -1
  58. package/dist/types/observables/interval-poller.d.ts +0 -11
  59. package/dist/types/observables/interval-poller.d.ts.map +0 -1
  60. package/dist/types/observables/pause-delay.d.ts +0 -7
  61. package/dist/types/observables/pause-delay.d.ts.map +0 -1
  62. package/dist/types/observables/repeat-poller.d.ts +0 -11
  63. package/dist/types/observables/repeat-poller.d.ts.map +0 -1
  64. package/dist/types/observables/repeat-with.d.ts.map +0 -1
  65. package/dist/types/operators/retry-poll.operator.d.ts +0 -11
  66. package/dist/types/operators/retry-poll.operator.d.ts.map +0 -1
  67. package/dist/types/types/observables.type.d.ts.map +0 -1
package/README.md CHANGED
@@ -1,11 +1,11 @@
1
1
  # RxJS Polling Operator
2
2
 
3
- <a href="https://www.npmjs.com/package/rxjs-poll/v/v2-lts" target="_blank" rel="noopener noreferrer nofollow"><img alt="NPM Version" src="https://img.shields.io/npm/v/rxjs-poll/v2-lts?label=npm@v2"></a>
4
- <a href="https://bundlephobia.com/package/rxjs-poll@2" target="_blank" rel="noopener noreferrer nofollow"><img alt="NPM Bundle Size" src="https://img.shields.io/bundlephobia/minzip/rxjs-poll/2?label=gzip@v2"></a>
5
- <a href="LICENSE" target="_blank" rel="noopener noreferrer nofollow"><img alt="GitHub License" src="https://img.shields.io/github/license/mmustra/rxjs-poll?label=license@v2"></a>
6
- <a href="https://github.com/mmustra/rxjs-poll/tree/v2/tests" target="_blank" rel="noopener noreferrer nofollow"><img alt="Codecov" src="https://img.shields.io/codecov/c/gh/mmustra/rxjs-poll/v2?label=coverage@v2&token=H9R97BLFQI"></a>
7
- <a href="https://github.com/mmustra/rxjs-poll/issues?q=is%3Aissue%20state%3Aopen%20label%3Av2" target="_blank" rel="noopener noreferrer nofollow"><img alt="GitHub Issues" src="https://img.shields.io/github/issues/mmustra/rxjs-poll/v2?label=issues@v2"></a>
8
- <a href="https://github.com/mmustra/rxjs-poll/commits/v2" target="_blank" rel="noopener noreferrer nofollow"><img alt="GitHub Latest Commits" src="https://img.shields.io/github/last-commit/mmustra/rxjs-poll/v2?label=activity@v2"></a>
3
+ <a href="https://www.npmjs.com/package/rxjs-poll" target="_blank" rel="noopener noreferrer nofollow"><img alt="NPM Version" src="https://img.shields.io/npm/v/rxjs-poll"></a>
4
+ <a href="https://bundlephobia.com/package/rxjs-poll@latest" target="_blank" rel="noopener noreferrer nofollow"><img alt="NPM Bundle Size" src="https://img.shields.io/bundlephobia/minzip/rxjs-poll/latest?label=gzip"></a>
5
+ <a href="LICENSE" target="_blank" rel="noopener noreferrer nofollow"><img alt="GitHub License" src="https://img.shields.io/github/license/mmustra/rxjs-poll"></a>
6
+ <a href="https://github.com/mmustra/rxjs-poll/tree/main/tests" target="_blank" rel="noopener noreferrer nofollow"><img alt="Codecov" src="https://img.shields.io/codecov/c/gh/mmustra/rxjs-poll?token=H9R97BLFQI"></a>
7
+ <a href="https://github.com/mmustra/rxjs-poll/issues?q=is%3Aissue%20state%3Aopen%20label%3Alatest" target="_blank" rel="noopener noreferrer nofollow"><img alt="GitHub Issues" src="https://img.shields.io/github/issues/mmustra/rxjs-poll/latest?label=issues"></a>
8
+ <a href="https://github.com/mmustra/rxjs-poll/commits/main" target="_blank" rel="noopener noreferrer nofollow"><img alt="GitHub Latest Commits" src="https://img.shields.io/github/last-commit/mmustra/rxjs-poll/main?label=activity"></a>
9
9
 
10
10
  A flexible RxJS operator library that enables polling on any completed observable source with advanced timing and retry strategies.
11
11
 
@@ -13,9 +13,8 @@ A flexible RxJS operator library that enables polling on any completed observabl
13
13
 
14
14
  - **Two polling types**: `repeat` and `interval` to suit different use cases
15
15
  - **Timing strategies**: `constant`, `linear`, `exponential`, `random` and `dynamic` (custom logic)
16
- - **Auto-pause**: Automatically pause/resume polling based on page visibility (browser only)
17
- - **Reliable execution**: First and in-flight cycles (poll or retry) guaranteed
18
- - **Flexible retries**: Control retry attempts with consecutive or total counting modes
16
+ - **Pause controls**: `notifier` and/or `when hidden` (browser; in-flight emission guaranteed)
17
+ - **Flexible retries**: Limit attempts on either `consecutive` or `total` errors
19
18
  - **Input validation**: Guards against unexpected input time values
20
19
  - **Cross-platform**: Works in both browser and Node.js environments
21
20
  - **Modern compatibility**: Compatible with RxJS v7+
@@ -31,13 +30,13 @@ npm install rxjs-poll --save
31
30
 
32
31
  Polling is essential when you need to repeatedly check for updates from sources that don't provide real-time notifications. Common scenarios include monitoring HTTP API endpoints for status changes, watching DOM elements for state updates, or periodically sampling data streams.
33
32
 
34
- This operator cleanly separates polling concerns from your core observable logic. It waits for your source observable to complete per polling type, then schedules the next poll based on your configuration. The architecture distinguishes between normal polling delays and error retry scenarios, giving you precise control over both success and failure timing strategies.
33
+ This operator polls by re-subscribing to your source observable after each completion, with intervals determined by the selected polling type. It distinguishes between normal polling delays and error retry scenarios, giving you precise control over both success and failure timing. Polling can be paused via an external notifier (direct emission control) or automatically when the browser tab becomes hidden (with first and in-flight emissions guaranteed).
35
34
 
36
35
  ## 🧪 Usage Examples
37
36
 
38
37
  ### Default Configuration
39
38
 
40
- [▶️ Live Demo](https://stackblitz.com/edit/rxjs-xdf2x4vx?devToolsHeight=100&file=index.ts)
39
+ [▶️ Live Demo](https://stackblitz.com/edit/rxjs-7wpqq8ix?devToolsHeight=50&file=index.ts)
41
40
 
42
41
  Plug and play - just add the operator to your pipe and start polling.
43
42
 
@@ -55,7 +54,7 @@ request$
55
54
 
56
55
  ### Strategy-Based Configuration
57
56
 
58
- [▶️ Live Demo](https://stackblitz.com/edit/rxjs-vrefdzj1?devToolsHeight=100&file=index.ts)
57
+ [▶️ Live Demo](https://stackblitz.com/edit/rxjs-mnlpyjya?devToolsHeight=50&file=index.ts)
59
58
 
60
59
  Use built-in strategies for easy timing control.
61
60
 
@@ -82,7 +81,7 @@ request$
82
81
 
83
82
  ### Advanced Dynamic Strategies
84
83
 
85
- [▶️ Live Demo](https://stackblitz.com/edit/rxjs-6fmgfij8?devToolsHeight=100&file=index.ts)
84
+ [▶️ Live Demo](https://stackblitz.com/edit/rxjs-guldaznr?devToolsHeight=50&file=index.ts)
86
85
 
87
86
  Implement complex polling strategies with dynamic timing based on poll state.
88
87
 
@@ -94,12 +93,12 @@ request$
94
93
  .pipe(
95
94
  poll({
96
95
  delay: {
97
- /** Adaptive polling based on response data */
96
+ /* Adaptive polling based on response data */
98
97
  strategy: 'dynamic',
99
98
  time: ({ value }) => (value?.items.length ? 1000 : 500),
100
99
  },
101
100
  retry: {
102
- /** Custom exponential backoff with jitter */
101
+ /* Custom exponential backoff with jitter */
103
102
  strategy: 'dynamic',
104
103
  time: ({ consecutiveRetryCount }) => {
105
104
  const exponential = Math.pow(2, consecutiveRetryCount - 1) * 1000;
@@ -115,11 +114,41 @@ request$
115
114
  .subscribe({ next: console.log });
116
115
  ```
117
116
 
117
+ ### Pause With Notifier
118
+
119
+ Control polling from outside by passing an `Observable<boolean>` as `pause.notifier`: emit `true` to pause and `false` to resume. If the notifier never emits, polling starts (same as resume). To start paused, use an observable that emits `true` initially (e.g. `new BehaviorSubject(true)`). You can combine it with `whenHidden: true` so both your stream and tab visibility affect pausing.
120
+
121
+ [▶️ Live Demo](https://stackblitz.com/edit/rxjs-yn2ewfbm?devToolsHeight=50&file=index.ts)
122
+
123
+ ```typescript
124
+ import { poll } from 'rxjs-poll';
125
+ import { fromEvent } from 'rxjs';
126
+ import { map, scan, startWith, takeWhile } from 'rxjs';
127
+
128
+ const click$ = fromEvent(document, 'click').pipe(
129
+ scan((isPaused) => !isPaused, false)
130
+ );
131
+
132
+ request$
133
+ .pipe(
134
+ poll({
135
+ pause: {
136
+ notifier: click$,
137
+ whenHidden: false, // set true (default) to also pause when tab hidden
138
+ },
139
+ }),
140
+ takeWhile(({ status }) => status !== 'done', true)
141
+ )
142
+ .subscribe({ next: console.log });
143
+
144
+ // Now, click anywhere on the page to toggle pause/resume
145
+ ```
146
+
118
147
  ## 📋 API Reference
119
148
 
120
149
  ### `poll(config?: PollConfig)`
121
150
 
122
- Creates a polling operator that will begin polling once the source observable completes.
151
+ Creates a polling operator that manages the source observable's subscription lifecycle.
123
152
 
124
153
  #### PollConfig
125
154
 
@@ -206,14 +235,29 @@ interface PollConfig {
206
235
  consecutiveOnly?: boolean;
207
236
  };
208
237
 
238
+
209
239
  /**
210
- * [Browser only] Controls polling behavior when page isn't visible
211
- * - true: Pause polling when tab isn't active, and resume on active
212
- * - false: Poll even when tab isn't focused
213
- * @default true
214
- * @note Every started cycle (poll or retry) finishes before pausing
240
+ * Configuration for pause behavior
215
241
  */
216
- pauseWhenHidden?: boolean;
242
+ pause?: {
243
+ /**
244
+ * Observable that emits true to pause, false to resume
245
+ * @default false
246
+ * @note
247
+ * - Interrupts polling/retrying cycles
248
+ * - Can pause first emission
249
+ * - Defaults to false if no initial emission
250
+ */
251
+ notifier?: Observable<boolean>;
252
+ /**
253
+ * [Browser only] When true, polling pauses if tab isn't visible
254
+ * @default true
255
+ * @note
256
+ * - Polling/retrying cycles finish before pausing
257
+ * - First emission guaranteed
258
+ */
259
+ whenHidden?: boolean;
260
+ };
217
261
  }
218
262
  ```
219
263
 
@@ -245,8 +289,9 @@ interface PollState<T> {
245
289
 
246
290
  ## 📚 Additional Resources
247
291
 
292
+ - **[V3 Changes](docs/V3_CHANGES.md)** - v2→v3 overview and migration steps
293
+ - **[V2 Changes](docs/V2_CHANGES.md)** - v1→v2 overview and migration steps
248
294
  - **[Troubleshooting Guide](docs/TROUBLESHOOTING.md)** - Common issues and solutions
249
- - **[V2 Changes](docs/V2_CHANGES.md)** - Overview of the changes and migration steps
250
295
 
251
296
  ## 🤝 Contributing
252
297
 
package/dist/cjs/index.js CHANGED
@@ -2,6 +2,10 @@
2
2
 
3
3
  var rxjs = require('rxjs');
4
4
 
5
+ const pollMode = {
6
+ DELAY: 'delay',
7
+ RETRY: 'retry',
8
+ };
5
9
  const pollType = {
6
10
  REPEAT: 'repeat',
7
11
  INTERVAL: 'interval',
@@ -15,6 +19,8 @@ const strategyType = {
15
19
  DYNAMIC: 'dynamic',
16
20
  };
17
21
 
22
+ const defaultNotifier$ = rxjs.of(false);
23
+
18
24
  const defaultConfig = {
19
25
  type: pollType.REPEAT,
20
26
  delay: {
@@ -27,7 +33,10 @@ const defaultConfig = {
27
33
  limit: 3,
28
34
  consecutiveOnly: true,
29
35
  },
30
- pauseWhenHidden: true,
36
+ pause: {
37
+ notifier: defaultNotifier$,
38
+ whenHidden: true,
39
+ },
31
40
  };
32
41
 
33
42
  function normalizeNumber(value, defaultValue = 0, isFinite = true) {
@@ -52,13 +61,10 @@ function isFunction(value) {
52
61
  function isBrowser() {
53
62
  return typeof globalThis.window !== 'undefined' && typeof globalThis.window.document !== 'undefined';
54
63
  }
55
- function isDocumentVisible() {
56
- return !document.hidden;
57
- }
58
64
 
59
65
  function getStrategyTimeProducer(mode, config) {
60
66
  const { strategy, time } = config[mode];
61
- const isDelayMode = mode === 'delay';
67
+ const isDelayMode = mode === pollMode.DELAY;
62
68
  const isConsecutive = config.retry.consecutiveOnly;
63
69
  let timeProducer;
64
70
  let attemptKey;
@@ -95,7 +101,7 @@ function getStrategyTimeProducer(mode, config) {
95
101
 
96
102
  function extendConfig(config) {
97
103
  const normalizedConfig = normalizeConfig(config);
98
- return Object.assign(Object.assign({}, normalizedConfig), { getDelayTime: getTimeProducer('delay', normalizedConfig), getRetryTime: getTimeProducer('retry', normalizedConfig) });
104
+ return Object.assign(Object.assign({}, normalizedConfig), { getDelayTime: getTimeProducer(pollMode.DELAY, normalizedConfig), getRetryTime: getTimeProducer(pollMode.RETRY, normalizedConfig) });
99
105
  }
100
106
  function getTimeProducer(mode, config) {
101
107
  const defaultTime = defaultConfig[mode].time;
@@ -107,7 +113,7 @@ function getTimeProducer(mode, config) {
107
113
  };
108
114
  }
109
115
  function normalizeConfig(config) {
110
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o;
116
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r;
111
117
  return {
112
118
  type: (_a = config === null || config === void 0 ? void 0 : config.type) !== null && _a !== void 0 ? _a : defaultConfig.type,
113
119
  delay: {
@@ -124,10 +130,80 @@ function normalizeConfig(config) {
124
130
  limit: normalizeNumber((_k = config === null || config === void 0 ? void 0 : config.retry) === null || _k === void 0 ? void 0 : _k.limit, defaultConfig.retry.limit, false),
125
131
  consecutiveOnly: (_m = (_l = config === null || config === void 0 ? void 0 : config.retry) === null || _l === void 0 ? void 0 : _l.consecutiveOnly) !== null && _m !== void 0 ? _m : defaultConfig.retry.consecutiveOnly,
126
132
  },
127
- pauseWhenHidden: (_o = config === null || config === void 0 ? void 0 : config.pauseWhenHidden) !== null && _o !== void 0 ? _o : defaultConfig.pauseWhenHidden,
133
+ pause: {
134
+ notifier: (_p = (_o = config === null || config === void 0 ? void 0 : config.pause) === null || _o === void 0 ? void 0 : _o.notifier) !== null && _p !== void 0 ? _p : defaultConfig.pause.notifier,
135
+ whenHidden: (_r = (_q = config === null || config === void 0 ? void 0 : config.pause) === null || _q === void 0 ? void 0 : _q.whenHidden) !== null && _r !== void 0 ? _r : defaultConfig.pause.whenHidden,
136
+ },
128
137
  };
129
138
  }
130
139
 
140
+ const timingToleranceMs = 100;
141
+
142
+ function getCycleTimer$(options) {
143
+ const { time, sourceStartTime = 0, sourceEndTime = 0 } = options;
144
+ const delayMs = time - (sourceEndTime - sourceStartTime) - timingToleranceMs;
145
+ return delayMs > 0 ? rxjs.timer(delayMs) : rxjs.of(0);
146
+ }
147
+
148
+ function repeatWith$(source$, getTime) {
149
+ return source$.pipe(rxjs.repeat({
150
+ delay: () => rxjs.timer(getTime()),
151
+ }));
152
+ }
153
+
154
+ function retryPoll(pollService, getRetryTime) {
155
+ return (source) => source.pipe(rxjs.retry({
156
+ delay: (error) => {
157
+ pollService.incrementRetry();
158
+ if (pollService.isRetryLimit()) {
159
+ return rxjs.throwError(() => error);
160
+ }
161
+ pollService.setError(error);
162
+ return rxjs.timer(getRetryTime ? getRetryTime() : pollService.getRetryTime());
163
+ },
164
+ }), rxjs.tap(() => pollService.resetError()));
165
+ }
166
+
167
+ function createDirectPoller$$1(source$, pollService) {
168
+ return repeatWith$(rxjs.of(null), () => {
169
+ pollService.incrementPoll();
170
+ return pollService.getDelayTime();
171
+ }).pipe(rxjs.switchMap(() => source$), retryPoll(pollService));
172
+ }
173
+ function createCycleControl$$1(source$, pollService) {
174
+ const cycle$ = new rxjs.Subject();
175
+ let time = 0;
176
+ let sourceStartTime = 0;
177
+ let sourceEndTime = 0;
178
+ const poller$ = repeatWith$(rxjs.of(null), () => {
179
+ pollService.incrementPoll();
180
+ time = pollService.getDelayTime();
181
+ return time;
182
+ }).pipe(rxjs.switchMap(() => source$.pipe(rxjs.tap({
183
+ subscribe: () => {
184
+ sourceStartTime = performance.now();
185
+ },
186
+ complete: () => {
187
+ sourceEndTime = performance.now();
188
+ cycle$.next();
189
+ },
190
+ error: () => {
191
+ sourceEndTime = performance.now();
192
+ },
193
+ }))), retryPoll(pollService, () => {
194
+ time = pollService.getRetryTime();
195
+ cycle$.next();
196
+ return time;
197
+ }));
198
+ const cycler$ = cycle$.pipe(rxjs.switchMap(() => getCycleTimer$({
199
+ time,
200
+ sourceStartTime,
201
+ sourceEndTime,
202
+ })));
203
+ return { poller$, cycler$ };
204
+ }
205
+ const intervalPollerFactory = { createDirectPoller$: createDirectPoller$$1, createCycleControl$: createCycleControl$$1 };
206
+
131
207
  const defaultState = {
132
208
  value: undefined,
133
209
  error: undefined,
@@ -176,117 +252,123 @@ class PollService {
176
252
  }
177
253
  }
178
254
 
179
- function retryPoll(pollService, getRetryTime) {
180
- return (source) => source.pipe(rxjs.retry({
181
- delay: (error) => {
182
- pollService.incrementRetry();
183
- if (pollService.isRetryLimit()) {
184
- return rxjs.throwError(() => error);
185
- }
186
- pollService.setError(error);
187
- return rxjs.timer(getRetryTime ? getRetryTime() : pollService.getRetryTime());
255
+ function createDirectPoller$(source$, pollService) {
256
+ return repeatWith$(source$, () => {
257
+ pollService.incrementPoll();
258
+ return pollService.getDelayTime();
259
+ }).pipe(retryPoll(pollService));
260
+ }
261
+ function createCycleControl$(source$, pollService) {
262
+ const cycle$ = new rxjs.Subject();
263
+ let time = 0;
264
+ const poller$ = repeatWith$(source$.pipe(rxjs.tap({
265
+ complete: () => {
266
+ pollService.incrementPoll();
267
+ time = pollService.getDelayTime();
268
+ cycle$.next();
188
269
  },
189
- }), rxjs.tap(() => pollService.resetError()));
270
+ })), () => time).pipe(retryPoll(pollService, () => {
271
+ time = pollService.getRetryTime();
272
+ cycle$.next();
273
+ return time;
274
+ }));
275
+ const cycler$ = cycle$.pipe(rxjs.switchMap(() => getCycleTimer$({ time })));
276
+ return { poller$, cycler$ };
190
277
  }
278
+ const repeatPollerFactory = { createDirectPoller$, createCycleControl$ };
191
279
 
192
- function withDocumentVisibility$(poller$, pauser$, visibilitySource$) {
193
- const visibility$ = getDocumentVisibility$();
194
- const pause$ = visibility$.pipe(rxjs.switchMap((isVisible) => (isVisible ? rxjs.NEVER : pauser$)));
195
- let emissionStarted = true;
196
- return visibility$.pipe(rxjs.filter((isVisible) => isVisible || emissionStarted), rxjs.exhaustMap(() => poller$.pipe(rxjs.takeUntil(pause$))), rxjs.tap(() => (emissionStarted = false)));
197
- }
198
- let documentVisibility$;
199
- function getDocumentVisibility$() {
200
- if (documentVisibility$) {
201
- return documentVisibility$;
280
+ function getPauseMode(ctx) {
281
+ const inBrowser = isBrowser();
282
+ const { notifier, whenHidden } = ctx.pollService.config.pause;
283
+ const isDefaultNotifier = notifier === defaultNotifier$;
284
+ if ((!inBrowser || !whenHidden) && isDefaultNotifier) {
285
+ return 'none';
286
+ }
287
+ if ((!inBrowser || !whenHidden) && !isDefaultNotifier) {
288
+ return 'notifier';
202
289
  }
203
- documentVisibility$ = rxjs.fromEvent(document, 'visibilitychange').pipe(rxjs.startWith(null), rxjs.map(isDocumentVisible), rxjs.shareReplay({ bufferSize: 1, refCount: true }));
204
- return documentVisibility$;
290
+ if (whenHidden && isDefaultNotifier) {
291
+ return 'hidden';
292
+ }
293
+ return 'both';
205
294
  }
206
295
 
207
- const timingToleranceMs = 100;
208
-
209
- function getPauseDelay$(options) {
210
- const { time, sourceStartTime = 0, sourceEndTime = 0 } = options;
211
- const delayMs = time - (sourceEndTime - sourceStartTime) - timingToleranceMs;
212
- return delayMs > 0 ? rxjs.timer(delayMs) : rxjs.of(0);
296
+ function withHiddenPause$(poller$, cycler$, notifier$) {
297
+ const isHidden$ = getHiddenNotifier$();
298
+ const pause$ = isHidden$.pipe(rxjs.switchMap((isHidden) => (isHidden ? cycler$ : rxjs.NEVER)));
299
+ let isFirstEmission = true;
300
+ return isHidden$.pipe(rxjs.filter((isHidden) => !isHidden || isFirstEmission), rxjs.exhaustMap(() => poller$.pipe(rxjs.takeUntil(pause$))), rxjs.tap(() => (isFirstEmission = false)));
213
301
  }
214
-
215
- function repeatWith$(source$, getTime) {
216
- return source$.pipe(rxjs.repeat({
217
- delay: () => rxjs.timer(getTime()),
218
- }));
302
+ let hiddenNotifier$;
303
+ function getHiddenNotifier$() {
304
+ if (hiddenNotifier$) {
305
+ return hiddenNotifier$;
306
+ }
307
+ hiddenNotifier$ = rxjs.fromEvent(document, 'visibilitychange').pipe(rxjs.startWith(null), rxjs.map(() => document.hidden), rxjs.shareReplay({ bufferSize: 1, refCount: true }));
308
+ return hiddenNotifier$;
219
309
  }
220
310
 
221
- function buildIntervalPoller$(source$, pollService) {
222
- if (!isBrowser() || !pollService.config.pauseWhenHidden) {
223
- return repeatWith$(rxjs.of(null), () => {
224
- pollService.incrementPoll();
225
- return pollService.getDelayTime();
226
- }).pipe(rxjs.switchMap(() => source$), retryPoll(pollService));
227
- }
228
- const pauseTrigger$ = new rxjs.Subject();
229
- let time = 0;
230
- let sourceStartTime = 0;
231
- let sourceEndTime = 0;
232
- const poller$ = repeatWith$(rxjs.of(null), () => {
233
- pollService.incrementPoll();
234
- time = pollService.getDelayTime();
235
- return time;
236
- }).pipe(rxjs.switchMap(() => source$.pipe(rxjs.tap({
237
- subscribe: () => {
238
- sourceStartTime = performance.now();
239
- },
240
- finalize: () => {
241
- sourceEndTime = performance.now();
242
- pauseTrigger$.next();
243
- },
244
- }))), retryPoll(pollService, () => {
245
- time = pollService.getRetryTime();
246
- return time;
247
- }));
248
- const pauser$ = pauseTrigger$.pipe(rxjs.switchMap(() => getPauseDelay$({
249
- time,
250
- sourceStartTime,
251
- sourceEndTime,
252
- })));
253
- return withDocumentVisibility$(poller$, pauser$);
311
+ function withNotifierPause$(poller$, notifier$) {
312
+ const sharedNotifier$ = notifier$.pipe(rxjs.share());
313
+ const initialNotifier$ = rxjs.race(sharedNotifier$, defaultNotifier$).pipe(rxjs.take(1));
314
+ return rxjs.merge(initialNotifier$, sharedNotifier$).pipe(rxjs.distinctUntilChanged(), rxjs.switchMap((isPaused) => (isPaused ? rxjs.NEVER : poller$)));
254
315
  }
255
316
 
256
- function buildRepeatPoller$(source$, pollService) {
257
- if (!isBrowser() || !pollService.config.pauseWhenHidden) {
258
- return repeatWith$(source$, () => {
259
- pollService.incrementPoll();
260
- return pollService.getDelayTime();
261
- }).pipe(retryPoll(pollService));
317
+ const composePause$ = (ctx) => {
318
+ var _a, _b, _c, _d;
319
+ const { source$, pollService, factory } = ctx;
320
+ const pauseMode = getPauseMode(ctx);
321
+ if (pauseMode === 'none') {
322
+ ctx.poller$ = (_a = ctx.poller$) !== null && _a !== void 0 ? _a : factory.createDirectPoller$(source$, pollService);
323
+ return ctx;
262
324
  }
263
- const pauseTrigger$ = new rxjs.Subject();
264
- let time = 0;
265
- const poller$ = repeatWith$(source$.pipe(rxjs.finalize(() => pauseTrigger$.next())), () => {
266
- pollService.incrementPoll();
267
- time = pollService.getDelayTime();
268
- return time;
269
- }).pipe(retryPoll(pollService, () => {
270
- time = pollService.getRetryTime();
271
- return time;
272
- }));
273
- const pauser$ = pauseTrigger$.pipe(rxjs.switchMap(() => getPauseDelay$({ time })));
274
- return withDocumentVisibility$(poller$, pauser$);
275
- }
325
+ const { notifier } = pollService.config.pause;
326
+ if (pauseMode === 'notifier') {
327
+ const directPoller$ = (_b = ctx.poller$) !== null && _b !== void 0 ? _b : factory.createDirectPoller$(source$, pollService);
328
+ ctx.poller$ = withNotifierPause$(directPoller$, notifier);
329
+ return ctx;
330
+ }
331
+ let poller$;
332
+ let cycler$;
333
+ if (ctx.poller$ && ctx.cycler$) {
334
+ poller$ = ctx.poller$;
335
+ cycler$ = ctx.cycler$;
336
+ }
337
+ else {
338
+ const control = factory.createCycleControl$(source$, pollService);
339
+ poller$ = (_c = ctx.poller$) !== null && _c !== void 0 ? _c : control.poller$;
340
+ cycler$ = (_d = ctx.cycler$) !== null && _d !== void 0 ? _d : control.cycler$;
341
+ }
342
+ ctx.cycler$ = cycler$;
343
+ if (pauseMode === 'hidden') {
344
+ ctx.poller$ = withHiddenPause$(poller$, cycler$);
345
+ }
346
+ else if (pauseMode === 'both') {
347
+ ctx.poller$ = withNotifierPause$(withHiddenPause$(poller$, cycler$), notifier);
348
+ }
349
+ else {
350
+ throw new Error(`composePause$: Unsupported pause mode "${pauseMode}"!`);
351
+ }
352
+ return ctx;
353
+ };
276
354
 
277
- function createPoller$(source$, pollService) {
355
+ function createPoller$(source$, extendedConfig) {
356
+ const pollService = new PollService(extendedConfig);
278
357
  const completed$ = source$.pipe(rxjs.takeLast(1), rxjs.tap((value) => pollService.setValue(value)));
279
- const poller$ = pollService.config.type === pollType.REPEAT
280
- ? buildRepeatPoller$(completed$, pollService)
281
- : buildIntervalPoller$(completed$, pollService);
358
+ const factory = pollService.config.type === pollType.REPEAT ? repeatPollerFactory : intervalPollerFactory;
359
+ const ctx = {
360
+ source$: completed$,
361
+ pollService,
362
+ factory,
363
+ };
364
+ const { poller$ } = composePause$(ctx);
282
365
  return poller$;
283
366
  }
284
367
 
285
368
  function poll(config) {
286
369
  return (source$) => {
287
370
  const extendedConfig = extendConfig(config);
288
- const pollService = new PollService(extendedConfig);
289
- const poller$ = createPoller$(source$, pollService);
371
+ const poller$ = createPoller$(source$, extendedConfig);
290
372
  return poller$;
291
373
  };
292
374
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../src/constants/poll.const.ts","../../src/constants/strategies.const.ts","../../src/constants/config.const.ts","../../src/common/utils.ts","../../src/common/strategies.ts","../../src/common/config.ts","../../src/constants/state.const.ts","../../src/common/service.ts","../../src/operators/retry-poll.operator.ts","../../src/observables/document-visibility.ts","../../src/constants/timing.const.ts","../../src/observables/pause-delay.ts","../../src/observables/repeat-with.ts","../../src/observables/interval-poller.ts","../../src/observables/repeat-poller.ts","../../src/observables/factory.ts","../../src/poll.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["retry","throwError","timer","tap","switchMap","NEVER","filter","exhaustMap","takeUntil","fromEvent","startWith","map","shareReplay","of","repeat","Subject","finalize","takeLast"],"mappings":";;;;AAKO,MAAM,QAAQ,GAAG;AACtB,IAAA,MAAM,EAAE,QAAQ;AAChB,IAAA,QAAQ,EAAE,UAAU;;;ACPf,MAAM,YAAY,GAAG;AAC1B,IAAA,QAAQ,EAAE,UAAU;AACpB,IAAA,MAAM,EAAE,QAAQ;AAChB,IAAA,WAAW,EAAE,aAAa;AAC1B,IAAA,MAAM,EAAE,QAAQ;AAChB,IAAA,OAAO,EAAE,SAAS;;;ACDb,MAAM,aAAa,GAAG;IAC3B,IAAI,EAAE,QAAQ,CAAC,MAAM;AACrB,IAAA,KAAK,EAAE;QACL,QAAQ,EAAE,YAAY,CAAC,QAAQ;AAC/B,QAAA,IAAI,EAAE,IAAI;AACX,KAAA;AACD,IAAA,KAAK,EAAE;QACL,QAAQ,EAAE,YAAY,CAAC,WAAW;AAClC,QAAA,IAAI,EAAE,IAAI;AACV,QAAA,KAAK,EAAE,CAAC;AACR,QAAA,eAAe,EAAE,IAAI;AACtB,KAAA;AACD,IAAA,eAAe,EAAE,IAAI;CAC2B;;ACR5C,SAAU,eAAe,CAAC,KAA4B,EAAE,YAAY,GAAG,CAAC,EAAE,QAAQ,GAAG,IAAI,EAAA;AAC7F,IAAA,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;AACxB,QAAA,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,eAAe,CAAC,CAAC,EAAE,YAAY,EAAE,QAAQ,CAAC,CAAW;IAC/E;IAEA,IAAI,eAAe,GAAG,KAAK,KAAA,IAAA,IAAL,KAAK,KAAA,MAAA,GAAL,KAAK,GAAI,YAAY;AAE3C,IAAA,IAAI,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,EAAE;QACpF,eAAe,GAAG,YAAY;IAChC;AAEA,IAAA,OAAO,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC;AAClC;AAEM,SAAU,UAAU,CAAC,KAAsB,EAAA;IAC/C,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK;AACxE;AAEM,SAAU,YAAY,CAAC,GAAW,EAAE,GAAW,EAAA;AACnD,IAAA,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG;AAC1D;AAGM,SAAU,UAAU,CAAC,KAAc,EAAA;AACvC,IAAA,OAAO,OAAO,KAAK,KAAK,UAAU;AACpC;SAEgB,SAAS,GAAA;AACvB,IAAA,OAAO,OAAO,UAAU,CAAC,MAAM,KAAK,WAAW,IAAI,OAAO,UAAU,CAAC,MAAM,CAAC,QAAQ,KAAK,WAAW;AACtG;SAEgB,iBAAiB,GAAA;AAC/B,IAAA,OAAO,CAAC,QAAQ,CAAC,MAAM;AACzB;;ACpCM,SAAU,uBAAuB,CAAI,IAAc,EAAE,MAA+B,EAAA;IACxF,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC;AACvC,IAAA,MAAM,WAAW,GAAG,IAAI,KAAK,OAAO;AACpC,IAAA,MAAM,aAAa,GAAG,MAAM,CAAC,KAAK,CAAC,eAAe;AAClD,IAAA,IAAI,YAAgC;AACpC,IAAA,IAAI,UAAyB;IAE7B,IAAI,WAAW,EAAE;QACf,UAAU,GAAG,WAAW;IAC1B;SAAO,IAAI,aAAa,EAAE;QACxB,UAAU,GAAG,uBAAuB;IACtC;SAAO;QACL,UAAU,GAAG,YAAY;IAC3B;IAEA,QAAQ,QAAQ;AACd,QAAA,KAAK,UAAU;AACb,YAAA,YAAY,GAAG,MAAM,IAAc;YACnC;AACF,QAAA,KAAK,QAAQ;AACX,YAAA,YAAY,GAAG,CAAC,KAAK,KAAK,KAAK,CAAC,UAAU,CAAC,GAAI,IAAe;YAC9D;AACF,QAAA,KAAK,aAAa;YAChB,YAAY,GAAG,CAAC,KAAK,KAAK,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,GAAI,IAAe;YAC/E;AACF,QAAA,KAAK,QAAQ;AACX,YAAA,YAAY,GAAG,MAAM,YAAY,CAAE,IAAe,CAAC,CAAC,CAAC,EAAG,IAAe,CAAC,CAAC,CAAC,CAAC;YAC3E;AACF,QAAA,KAAK,SAAS;YACZ,YAAY,GAAG,CAAC,KAAmB,KAAM,IAA2B,CAAC,KAAK,CAAC;YAC3E;AACF,QAAA;AACE,YAAA,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC;;AAGnD,IAAA,OAAO,YAAY;AACrB;;ACnCM,SAAU,YAAY,CAAI,MAA4B,EAAA;AAC1D,IAAA,MAAM,gBAAgB,GAA4B,eAAe,CAAC,MAAM,CAAC;AAEzE,IAAA,OAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EACK,gBAAgB,CAAA,EAAA,EACnB,YAAY,EAAE,eAAe,CAAC,OAAO,EAAE,gBAAgB,CAAC,EACxD,YAAY,EAAE,eAAe,CAAC,OAAO,EAAE,gBAAgB,CAAC,EAAA,CAAA;AAE5D;AAEA,SAAS,eAAe,CAAI,IAAc,EAAE,MAA+B,EAAA;IACzE,MAAM,WAAW,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC,IAAI;IAC5C,MAAM,YAAY,GAAG,uBAAuB,CAAC,IAAI,EAAE,MAAM,CAAC;IAE1D,OAAO,CAAC,KAAK,KAAY;AACvB,QAAA,MAAM,YAAY,GAAG,YAAY,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAM,KAAK,EAAG;QAC/C,MAAM,cAAc,GAAG,eAAe,CAAC,YAAY,EAAE,WAAW,CAAC;AAEjE,QAAA,OAAO,UAAU,CAAC,cAAc,CAAC;AACnC,IAAA,CAAC;AACH;AAEA,SAAS,eAAe,CAAI,MAA2B,EAAA;;IACrD,OAAO;AACL,QAAA,IAAI,EAAE,CAAA,EAAA,GAAA,MAAM,KAAA,IAAA,IAAN,MAAM,KAAA,MAAA,GAAA,MAAA,GAAN,MAAM,CAAE,IAAI,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,EAAA,GAAI,aAAa,CAAC,IAAI;AACxC,QAAA,KAAK,EAAE;AACL,YAAA,QAAQ,EAAE,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,MAAM,KAAA,IAAA,IAAN,MAAM,KAAA,MAAA,GAAA,MAAA,GAAN,MAAM,CAAE,KAAK,0CAAE,QAAQ,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,EAAA,GAAI,aAAa,CAAC,KAAK,CAAC,QAAQ;AACjE,YAAA,IAAI,EAAE,UAAU,CAAC,CAAA,EAAA,GAAA,MAAM,KAAA,IAAA,IAAN,MAAM,KAAA,MAAA,GAAA,MAAA,GAAN,MAAM,CAAE,KAAK,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAE,IAAI;AAClC,kBAAE,MAAM,CAAC,KAAK,CAAC;AACf,kBAAE,eAAe,CAAC,MAAA,MAAM,KAAA,IAAA,IAAN,MAAM,KAAA,MAAA,GAAA,MAAA,GAAN,MAAM,CAAE,KAAK,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAE,IAAI,EAAE,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC;AACnE,SAAA;AACD,QAAA,KAAK,EAAE;AACL,YAAA,QAAQ,EAAE,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,MAAM,KAAA,IAAA,IAAN,MAAM,KAAA,MAAA,GAAA,MAAA,GAAN,MAAM,CAAE,KAAK,0CAAE,QAAQ,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,EAAA,GAAI,aAAa,CAAC,KAAK,CAAC,QAAQ;AACjE,YAAA,IAAI,EAAE,UAAU,CAAC,CAAA,EAAA,GAAA,MAAM,KAAA,IAAA,IAAN,MAAM,KAAA,MAAA,GAAA,MAAA,GAAN,MAAM,CAAE,KAAK,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAE,IAAI;AAClC,kBAAE,MAAM,CAAC,KAAK,CAAC;AACf,kBAAE,eAAe,CAAC,MAAA,MAAM,KAAA,IAAA,IAAN,MAAM,KAAA,MAAA,GAAA,MAAA,GAAN,MAAM,CAAE,KAAK,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAE,IAAI,EAAE,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC;YAClE,KAAK,EAAE,eAAe,CAAC,CAAA,EAAA,GAAA,MAAM,KAAA,IAAA,IAAN,MAAM,uBAAN,MAAM,CAAE,KAAK,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAE,KAAK,EAAE,aAAa,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC;AAC9E,YAAA,eAAe,EAAE,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,MAAM,KAAA,IAAA,IAAN,MAAM,KAAA,MAAA,GAAA,MAAA,GAAN,MAAM,CAAE,KAAK,0CAAE,eAAe,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,EAAA,GAAI,aAAa,CAAC,KAAK,CAAC,eAAe;AACvF,SAAA;AACD,QAAA,eAAe,EAAE,CAAA,EAAA,GAAA,MAAM,KAAA,IAAA,IAAN,MAAM,KAAA,MAAA,GAAA,MAAA,GAAN,MAAM,CAAE,eAAe,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,EAAA,GAAI,aAAa,CAAC,eAAe;KAC1E;AACH;;AC9CO,MAAM,YAAY,GAAG;AAC1B,IAAA,KAAK,EAAE,SAAS;AAChB,IAAA,KAAK,EAAE,SAAS;AAChB,IAAA,SAAS,EAAE,CAAC;AACZ,IAAA,UAAU,EAAE,CAAC;AACb,IAAA,qBAAqB,EAAE,CAAC;CACa;;MCA1B,WAAW,CAAA;AAItB,IAAA,WAAA,CAAY,cAAqC,EAAA;AAC/C,QAAA,IAAI,CAAC,OAAO,GAAG,cAAc;AAC7B,QAAA,IAAI,CAAC,MAAM,GAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAQ,YAAY,CAAE;IACnC;AAEA,IAAA,IAAI,MAAM,GAAA;QACR,OAAO,IAAI,CAAC,OAAO;IACrB;AAEA,IAAA,IAAI,KAAK,GAAA;QACP,OAAO,IAAI,CAAC,MAAM;IACpB;AAEA,IAAA,QAAQ,CAAC,KAAQ,EAAA;AACf,QAAA,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,KAAK;IAC3B;AAGA,IAAA,QAAQ,CAAC,KAAU,EAAA;AACjB,QAAA,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,KAAK;IAC3B;IAEA,UAAU,GAAA;AACR,QAAA,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,SAAS;AAC7B,QAAA,IAAI,CAAC,MAAM,CAAC,qBAAqB,GAAG,CAAC;IACvC;IAEA,aAAa,GAAA;AACX,QAAA,IAAI,CAAC,MAAM,CAAC,SAAS,IAAI,CAAC;IAC5B;IAEA,cAAc,GAAA;AACZ,QAAA,IAAI,CAAC,MAAM,CAAC,UAAU,IAAI,CAAC;AAC3B,QAAA,IAAI,CAAC,MAAM,CAAC,qBAAqB,IAAI,CAAC;IACxC;IAEA,YAAY,GAAA;AACV,QAAA,MAAM,QAAQ,GAAa,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,eAAe,GAAG,uBAAuB,GAAG,YAAY;AACtG,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK;IACzD;IAEA,YAAY,GAAA;QACV,OAAO,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC;IAC/C;IAEA,YAAY,GAAA;QACV,OAAO,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC;IAC/C;AACD;;ACjDK,SAAU,SAAS,CAAI,WAA2B,EAAE,YAA2B,EAAA;IACnF,OAAO,CAAC,MAAM,KACZ,MAAM,CAAC,IAAI,CACTA,UAAK,CAAC;AACJ,QAAA,KAAK,EAAE,CAAC,KAAK,KAAI;YACf,WAAW,CAAC,cAAc,EAAE;AAE5B,YAAA,IAAI,WAAW,CAAC,YAAY,EAAE,EAAE;AAC9B,gBAAA,OAAOC,eAAU,CAAC,MAAM,KAAK,CAAC;YAChC;AAEA,YAAA,WAAW,CAAC,QAAQ,CAAC,KAAK,CAAC;AAE3B,YAAA,OAAOC,UAAK,CAAC,YAAY,GAAG,YAAY,EAAE,GAAG,WAAW,CAAC,YAAY,EAAE,CAAC;QAC1E,CAAC;AACF,KAAA,CAAC,EACFC,QAAG,CAAC,MAAM,WAAW,CAAC,UAAU,EAAE,CAAC,CACpC;AACL;;SCLgB,uBAAuB,CACrC,OAAsB,EACtB,OAA4B,EAC5B,iBAAuC,EAAA;IAEvC,MAAM,WAAW,GAAwB,sBAAsB,EAAE;IACjE,MAAM,MAAM,GAAG,WAAW,CAAC,IAAI,CAACC,cAAS,CAAC,CAAC,SAAS,MAAM,SAAS,GAAGC,UAAK,GAAG,OAAO,CAAC,CAAC,CAAC;IACxF,IAAI,eAAe,GAAG,IAAI;IAE1B,OAAO,WAAW,CAAC,IAAI,CACrBC,WAAM,CAAC,CAAC,SAAS,KAAK,SAAS,IAAI,eAAe,CAAC,EACnDC,eAAU,CAAC,MAAM,OAAO,CAAC,IAAI,CAACC,cAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EACjDL,QAAG,CAAC,OAAO,eAAe,GAAG,KAAK,CAAC,CAAC,CACrC;AACH;AAEA,IAAI,mBAAoD;SAOxC,sBAAsB,GAAA;IACpC,IAAI,mBAAmB,EAAE;AACvB,QAAA,OAAO,mBAAmB;IAC5B;AAEA,IAAA,mBAAmB,GAAGM,cAAS,CAAC,QAAQ,EAAE,kBAAkB,CAAC,CAAC,IAAI,CAChEC,cAAS,CAAC,IAAI,CAAC,EACfC,QAAG,CAAC,iBAAiB,CAAC,EACtBC,gBAAW,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAC/C;AAED,IAAA,OAAO,mBAAmB;AAC5B;;ACvDO,MAAM,iBAAiB,GAAG,GAAG;;ACI9B,SAAU,cAAc,CAAC,OAA0B,EAAA;AACvD,IAAA,MAAM,EAAE,IAAI,EAAE,eAAe,GAAG,CAAC,EAAE,aAAa,GAAG,CAAC,EAAE,GAAG,OAAO;IAChE,MAAM,OAAO,GAAG,IAAI,IAAI,aAAa,GAAG,eAAe,CAAC,GAAG,iBAAiB;AAE5E,IAAA,OAAO,OAAO,GAAG,CAAC,GAAGV,UAAK,CAAC,OAAO,CAAC,GAAGW,OAAE,CAAC,CAAC,CAAC;AAC7C;;ACLM,SAAU,WAAW,CAAI,OAAsB,EAAE,OAAqB,EAAA;AAC1E,IAAA,OAAO,OAAO,CAAC,IAAI,CACjBC,WAAM,CAAC;QACL,KAAK,EAAE,MAAMZ,UAAK,CAAC,OAAO,EAAE,CAAC;AAC9B,KAAA,CAAC,CACH;AACH;;ACEM,SAAU,oBAAoB,CAAI,OAAsB,EAAE,WAA2B,EAAA;IACzF,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,eAAe,EAAE;QACvD,OAAO,WAAW,CAACW,OAAE,CAAC,IAAI,CAAC,EAAE,MAAK;YAChC,WAAW,CAAC,aAAa,EAAE;AAC3B,YAAA,OAAO,WAAW,CAAC,YAAY,EAAE;AACnC,QAAA,CAAC,CAAC,CAAC,IAAI,CACLT,cAAS,CAAC,MAAM,OAAO,CAAC,EACxB,SAAS,CAAC,WAAW,CAAC,CACvB;IACH;AAEA,IAAA,MAAM,aAAa,GAAG,IAAIW,YAAO,EAAQ;IACzC,IAAI,IAAI,GAAG,CAAC;IACZ,IAAI,eAAe,GAAG,CAAC;IACvB,IAAI,aAAa,GAAG,CAAC;IAErB,MAAM,OAAO,GAAG,WAAW,CAACF,OAAE,CAAC,IAAI,CAAC,EAAE,MAAK;QACzC,WAAW,CAAC,aAAa,EAAE;AAC3B,QAAA,IAAI,GAAG,WAAW,CAAC,YAAY,EAAE;AACjC,QAAA,OAAO,IAAI;AACb,IAAA,CAAC,CAAC,CAAC,IAAI,CACLT,cAAS,CAAC,MACR,OAAO,CAAC,IAAI,CACVD,QAAG,CAAC;QACF,SAAS,EAAE,MAAK;AACd,YAAA,eAAe,GAAG,WAAW,CAAC,GAAG,EAAE;QACrC,CAAC;QACD,QAAQ,EAAE,MAAK;AACb,YAAA,aAAa,GAAG,WAAW,CAAC,GAAG,EAAE;YACjC,aAAa,CAAC,IAAI,EAAE;QACtB,CAAC;KACF,CAAC,CACH,CACF,EACD,SAAS,CAAC,WAAW,EAAE,MAAK;AAC1B,QAAA,IAAI,GAAG,WAAW,CAAC,YAAY,EAAE;AACjC,QAAA,OAAO,IAAI;IACb,CAAC,CAAC,CACH;AAED,IAAA,MAAM,OAAO,GAAG,aAAa,CAAC,IAAI,CAChCC,cAAS,CAAC,MACR,cAAc,CAAC;QACb,IAAI;QACJ,eAAe;QACf,aAAa;KACd,CAAC,CACH,CACF;AAED,IAAA,OAAO,uBAAuB,CAAC,OAAO,EAAE,OAAO,CAAC;AAClD;;ACnDM,SAAU,kBAAkB,CAAI,OAAsB,EAAE,WAA2B,EAAA;IACvF,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,eAAe,EAAE;AACvD,QAAA,OAAO,WAAW,CAAC,OAAO,EAAE,MAAK;YAC/B,WAAW,CAAC,aAAa,EAAE;AAC3B,YAAA,OAAO,WAAW,CAAC,YAAY,EAAE;QACnC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;IACjC;AAEA,IAAA,MAAM,aAAa,GAAG,IAAIW,YAAO,EAAQ;IACzC,IAAI,IAAI,GAAG,CAAC;IAEZ,MAAM,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC,IAAI,CAACC,aAAQ,CAAC,MAAM,aAAa,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,MAAK;QACnF,WAAW,CAAC,aAAa,EAAE;AAC3B,QAAA,IAAI,GAAG,WAAW,CAAC,YAAY,EAAE;AACjC,QAAA,OAAO,IAAI;IACb,CAAC,CAAC,CAAC,IAAI,CACL,SAAS,CAAC,WAAW,EAAE,MAAK;AAC1B,QAAA,IAAI,GAAG,WAAW,CAAC,YAAY,EAAE;AACjC,QAAA,OAAO,IAAI;IACb,CAAC,CAAC,CACH;AAED,IAAA,MAAM,OAAO,GAAG,aAAa,CAAC,IAAI,CAACZ,cAAS,CAAC,MAAM,cAAc,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;AAE7E,IAAA,OAAO,uBAAuB,CAAC,OAAO,EAAE,OAAO,CAAC;AAClD;;AC3BM,SAAU,aAAa,CAAI,OAAsB,EAAE,WAA2B,EAAA;IAClF,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,CAC7Ba,aAAQ,CAAC,CAAC,CAAC,EACXd,QAAG,CAAC,CAAC,KAAK,KAAK,WAAW,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAC5C;IAED,MAAM,OAAO,GACX,WAAW,CAAC,MAAM,CAAC,IAAI,KAAK,QAAQ,CAAC;AACnC,UAAE,kBAAkB,CAAC,UAAU,EAAE,WAAW;AAC5C,UAAE,oBAAoB,CAAC,UAAU,EAAE,WAAW,CAAC;AAEnD,IAAA,OAAO,OAAO;AAChB;;ACMM,SAAU,IAAI,CAAI,MAA4B,EAAA;IAClD,OAAO,CAAC,OAAO,KAAI;AACjB,QAAA,MAAM,cAAc,GAAG,YAAY,CAAC,MAAM,CAAC;AAC3C,QAAA,MAAM,WAAW,GAAG,IAAI,WAAW,CAAC,cAAc,CAAC;QACnD,MAAM,OAAO,GAAG,aAAa,CAAC,OAAO,EAAE,WAAW,CAAC;AAEnD,QAAA,OAAO,OAAO;AAChB,IAAA,CAAC;AACH;;;;;;"}
1
+ {"version":3,"file":"index.js","sources":["../../src/constants/poll.const.ts","../../src/constants/strategies.const.ts","../../src/constants/notifier.const.ts","../../src/constants/config.const.ts","../../src/common/utils.ts","../../src/common/strategies.ts","../../src/common/config.ts","../../src/constants/timing.const.ts","../../src/poller/execution/cycle-timer.ts","../../src/poller/execution/repeat-with.ts","../../src/poller/execution/retry-poll.operator.ts","../../src/poller/execution/interval-factory.ts","../../src/constants/state.const.ts","../../src/poller/execution/poll-service.ts","../../src/poller/execution/repeat-factory.ts","../../src/poller/pause/get-pause-mode.ts","../../src/poller/pause/with-hidden-pause.ts","../../src/poller/pause/with-notifier-pause.ts","../../src/poller/pause/compose-pause.ts","../../src/poller/create-poller.ts","../../src/poll.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["of","timer","repeat","retry","throwError","tap","createDirectPoller$","switchMap","createCycleControl$","Subject","NEVER","filter","exhaustMap","takeUntil","fromEvent","startWith","map","shareReplay","share","race","take","merge","distinctUntilChanged","takeLast"],"mappings":"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"}