rxjs-poll 1.0.5 → 1.1.0
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 +7 -6
- package/dist/cjs/common/config.js.map +1 -1
- package/dist/cjs/common/observables.js +6 -3
- package/dist/cjs/common/observables.js.map +1 -1
- package/dist/cjs/poll.js +3 -1
- package/dist/cjs/poll.js.map +1 -1
- package/dist/esm/common/config.js.map +1 -1
- package/dist/esm/common/observables.js +7 -4
- package/dist/esm/common/observables.js.map +1 -1
- package/dist/esm/poll.js +3 -1
- package/dist/esm/poll.js.map +1 -1
- package/dist/types/common/config.d.ts +12 -11
- package/dist/types/common/config.d.ts.map +1 -1
- package/dist/types/common/observables.d.ts +1 -1
- package/dist/types/common/observables.d.ts.map +1 -1
- package/dist/types/poll.d.ts +1 -1
- package/dist/types/poll.d.ts.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -11,7 +11,7 @@ Library provides RxJS operator that can do polling on any completed source.
|
|
|
11
11
|
|
|
12
12
|
- Two types of polling; `repeat` and `interval`
|
|
13
13
|
- Delay/retry can be a **static**, **random** or **dynamic** number
|
|
14
|
-
- Any **backoff strategy** you can think of
|
|
14
|
+
- Any **delay/backoff strategy** you can think of
|
|
15
15
|
- Background mode (browser only) to **pause/resume polling** on page visibility
|
|
16
16
|
- Consecutive rule for **different retry attempts** approach
|
|
17
17
|
- Config **input guard** for unexpected values
|
|
@@ -85,7 +85,7 @@ request$
|
|
|
85
85
|
|
|
86
86
|
### Advance
|
|
87
87
|
|
|
88
|
-
Use delay function when you need
|
|
88
|
+
Use delay function when you need unique delay or backoff strategies for polling/retrying.
|
|
89
89
|
|
|
90
90
|
[Demo](https://stackblitz.com/edit/rxjs-awthuj?devtoolsheight=100&file=index.ts)
|
|
91
91
|
|
|
@@ -97,7 +97,7 @@ request$
|
|
|
97
97
|
.pipe(
|
|
98
98
|
poll({
|
|
99
99
|
retries: 6,
|
|
100
|
-
delay: ({ polls, consecutiveRetries, error }) => {
|
|
100
|
+
delay: ({ polls, consecutiveRetries, value, error }) => {
|
|
101
101
|
const delay = 1000;
|
|
102
102
|
|
|
103
103
|
if (error) {
|
|
@@ -106,8 +106,8 @@ request$
|
|
|
106
106
|
return Math.pow(2, consecutiveRetries - 1) * delay;
|
|
107
107
|
}
|
|
108
108
|
|
|
109
|
-
// Faster polls
|
|
110
|
-
return
|
|
109
|
+
// Faster polls for shorther facts
|
|
110
|
+
return value.length < 100 ? delay * 0.3 : delay;
|
|
111
111
|
},
|
|
112
112
|
}),
|
|
113
113
|
takeWhile(({ length }) => length < 200, true)
|
|
@@ -196,10 +196,11 @@ const config: PollConfig = {
|
|
|
196
196
|
Provided as argument of delay function. Use it to set delay for polls and retries.
|
|
197
197
|
|
|
198
198
|
```typescript
|
|
199
|
-
interface PollState {
|
|
199
|
+
interface PollState<T> {
|
|
200
200
|
polls: number; // current count of successful polls
|
|
201
201
|
retries: number; // current count of retries
|
|
202
202
|
consecutiveRetries: number; // current count of consecutive retries
|
|
203
|
+
value: T; // value emitted from the source
|
|
203
204
|
error: any | null; // "any" when retrying and "null" when polling
|
|
204
205
|
}
|
|
205
206
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/common/config.ts"],"names":[],"mappings":";;;AAAA,iCAA8F;AAE9F,SAAgB,eAAe,
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/common/config.ts"],"names":[],"mappings":";;;AAAA,iCAA8F;AAE9F,SAAgB,eAAe,CAAI,MAA4B;;IAC7D,OAAO;QACL,IAAI,EAAE,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,IAAI,mCAAI,qBAAa,CAAC,IAAI;QACxC,QAAQ,EAAE,IAAA,kBAAU,EAAC,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,KAAK,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,KAAK,CAAC;QAClG,OAAO,EAAE,IAAA,uBAAe,EAAC,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,OAAO,EAAE,qBAAa,CAAC,OAAO,EAAE,KAAK,CAAC;QACvE,iBAAiB,EAAE,IAAA,aAAK,EAAC,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,iBAAiB;QACrF,gBAAgB,EAAE,OAAO,CAAC,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,gBAAgB,CAAC;KACpD,CAAC;AACJ,CAAC;AARD,0CAQC;AAED,SAAS,aAAa,CAAI,SAA2B;IACnD,OAAO,UAAC,KAAK;QACX,IAAM,KAAK,GAAG,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC;QAClD,IAAM,eAAe,GAAG,IAAA,uBAAe,EAAC,KAAK,EAAE,qBAAa,CAAC,KAAK,CAAC,CAAC;QAEpE,OAAO,IAAA,oBAAY,EAAC,eAAe,CAAC,CAAC;IACvC,CAAC,CAAC;AACJ,CAAC;AAED,SAAS,eAAe,CAAI,KAAkC;IAC5D,IAAM,eAAe,GAAG,IAAA,uBAAe,EAAC,KAAK,EAAE,qBAAa,CAAC,KAAK,CAAC,CAAC;IAEpE,OAAO,cAAc,OAAA,IAAA,oBAAY,EAAC,eAAe,CAAC,EAA7B,CAA6B,CAAC;AACrD,CAAC;AAEY,QAAA,aAAa,GAA2B;IACnD,IAAI,EAAE,QAAQ;IACd,KAAK,EAAE,IAAI;IACX,OAAO,EAAE,CAAC;IACV,iBAAiB,EAAE,IAAI;IACvB,gBAAgB,EAAE,KAAK;CACxB,CAAC"}
|
|
@@ -5,12 +5,15 @@ var rxjs_1 = require("rxjs");
|
|
|
5
5
|
var utils_1 = require("./utils");
|
|
6
6
|
exports.visibilityState$ = pageVisibility$().pipe((0, rxjs_1.shareReplay)({ bufferSize: 1, refCount: true }));
|
|
7
7
|
function getPoller$(type, source$, getDelay) {
|
|
8
|
-
var
|
|
8
|
+
var lastValue;
|
|
9
|
+
var completed$ = source$.pipe((0, rxjs_1.takeLast)(1), (0, rxjs_1.tap)(function (value) {
|
|
10
|
+
lastValue = value;
|
|
11
|
+
}));
|
|
9
12
|
return type === 'repeat'
|
|
10
13
|
? completed$.pipe((0, rxjs_1.repeat)({
|
|
11
|
-
delay: function () { return (0, rxjs_1.timer)(getDelay()); },
|
|
14
|
+
delay: function () { return (0, rxjs_1.timer)(getDelay(lastValue)); },
|
|
12
15
|
}))
|
|
13
|
-
: dynamicInterval$(getDelay).pipe((0, rxjs_1.switchMap)(function () { return completed$; }));
|
|
16
|
+
: dynamicInterval$(function () { return getDelay(lastValue); }).pipe((0, rxjs_1.switchMap)(function () { return completed$; }));
|
|
14
17
|
}
|
|
15
18
|
exports.getPoller$ = getPoller$;
|
|
16
19
|
function pageVisibility$() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"observables.js","sourceRoot":"","sources":["../../../src/common/observables.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"observables.js","sourceRoot":"","sources":["../../../src/common/observables.ts"],"names":[],"mappings":";;;AAAA,6BAAuH;AAGvH,iCAAuD;AAE1C,QAAA,gBAAgB,GAAG,eAAe,EAAE,CAAC,IAAI,CAAC,IAAA,kBAAW,EAAC,EAAE,UAAU,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;AAEvG,SAAgB,UAAU,CAAI,IAAc,EAAE,OAAsB,EAAE,QAA8B;IAClG,IAAI,SAAY,CAAC;IACjB,IAAM,UAAU,GAAG,OAAO,CAAC,IAAI,CAC7B,IAAA,eAAQ,EAAC,CAAC,CAAC,EACX,IAAA,UAAG,EAAC,UAAC,KAAK;QACR,SAAS,GAAG,KAAK,CAAC;IACpB,CAAC,CAAC,CACH,CAAC;IAEF,OAAO,IAAI,KAAK,QAAQ;QACtB,CAAC,CAAC,UAAU,CAAC,IAAI,CACb,IAAA,aAAM,EAAC;YACL,KAAK,EAAE,cAAM,OAAA,IAAA,YAAK,EAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,EAA1B,CAA0B;SACxC,CAAC,CACH;QACH,CAAC,CAAC,gBAAgB,CAAC,cAAM,OAAA,QAAQ,CAAC,SAAS,CAAC,EAAnB,CAAmB,CAAC,CAAC,IAAI,CAAC,IAAA,gBAAS,EAAC,cAAM,OAAA,UAAU,EAAV,CAAU,CAAC,CAAC,CAAC;AACpF,CAAC;AAhBD,gCAgBC;AAED,SAAS,eAAe;IACtB,OAAO,IAAA,iBAAS,GAAE,CAAC,CAAC,CAAC,IAAA,gBAAS,EAAC,QAAQ,EAAE,kBAAkB,CAAC,CAAC,IAAI,CAAC,IAAA,gBAAS,EAAC,IAAI,CAAC,EAAE,IAAA,UAAG,EAAC,yBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,IAAA,SAAE,EAAC,IAAI,CAAC,CAAC;AACxH,CAAC;AAED,SAAS,gBAAgB,CAAC,QAAsB;IAC9C,OAAO,IAAA,SAAE,EAAC,IAAI,CAAC,CAAC,IAAI,CAClB,IAAA,aAAM,EAAC;QACL,KAAK,EAAE,cAAM,OAAA,IAAA,YAAK,EAAC,QAAQ,EAAE,CAAC,EAAjB,CAAiB;KAC/B,CAAC,CACH,CAAC;AACJ,CAAC"}
|
package/dist/cjs/poll.js
CHANGED
|
@@ -12,10 +12,12 @@ function poll(config) {
|
|
|
12
12
|
polls: 0,
|
|
13
13
|
retries: 0,
|
|
14
14
|
consecutiveRetries: 0,
|
|
15
|
+
value: null,
|
|
15
16
|
error: null,
|
|
16
17
|
};
|
|
17
|
-
var nextPollDelay = function () {
|
|
18
|
+
var nextPollDelay = function (value) {
|
|
18
19
|
state.polls += 1;
|
|
20
|
+
state.value = value;
|
|
19
21
|
return getDelay(state);
|
|
20
22
|
};
|
|
21
23
|
var visibility$ = isBackgroundMode ? (0, rxjs_1.of)(true) : observables_1.visibilityState$;
|
package/dist/cjs/poll.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"poll.js","sourceRoot":"","sources":["../../src/poll.ts"],"names":[],"mappings":";;;AAAA,6BAAqG;AAErG,0CAAmF;AACnF,oDAAoE;AA8BpE,SAAgB,IAAI,CAAI,
|
|
1
|
+
{"version":3,"file":"poll.js","sourceRoot":"","sources":["../../src/poll.ts"],"names":[],"mappings":";;;AAAA,6BAAqG;AAErG,0CAAmF;AACnF,oDAAoE;AA8BpE,SAAgB,IAAI,CAAI,MAA4B;IAClD,OAAO,UAAC,OAAO;QACP,IAAA,KAAmE,IAAA,wBAAe,EAAC,MAAM,CAAC,EAAxF,IAAI,UAAA,EAAE,OAAO,aAAA,EAAE,gBAAgB,sBAAA,EAAE,iBAAiB,uBAAA,EAAE,QAAQ,cAA4B,CAAC;QACjG,IAAM,QAAQ,GAAa,iBAAiB,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,SAAS,CAAC;QAChF,IAAM,KAAK,GAAiB;YAC1B,KAAK,EAAE,CAAC;YACR,OAAO,EAAE,CAAC;YACV,kBAAkB,EAAE,CAAC;YAErB,KAAK,EAAE,IAAW;YAClB,KAAK,EAAE,IAAI;SACZ,CAAC;QAEF,IAAM,aAAa,GAAG,UAAC,KAAQ;YAC7B,KAAK,CAAC,KAAK,IAAI,CAAC,CAAC;YACjB,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC;YAEpB,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC;QACzB,CAAC,CAAC;QAEF,IAAM,WAAW,GAAG,gBAAgB,CAAC,CAAC,CAAC,IAAA,SAAE,EAAC,IAAI,CAAC,CAAC,CAAC,CAAC,8BAAgB,CAAC;QACnE,IAAM,OAAO,GAAG,IAAA,wBAAU,EAAC,IAAI,EAAE,OAAO,EAAE,aAAa,CAAC,CAAC;QAEzD,OAAO,WAAW,CAAC,IAAI,CACrB,IAAA,gBAAS,EAAC,UAAC,SAAS;YAClB,OAAA,SAAS;gBACP,CAAC,CAAC,OAAO,CAAC,IAAI,CACV,IAAA,YAAK,EAAC;oBACJ,KAAK,YAAC,KAAK;wBAET,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC;wBACpB,KAAK,CAAC,OAAO,IAAI,CAAC,CAAC;wBACnB,KAAK,CAAC,kBAAkB,IAAI,CAAC,CAAC;wBAG9B,OAAO,KAAK,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,IAAA,iBAAU,EAAC,cAAM,OAAA,KAAK,EAAL,CAAK,CAAC,CAAC,CAAC,CAAC,IAAA,YAAK,EAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;oBACtF,CAAC;iBACF,CAAC,EACF,IAAA,UAAG,EAAC;oBACF,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC;oBACnB,KAAK,CAAC,kBAAkB,GAAG,CAAC,CAAC;gBAC/B,CAAC,CAAC,CACH;gBACH,CAAC,CAAC,YAAK;QAlBT,CAkBS,CACV,CACF,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC;AA/CD,oBA+CC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/common/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,KAAK,EAAO,eAAe,EAAE,YAAY,EAAgB,MAAM,SAAS,CAAC;AAE9F,MAAM,UAAU,eAAe,
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/common/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,KAAK,EAAO,eAAe,EAAE,YAAY,EAAgB,MAAM,SAAS,CAAC;AAE9F,MAAM,UAAU,eAAe,CAAI,MAA4B;IAC7D,OAAO;QACL,IAAI,EAAE,MAAM,EAAE,IAAI,IAAI,aAAa,CAAC,IAAI;QACxC,QAAQ,EAAE,UAAU,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,MAAM,EAAE,KAAK,CAAC;QAClG,OAAO,EAAE,eAAe,CAAC,MAAM,EAAE,OAAO,EAAE,aAAa,CAAC,OAAO,EAAE,KAAK,CAAC;QACvE,iBAAiB,EAAE,KAAK,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,iBAAiB;QACrF,gBAAgB,EAAE,OAAO,CAAC,MAAM,EAAE,gBAAgB,CAAC;KACpD,CAAC;AACJ,CAAC;AAED,SAAS,aAAa,CAAI,SAA2B;IACnD,OAAO,CAAC,KAAK,EAAU,EAAE;QACvB,MAAM,KAAK,GAAG,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC;QAClD,MAAM,eAAe,GAAG,eAAe,CAAC,KAAK,EAAE,aAAa,CAAC,KAAK,CAAC,CAAC;QAEpE,OAAO,YAAY,CAAC,eAAe,CAAC,CAAC;IACvC,CAAC,CAAC;AACJ,CAAC;AAED,SAAS,eAAe,CAAI,KAAkC;IAC5D,MAAM,eAAe,GAAG,eAAe,CAAC,KAAK,EAAE,aAAa,CAAC,KAAK,CAAC,CAAC;IAEpE,OAAO,GAAW,EAAE,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC;AACrD,CAAC;AAED,MAAM,CAAC,MAAM,aAAa,GAA2B;IACnD,IAAI,EAAE,QAAQ;IACd,KAAK,EAAE,IAAI;IACX,OAAO,EAAE,CAAC;IACV,iBAAiB,EAAE,IAAI;IACvB,gBAAgB,EAAE,KAAK;CACxB,CAAC"}
|
|
@@ -1,13 +1,16 @@
|
|
|
1
|
-
import { fromEvent, map, of, repeat, shareReplay, startWith, switchMap, takeLast, timer } from 'rxjs';
|
|
1
|
+
import { fromEvent, map, of, repeat, shareReplay, startWith, switchMap, takeLast, tap, timer } from 'rxjs';
|
|
2
2
|
import { isBrowser, isDocumentVisible } from './utils';
|
|
3
3
|
export const visibilityState$ = pageVisibility$().pipe(shareReplay({ bufferSize: 1, refCount: true }));
|
|
4
4
|
export function getPoller$(type, source$, getDelay) {
|
|
5
|
-
|
|
5
|
+
let lastValue;
|
|
6
|
+
const completed$ = source$.pipe(takeLast(1), tap((value) => {
|
|
7
|
+
lastValue = value;
|
|
8
|
+
}));
|
|
6
9
|
return type === 'repeat'
|
|
7
10
|
? completed$.pipe(repeat({
|
|
8
|
-
delay: () => timer(getDelay()),
|
|
11
|
+
delay: () => timer(getDelay(lastValue)),
|
|
9
12
|
}))
|
|
10
|
-
: dynamicInterval$(getDelay).pipe(switchMap(() => completed$));
|
|
13
|
+
: dynamicInterval$(() => getDelay(lastValue)).pipe(switchMap(() => completed$));
|
|
11
14
|
}
|
|
12
15
|
function pageVisibility$() {
|
|
13
16
|
return isBrowser() ? fromEvent(document, 'visibilitychange').pipe(startWith(null), map(isDocumentVisible)) : of(true);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"observables.js","sourceRoot":"","sources":["../../../src/common/observables.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,GAAG,EAAc,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"observables.js","sourceRoot":"","sources":["../../../src/common/observables.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,GAAG,EAAc,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,MAAM,CAAC;AAGvH,OAAO,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAEvD,MAAM,CAAC,MAAM,gBAAgB,GAAG,eAAe,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;AAEvG,MAAM,UAAU,UAAU,CAAI,IAAc,EAAE,OAAsB,EAAE,QAA8B;IAClG,IAAI,SAAY,CAAC;IACjB,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,CAC7B,QAAQ,CAAC,CAAC,CAAC,EACX,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QACZ,SAAS,GAAG,KAAK,CAAC;IACpB,CAAC,CAAC,CACH,CAAC;IAEF,OAAO,IAAI,KAAK,QAAQ;QACtB,CAAC,CAAC,UAAU,CAAC,IAAI,CACb,MAAM,CAAC;YACL,KAAK,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;SACxC,CAAC,CACH;QACH,CAAC,CAAC,gBAAgB,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;AACpF,CAAC;AAED,SAAS,eAAe;IACtB,OAAO,SAAS,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,QAAQ,EAAE,kBAAkB,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;AACxH,CAAC;AAED,SAAS,gBAAgB,CAAC,QAAsB;IAC9C,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,CAClB,MAAM,CAAC;QACL,KAAK,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;KAC/B,CAAC,CACH,CAAC;AACJ,CAAC"}
|
package/dist/esm/poll.js
CHANGED
|
@@ -9,10 +9,12 @@ export function poll(config) {
|
|
|
9
9
|
polls: 0,
|
|
10
10
|
retries: 0,
|
|
11
11
|
consecutiveRetries: 0,
|
|
12
|
+
value: null,
|
|
12
13
|
error: null,
|
|
13
14
|
};
|
|
14
|
-
const nextPollDelay = () => {
|
|
15
|
+
const nextPollDelay = (value) => {
|
|
15
16
|
state.polls += 1;
|
|
17
|
+
state.value = value;
|
|
16
18
|
return getDelay(state);
|
|
17
19
|
};
|
|
18
20
|
const visibility$ = isBackgroundMode ? of(true) : visibilityState$;
|
package/dist/esm/poll.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"poll.js","sourceRoot":"","sources":["../../src/poll.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAA4B,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,MAAM,CAAC;AAErG,OAAO,EAAE,eAAe,EAAmC,MAAM,iBAAiB,CAAC;AACnF,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AA8BpE,MAAM,UAAU,IAAI,CAAI,
|
|
1
|
+
{"version":3,"file":"poll.js","sourceRoot":"","sources":["../../src/poll.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAA4B,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,MAAM,CAAC;AAErG,OAAO,EAAE,eAAe,EAAmC,MAAM,iBAAiB,CAAC;AACnF,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AA8BpE,MAAM,UAAU,IAAI,CAAI,MAA4B;IAClD,OAAO,CAAC,OAAO,EAAE,EAAE;QACjB,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,QAAQ,EAAE,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;QACjG,MAAM,QAAQ,GAAa,iBAAiB,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,SAAS,CAAC;QAChF,MAAM,KAAK,GAAiB;YAC1B,KAAK,EAAE,CAAC;YACR,OAAO,EAAE,CAAC;YACV,kBAAkB,EAAE,CAAC;YAErB,KAAK,EAAE,IAAW;YAClB,KAAK,EAAE,IAAI;SACZ,CAAC;QAEF,MAAM,aAAa,GAAG,CAAC,KAAQ,EAAU,EAAE;YACzC,KAAK,CAAC,KAAK,IAAI,CAAC,CAAC;YACjB,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC;YAEpB,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC;QACzB,CAAC,CAAC;QAEF,MAAM,WAAW,GAAG,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC;QACnE,MAAM,OAAO,GAAG,UAAU,CAAC,IAAI,EAAE,OAAO,EAAE,aAAa,CAAC,CAAC;QAEzD,OAAO,WAAW,CAAC,IAAI,CACrB,SAAS,CAAC,CAAC,SAAS,EAAE,EAAE,CACtB,SAAS;YACP,CAAC,CAAC,OAAO,CAAC,IAAI,CACV,KAAK,CAAC;gBACJ,KAAK,CAAC,KAAK;oBAET,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC;oBACpB,KAAK,CAAC,OAAO,IAAI,CAAC,CAAC;oBACnB,KAAK,CAAC,kBAAkB,IAAI,CAAC,CAAC;oBAG9B,OAAO,KAAK,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;gBACtF,CAAC;aACF,CAAC,EACF,GAAG,CAAC,GAAG,EAAE;gBACP,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC;gBACnB,KAAK,CAAC,kBAAkB,GAAG,CAAC,CAAC;YAC/B,CAAC,CAAC,CACH;YACH,CAAC,CAAC,KAAK,CACV,CACF,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -1,28 +1,29 @@
|
|
|
1
1
|
import { Nil, UnsafeMinMax } from './utils';
|
|
2
|
-
export declare function normalizeConfig(config?: PollConfig | Nil): NormalizedPollConfig
|
|
3
|
-
export declare const controlConfig: ControlPollConfig
|
|
4
|
-
export type ControlPollConfig = {
|
|
2
|
+
export declare function normalizeConfig<T>(config?: PollConfig<T> | Nil): NormalizedPollConfig<T>;
|
|
3
|
+
export declare const controlConfig: ControlPollConfig<any>;
|
|
4
|
+
export type ControlPollConfig<T> = {
|
|
5
5
|
delay: number;
|
|
6
|
-
} & Omit<NormalizedPollConfig
|
|
7
|
-
export type NormalizedPollConfig = {
|
|
6
|
+
} & Omit<NormalizedPollConfig<T>, 'getDelay'>;
|
|
7
|
+
export type NormalizedPollConfig<T> = {
|
|
8
8
|
type: PollType;
|
|
9
|
-
getDelay: DelayProducer
|
|
9
|
+
getDelay: DelayProducer<T>;
|
|
10
10
|
retries: number;
|
|
11
11
|
isConsecutiveRule: boolean;
|
|
12
12
|
isBackgroundMode: boolean;
|
|
13
13
|
};
|
|
14
|
-
export type PollConfig = {
|
|
14
|
+
export type PollConfig<T> = {
|
|
15
15
|
type?: PollType | Nil;
|
|
16
|
-
delay?: number | UnsafeMinMax | PollDelayFunc | Nil;
|
|
16
|
+
delay?: number | UnsafeMinMax | PollDelayFunc<T> | Nil;
|
|
17
17
|
retries?: number | Nil;
|
|
18
18
|
isConsecutiveRule?: boolean | Nil;
|
|
19
19
|
isBackgroundMode?: boolean | Nil;
|
|
20
20
|
};
|
|
21
21
|
export type PollType = 'repeat' | 'interval';
|
|
22
|
-
export type PollDelayFunc = (state: PollState) => number | UnsafeMinMax | Nil;
|
|
23
|
-
type DelayProducer = (state: PollState) => number;
|
|
24
|
-
export type PollState = {
|
|
22
|
+
export type PollDelayFunc<T> = (state: PollState<T>) => number | UnsafeMinMax | Nil;
|
|
23
|
+
type DelayProducer<T> = (state: PollState<T>) => number;
|
|
24
|
+
export type PollState<T> = {
|
|
25
25
|
polls: number;
|
|
26
|
+
value: T;
|
|
26
27
|
error: any | null;
|
|
27
28
|
} & Record<RetryKey, number>;
|
|
28
29
|
export type RetryKey = 'retries' | 'consecutiveRetries';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/common/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,GAAG,EAAiC,YAAY,EAAE,MAAM,SAAS,CAAC;AAE9F,wBAAgB,eAAe,CAAC,MAAM,CAAC,EAAE,UAAU,GAAG,GAAG,GAAG,oBAAoB,
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/common/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,GAAG,EAAiC,YAAY,EAAE,MAAM,SAAS,CAAC;AAE9F,wBAAgB,eAAe,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,oBAAoB,CAAC,CAAC,CAAC,CAQxF;AAiBD,eAAO,MAAM,aAAa,EAAE,iBAAiB,CAAC,GAAG,CAMhD,CAAC;AAEF,MAAM,MAAM,iBAAiB,CAAC,CAAC,IAAI;IACjC,KAAK,EAAE,MAAM,CAAC;CACf,GAAG,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;AAE9C,MAAM,MAAM,oBAAoB,CAAC,CAAC,IAAI;IACpC,IAAI,EAAE,QAAQ,CAAC;IACf,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,gBAAgB,EAAE,OAAO,CAAC;CAC3B,CAAC;AAEF,MAAM,MAAM,UAAU,CAAC,CAAC,IAAI;IAC1B,IAAI,CAAC,EAAE,QAAQ,GAAG,GAAG,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,GAAG,YAAY,GAAG,aAAa,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;IACvD,OAAO,CAAC,EAAE,MAAM,GAAG,GAAG,CAAC;IACvB,iBAAiB,CAAC,EAAE,OAAO,GAAG,GAAG,CAAC;IAClC,gBAAgB,CAAC,EAAE,OAAO,GAAG,GAAG,CAAC;CAClC,CAAC;AAEF,MAAM,MAAM,QAAQ,GAAG,QAAQ,GAAG,UAAU,CAAC;AAC7C,MAAM,MAAM,aAAa,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,KAAK,MAAM,GAAG,YAAY,GAAG,GAAG,CAAC;AACpF,KAAK,aAAa,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC;AAExD,MAAM,MAAM,SAAS,CAAC,CAAC,IAAI;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,CAAC,CAAC;IACT,KAAK,EAAE,GAAG,GAAG,IAAI,CAAC;CACnB,GAAG,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;AAE7B,MAAM,MAAM,QAAQ,GAAG,SAAS,GAAG,oBAAoB,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Observable } from 'rxjs';
|
|
2
2
|
import { PollType } from './config';
|
|
3
3
|
export declare const visibilityState$: Observable<boolean>;
|
|
4
|
-
export declare function getPoller$<T>(type: PollType, source$: Observable<T>, getDelay: () => number): Observable<T>;
|
|
4
|
+
export declare function getPoller$<T>(type: PollType, source$: Observable<T>, getDelay: (value: T) => number): Observable<T>;
|
|
5
5
|
//# sourceMappingURL=observables.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"observables.d.ts","sourceRoot":"","sources":["../../../src/common/observables.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,UAAU,
|
|
1
|
+
{"version":3,"file":"observables.d.ts","sourceRoot":"","sources":["../../../src/common/observables.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,UAAU,EAAuE,MAAM,MAAM,CAAC;AAEvH,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAGpC,eAAO,MAAM,gBAAgB,qBAAyE,CAAC;AAEvG,wBAAgB,UAAU,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,MAAM,GAAG,UAAU,CAAC,CAAC,CAAC,CAgBnH"}
|
package/dist/types/poll.d.ts
CHANGED
|
@@ -28,5 +28,5 @@ import { Nil } from './common/utils';
|
|
|
28
28
|
* @return A function that returns an Observable that will resubscribe to the source on \
|
|
29
29
|
* complete or error
|
|
30
30
|
*/
|
|
31
|
-
export declare function poll<T>(config?: PollConfig | Nil): MonoTypeOperatorFunction<T>;
|
|
31
|
+
export declare function poll<T>(config?: PollConfig<T> | Nil): MonoTypeOperatorFunction<T>;
|
|
32
32
|
//# sourceMappingURL=poll.d.ts.map
|
package/dist/types/poll.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"poll.d.ts","sourceRoot":"","sources":["../../src/poll.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,wBAAwB,EAAgD,MAAM,MAAM,CAAC;AAErG,OAAO,EAAmB,UAAU,EAAuB,MAAM,iBAAiB,CAAC;AAEnF,OAAO,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC;AAErC;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAgB,IAAI,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,UAAU,GAAG,GAAG,GAAG,wBAAwB,CAAC,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"poll.d.ts","sourceRoot":"","sources":["../../src/poll.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,wBAAwB,EAAgD,MAAM,MAAM,CAAC;AAErG,OAAO,EAAmB,UAAU,EAAuB,MAAM,iBAAiB,CAAC;AAEnF,OAAO,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC;AAErC;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAgB,IAAI,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,wBAAwB,CAAC,CAAC,CAAC,CA+CjF"}
|