rxjs-poll 1.1.8 → 2.0.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 +231 -71
- package/dist/cjs/common/config.js +43 -25
- package/dist/cjs/common/config.js.map +1 -1
- package/dist/cjs/common/observables.js +5 -5
- package/dist/cjs/common/observables.js.map +1 -1
- package/dist/cjs/common/operators.js +12 -0
- package/dist/cjs/common/operators.js.map +1 -0
- package/dist/cjs/common/strategies.js +41 -0
- package/dist/cjs/common/strategies.js.map +1 -0
- package/dist/cjs/common/utils.js +2 -2
- package/dist/cjs/common/utils.js.map +1 -1
- package/dist/cjs/constants/config.const.js +20 -0
- package/dist/cjs/constants/config.const.js.map +1 -0
- package/dist/cjs/constants/poll.const.js +12 -0
- package/dist/cjs/constants/poll.const.js.map +1 -0
- package/dist/cjs/constants/strategies.const.js +11 -0
- package/dist/cjs/constants/strategies.const.js.map +1 -0
- package/dist/cjs/index.js +5 -1
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/poll.js +27 -27
- package/dist/cjs/poll.js.map +1 -1
- package/dist/cjs/types/config.type.js +3 -0
- package/dist/cjs/types/config.type.js.map +1 -0
- package/dist/cjs/types/poll.type.js +3 -0
- package/dist/cjs/types/poll.type.js.map +1 -0
- package/dist/cjs/types/strategies.type.js +3 -0
- package/dist/cjs/types/strategies.type.js.map +1 -0
- package/dist/cjs/types/utils.type.js +3 -0
- package/dist/cjs/types/utils.type.js.map +1 -0
- package/dist/esm/common/config.js +33 -21
- package/dist/esm/common/config.js.map +1 -1
- package/dist/esm/common/observables.js +5 -5
- package/dist/esm/common/observables.js.map +1 -1
- package/dist/esm/common/operators.js +7 -0
- package/dist/esm/common/operators.js.map +1 -0
- package/dist/esm/common/strategies.js +38 -0
- package/dist/esm/common/strategies.js.map +1 -0
- package/dist/esm/common/utils.js +1 -1
- package/dist/esm/common/utils.js.map +1 -1
- package/dist/esm/constants/config.const.js +17 -0
- package/dist/esm/constants/config.const.js.map +1 -0
- package/dist/esm/constants/poll.const.js +9 -0
- package/dist/esm/constants/poll.const.js.map +1 -0
- package/dist/esm/constants/strategies.const.js +8 -0
- package/dist/esm/constants/strategies.const.js.map +1 -0
- package/dist/esm/index.js +2 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/poll.js +29 -27
- package/dist/esm/poll.js.map +1 -1
- package/dist/esm/types/config.type.js +2 -0
- package/dist/esm/types/config.type.js.map +1 -0
- package/dist/esm/types/poll.type.js +2 -0
- package/dist/esm/types/poll.type.js.map +1 -0
- package/dist/esm/types/strategies.type.js +2 -0
- package/dist/esm/types/strategies.type.js.map +1 -0
- package/dist/esm/types/utils.type.js +2 -0
- package/dist/esm/types/utils.type.js.map +1 -0
- package/dist/types/common/config.d.ts +3 -30
- package/dist/types/common/config.d.ts.map +1 -1
- package/dist/types/common/observables.d.ts +2 -2
- package/dist/types/common/observables.d.ts.map +1 -1
- package/dist/types/common/operators.d.ts +3 -0
- package/dist/types/common/operators.d.ts.map +1 -0
- package/dist/types/common/strategies.d.ts +5 -0
- package/dist/types/common/strategies.d.ts.map +1 -0
- package/dist/types/common/utils.d.ts +4 -6
- package/dist/types/common/utils.d.ts.map +1 -1
- package/dist/types/constants/config.const.d.ts +15 -0
- package/dist/types/constants/config.const.d.ts.map +1 -0
- package/dist/types/constants/poll.const.d.ts +9 -0
- package/dist/types/constants/poll.const.d.ts.map +1 -0
- package/dist/types/constants/strategies.const.d.ts +8 -0
- package/dist/types/constants/strategies.const.d.ts.map +1 -0
- package/dist/types/index.d.ts +5 -1
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/poll.d.ts +7 -7
- package/dist/types/poll.d.ts.map +1 -1
- package/dist/types/types/config.type.d.ts +58 -0
- package/dist/types/types/config.type.d.ts.map +1 -0
- package/dist/types/types/poll.type.d.ts +12 -0
- package/dist/types/types/poll.type.d.ts.map +1 -0
- package/dist/types/types/strategies.type.d.ts +6 -0
- package/dist/types/types/strategies.type.d.ts.map +1 -0
- package/dist/types/types/utils.type.d.ts +3 -0
- package/dist/types/types/utils.type.d.ts.map +1 -0
- package/package.json +2 -2
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.pollType = exports.pollMode = void 0;
|
|
4
|
+
exports.pollMode = {
|
|
5
|
+
DELAY: 'delay',
|
|
6
|
+
RETRY: 'retry',
|
|
7
|
+
};
|
|
8
|
+
exports.pollType = {
|
|
9
|
+
REPEAT: 'repeat',
|
|
10
|
+
INTERVAL: 'interval',
|
|
11
|
+
};
|
|
12
|
+
//# sourceMappingURL=poll.const.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"poll.const.js","sourceRoot":"","sources":["../../../src/constants/poll.const.ts"],"names":[],"mappings":";;;AAAa,QAAA,QAAQ,GAAG;IACtB,KAAK,EAAE,OAAO;IACd,KAAK,EAAE,OAAO;CACN,CAAC;AAEE,QAAA,QAAQ,GAAG;IACtB,MAAM,EAAE,QAAQ;IAChB,QAAQ,EAAE,UAAU;CACZ,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.strategyType = void 0;
|
|
4
|
+
exports.strategyType = {
|
|
5
|
+
CONSTANT: 'constant',
|
|
6
|
+
LINEAR: 'linear',
|
|
7
|
+
EXPONENTIAL: 'exponential',
|
|
8
|
+
RANDOM: 'random',
|
|
9
|
+
DYNAMIC: 'dynamic',
|
|
10
|
+
};
|
|
11
|
+
//# sourceMappingURL=strategies.const.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"strategies.const.js","sourceRoot":"","sources":["../../../src/constants/strategies.const.ts"],"names":[],"mappings":";;;AAAa,QAAA,YAAY,GAAG;IAC1B,QAAQ,EAAE,UAAU;IACpB,MAAM,EAAE,QAAQ;IAChB,WAAW,EAAE,aAAa;IAC1B,MAAM,EAAE,QAAQ;IAChB,OAAO,EAAE,SAAS;CACV,CAAC"}
|
package/dist/cjs/index.js
CHANGED
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.poll = void 0;
|
|
3
|
+
exports.poll = exports.strategyType = exports.pollType = void 0;
|
|
4
|
+
var poll_const_1 = require("./constants/poll.const");
|
|
5
|
+
Object.defineProperty(exports, "pollType", { enumerable: true, get: function () { return poll_const_1.pollType; } });
|
|
6
|
+
var strategies_const_1 = require("./constants/strategies.const");
|
|
7
|
+
Object.defineProperty(exports, "strategyType", { enumerable: true, get: function () { return strategies_const_1.strategyType; } });
|
|
4
8
|
var poll_1 = require("./poll");
|
|
5
9
|
Object.defineProperty(exports, "poll", { enumerable: true, get: function () { return poll_1.poll; } });
|
|
6
10
|
//# sourceMappingURL=index.js.map
|
package/dist/cjs/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;AAAA,qDAAkD;AAAzC,sGAAA,QAAQ,OAAA;AACjB,iEAA4D;AAAnD,gHAAA,YAAY,OAAA;AACrB,+BAA8B;AAArB,4FAAA,IAAI,OAAA"}
|
package/dist/cjs/poll.js
CHANGED
|
@@ -4,39 +4,39 @@ exports.poll = poll;
|
|
|
4
4
|
var rxjs_1 = require("rxjs");
|
|
5
5
|
var config_1 = require("./common/config");
|
|
6
6
|
var observables_1 = require("./common/observables");
|
|
7
|
+
var operators_1 = require("./common/operators");
|
|
7
8
|
function poll(config) {
|
|
8
9
|
return function (source$) {
|
|
9
|
-
var _a = (0, config_1.
|
|
10
|
-
var retryKey =
|
|
10
|
+
var _a = (0, config_1.extendConfig)(config), type = _a.type, retry = _a.retry, pauseWhenHidden = _a.pauseWhenHidden, getDelayTime = _a.getDelayTime, getRetryTime = _a.getRetryTime;
|
|
11
|
+
var retryKey = retry.consecutiveOnly ? 'consecutiveRetryCount' : 'retryCount';
|
|
11
12
|
var state = {
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
value:
|
|
16
|
-
error:
|
|
13
|
+
pollCount: 0,
|
|
14
|
+
retryCount: 0,
|
|
15
|
+
consecutiveRetryCount: 0,
|
|
16
|
+
value: undefined,
|
|
17
|
+
error: undefined,
|
|
17
18
|
};
|
|
18
|
-
var
|
|
19
|
-
state.
|
|
19
|
+
var nextDelayTime = function (value) {
|
|
20
|
+
state.pollCount += 1;
|
|
20
21
|
state.value = value;
|
|
21
|
-
return
|
|
22
|
+
return getDelayTime(state);
|
|
22
23
|
};
|
|
23
|
-
var
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
}));
|
|
24
|
+
var nextRetryTime = function (error) {
|
|
25
|
+
state.error = error;
|
|
26
|
+
return getRetryTime(state);
|
|
27
|
+
};
|
|
28
|
+
var resetError = function () {
|
|
29
|
+
state.error = null;
|
|
30
|
+
state.consecutiveRetryCount = 0;
|
|
31
|
+
};
|
|
32
|
+
var isRetryLimit = function () {
|
|
33
|
+
state.retryCount += 1;
|
|
34
|
+
state.consecutiveRetryCount += 1;
|
|
35
|
+
return state[retryKey] > retry.limit;
|
|
36
|
+
};
|
|
37
|
+
var visibility$ = pauseWhenHidden ? observables_1.visibilityState$ : (0, rxjs_1.of)(true);
|
|
38
|
+
var poller$ = (0, observables_1.getPoller$)(type, source$, nextDelayTime);
|
|
39
|
+
return visibility$.pipe((0, rxjs_1.switchMap)(function (isVisible) { return (isVisible ? poller$.pipe((0, operators_1.retryPoll)(isRetryLimit, nextRetryTime, resetError)) : rxjs_1.EMPTY); }));
|
|
40
40
|
};
|
|
41
41
|
}
|
|
42
42
|
//# sourceMappingURL=poll.js.map
|
package/dist/cjs/poll.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"poll.js","sourceRoot":"","sources":["../../src/poll.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"poll.js","sourceRoot":"","sources":["../../src/poll.ts"],"names":[],"mappings":";;AAoCA,oBA4CC;AAhFD,6BAAsE;AAEtE,0CAA+C;AAC/C,oDAAoE;AACpE,gDAA+C;AAgC/C,SAAgB,IAAI,CAAI,MAA4B;IAClD,OAAO,UAAC,OAAO;QACP,IAAA,KAA+D,IAAA,qBAAY,EAAC,MAAM,CAAC,EAAjF,IAAI,UAAA,EAAE,KAAK,WAAA,EAAE,eAAe,qBAAA,EAAE,YAAY,kBAAA,EAAE,YAAY,kBAAyB,CAAC;QAC1F,IAAM,QAAQ,GAAa,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,YAAY,CAAC;QAC1F,IAAM,KAAK,GAAiB;YAC1B,SAAS,EAAE,CAAC;YACZ,UAAU,EAAE,CAAC;YACb,qBAAqB,EAAE,CAAC;YACxB,KAAK,EAAE,SAAS;YAChB,KAAK,EAAE,SAAS;SACjB,CAAC;QAEF,IAAM,aAAa,GAAG,UAAC,KAAQ;YAC7B,KAAK,CAAC,SAAS,IAAI,CAAC,CAAC;YACrB,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC;YAEpB,OAAO,YAAY,CAAC,KAAK,CAAC,CAAC;QAC7B,CAAC,CAAC;QAEF,IAAM,aAAa,GAAG,UAAC,KAAU;YAC/B,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC;YAEpB,OAAO,YAAY,CAAC,KAAK,CAAC,CAAC;QAC7B,CAAC,CAAC;QAEF,IAAM,UAAU,GAAG;YACjB,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC;YACnB,KAAK,CAAC,qBAAqB,GAAG,CAAC,CAAC;QAClC,CAAC,CAAC;QAEF,IAAM,YAAY,GAAG;YACnB,KAAK,CAAC,UAAU,IAAI,CAAC,CAAC;YACtB,KAAK,CAAC,qBAAqB,IAAI,CAAC,CAAC;YAEjC,OAAO,KAAK,CAAC,QAAQ,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC;QACvC,CAAC,CAAC;QAEF,IAAM,WAAW,GAAG,eAAe,CAAC,CAAC,CAAC,8BAAgB,CAAC,CAAC,CAAC,IAAA,SAAE,EAAC,IAAI,CAAC,CAAC;QAClE,IAAM,OAAO,GAAG,IAAA,wBAAU,EAAC,IAAI,EAAE,OAAO,EAAE,aAAa,CAAC,CAAC;QAEzD,OAAO,WAAW,CAAC,IAAI,CACrB,IAAA,gBAAS,EAAC,UAAC,SAAS,IAAK,OAAA,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,IAAA,qBAAS,EAAC,YAAY,EAAE,aAAa,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,YAAK,CAAC,EAAtF,CAAsF,CAAC,CACjH,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.type.js","sourceRoot":"","sources":["../../../src/types/config.type.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"poll.type.js","sourceRoot":"","sources":["../../../src/types/poll.type.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"strategies.type.js","sourceRoot":"","sources":["../../../src/types/strategies.type.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.type.js","sourceRoot":"","sources":["../../../src/types/utils.type.ts"],"names":[],"mappings":""}
|
|
@@ -1,29 +1,41 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
1
|
+
import { controlConfig } from '../constants/config.const';
|
|
2
|
+
import { getStrategyTimeProducer } from './strategies';
|
|
3
|
+
import { isFunction, normalizeNumber, pickNumber } from './utils';
|
|
4
|
+
export function extendConfig(config) {
|
|
5
|
+
const normalizedConfig = normalizeConfig(config);
|
|
3
6
|
return {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
isConsecutiveRule: config?.isConsecutiveRule ?? true,
|
|
8
|
-
isBackgroundMode: Boolean(config?.isBackgroundMode),
|
|
7
|
+
...normalizedConfig,
|
|
8
|
+
getDelayTime: getTimeProducer('delay', normalizedConfig),
|
|
9
|
+
getRetryTime: getTimeProducer('retry', normalizedConfig),
|
|
9
10
|
};
|
|
10
11
|
}
|
|
11
|
-
function
|
|
12
|
+
function getTimeProducer(mode, config) {
|
|
13
|
+
const defaultTime = controlConfig[mode].time;
|
|
14
|
+
const timeProducer = getStrategyTimeProducer(mode, config);
|
|
12
15
|
return (state) => {
|
|
13
|
-
const
|
|
14
|
-
const
|
|
15
|
-
return
|
|
16
|
+
const producedTime = timeProducer({ ...state });
|
|
17
|
+
const normalizedTime = normalizeNumber(producedTime, defaultTime);
|
|
18
|
+
return pickNumber(normalizedTime);
|
|
16
19
|
};
|
|
17
20
|
}
|
|
18
|
-
function
|
|
19
|
-
|
|
20
|
-
|
|
21
|
+
function normalizeConfig(config) {
|
|
22
|
+
return {
|
|
23
|
+
type: config?.type ?? controlConfig.type,
|
|
24
|
+
delay: {
|
|
25
|
+
strategy: config?.delay?.strategy ?? controlConfig.delay.strategy,
|
|
26
|
+
time: isFunction(config?.delay?.time)
|
|
27
|
+
? config.delay.time
|
|
28
|
+
: normalizeNumber(config?.delay?.time, controlConfig.delay.time),
|
|
29
|
+
},
|
|
30
|
+
retry: {
|
|
31
|
+
strategy: config?.retry?.strategy ?? controlConfig.retry.strategy,
|
|
32
|
+
time: isFunction(config?.retry?.time)
|
|
33
|
+
? config.retry.time
|
|
34
|
+
: normalizeNumber(config?.retry?.time, controlConfig.retry.time),
|
|
35
|
+
limit: normalizeNumber(config?.retry?.limit, controlConfig.retry.limit, false),
|
|
36
|
+
consecutiveOnly: config?.retry?.consecutiveOnly ?? controlConfig.retry.consecutiveOnly,
|
|
37
|
+
},
|
|
38
|
+
pauseWhenHidden: config?.pauseWhenHidden ?? controlConfig.pauseWhenHidden,
|
|
39
|
+
};
|
|
21
40
|
}
|
|
22
|
-
export const controlConfig = {
|
|
23
|
-
type: 'repeat',
|
|
24
|
-
delay: 1000,
|
|
25
|
-
retries: 3,
|
|
26
|
-
isConsecutiveRule: true,
|
|
27
|
-
isBackgroundMode: false,
|
|
28
|
-
};
|
|
29
41
|
//# sourceMappingURL=config.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/common/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/common/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAI1D,OAAO,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAElE,MAAM,UAAU,YAAY,CAAI,MAA4B;IAC1D,MAAM,gBAAgB,GAA4B,eAAe,CAAC,MAAM,CAAC,CAAC;IAE1E,OAAO;QACL,GAAG,gBAAgB;QACnB,YAAY,EAAE,eAAe,CAAC,OAAO,EAAE,gBAAgB,CAAC;QACxD,YAAY,EAAE,eAAe,CAAC,OAAO,EAAE,gBAAgB,CAAC;KACzD,CAAC;AACJ,CAAC;AAED,SAAS,eAAe,CAAI,IAAc,EAAE,MAA+B;IACzE,MAAM,WAAW,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC;IAC7C,MAAM,YAAY,GAAG,uBAAuB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAE3D,OAAO,CAAC,KAAK,EAAU,EAAE;QACvB,MAAM,YAAY,GAAG,YAAY,CAAC,EAAE,GAAG,KAAK,EAAE,CAAC,CAAC;QAChD,MAAM,cAAc,GAAG,eAAe,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC;QAElE,OAAO,UAAU,CAAC,cAAc,CAAC,CAAC;IACpC,CAAC,CAAC;AACJ,CAAC;AAED,SAAS,eAAe,CAAI,MAA2B;IACrD,OAAO;QACL,IAAI,EAAE,MAAM,EAAE,IAAI,IAAI,aAAa,CAAC,IAAI;QACxC,KAAK,EAAE;YACL,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,IAAI,aAAa,CAAC,KAAK,CAAC,QAAQ;YACjE,IAAI,EAAE,UAAU,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC;gBACnC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI;gBACnB,CAAC,CAAC,eAAe,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC;SACnE;QACD,KAAK,EAAE;YACL,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,IAAI,aAAa,CAAC,KAAK,CAAC,QAAQ;YACjE,IAAI,EAAE,UAAU,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC;gBACnC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI;gBACnB,CAAC,CAAC,eAAe,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC;YAClE,KAAK,EAAE,eAAe,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,aAAa,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC;YAC9E,eAAe,EAAE,MAAM,EAAE,KAAK,EAAE,eAAe,IAAI,aAAa,CAAC,KAAK,CAAC,eAAe;SACvF;QACD,eAAe,EAAE,MAAM,EAAE,eAAe,IAAI,aAAa,CAAC,eAAe;KAC1E,CAAC;AACJ,CAAC"}
|
|
@@ -1,23 +1,23 @@
|
|
|
1
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
|
-
export function getPoller$(type, source$,
|
|
4
|
+
export function getPoller$(type, source$, getTime) {
|
|
5
5
|
let lastValue;
|
|
6
6
|
const completed$ = source$.pipe(takeLast(1), tap((value) => {
|
|
7
7
|
lastValue = value;
|
|
8
8
|
}));
|
|
9
9
|
return type === 'repeat'
|
|
10
10
|
? completed$.pipe(repeat({
|
|
11
|
-
delay: () => timer(
|
|
11
|
+
delay: () => timer(getTime(lastValue)),
|
|
12
12
|
}))
|
|
13
|
-
: dynamicInterval$(() =>
|
|
13
|
+
: dynamicInterval$(() => getTime(lastValue)).pipe(switchMap(() => completed$));
|
|
14
14
|
}
|
|
15
15
|
function pageVisibility$() {
|
|
16
16
|
return isBrowser() ? fromEvent(document, 'visibilitychange').pipe(startWith(null), map(isDocumentVisible)) : of(true);
|
|
17
17
|
}
|
|
18
|
-
function dynamicInterval$(
|
|
18
|
+
function dynamicInterval$(getTime) {
|
|
19
19
|
return of(null).pipe(repeat({
|
|
20
|
-
delay: () => timer(
|
|
20
|
+
delay: () => timer(getTime()),
|
|
21
21
|
}));
|
|
22
22
|
}
|
|
23
23
|
//# sourceMappingURL=observables.js.map
|
|
@@ -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,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,
|
|
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,OAA6B;IACjG,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,OAAO,CAAC,SAAS,CAAC,CAAC;SACvC,CAAC,CACH;QACH,CAAC,CAAC,gBAAgB,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;AACnF,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,OAAqB;IAC7C,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,CAClB,MAAM,CAAC;QACL,KAAK,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;KAC9B,CAAC,CACH,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { retry, tap, throwError, timer } from 'rxjs';
|
|
2
|
+
export function retryPoll(isLimit, getTime, resetError) {
|
|
3
|
+
return (source) => source.pipe(retry({
|
|
4
|
+
delay: (error) => (isLimit() ? throwError(() => error) : timer(getTime(error))),
|
|
5
|
+
}), tap(() => resetError()));
|
|
6
|
+
}
|
|
7
|
+
//# sourceMappingURL=operators.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"operators.js","sourceRoot":"","sources":["../../../src/common/operators.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,KAAK,EAAE,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,MAAM,CAAC;AAE/E,MAAM,UAAU,SAAS,CACvB,OAAsB,EACtB,OAA+B,EAC/B,UAAsB;IAEtB,OAAO,CAAC,MAAM,EAAE,EAAE,CAChB,MAAM,CAAC,IAAI,CACT,KAAK,CAAC;QACJ,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;KAChF,CAAC,EACF,GAAG,CAAC,GAAG,EAAE,CAAC,UAAU,EAAE,CAAC,CACxB,CAAC;AACN,CAAC"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { randomNumber } from './utils';
|
|
2
|
+
export function getStrategyTimeProducer(mode, config) {
|
|
3
|
+
const { strategy, time } = config[mode];
|
|
4
|
+
const isDelayMode = mode === 'delay';
|
|
5
|
+
const isConsecutive = config.retry.consecutiveOnly;
|
|
6
|
+
let timeProducer;
|
|
7
|
+
let attemptKey;
|
|
8
|
+
if (isDelayMode) {
|
|
9
|
+
attemptKey = 'pollCount';
|
|
10
|
+
}
|
|
11
|
+
else if (isConsecutive) {
|
|
12
|
+
attemptKey = 'consecutiveRetryCount';
|
|
13
|
+
}
|
|
14
|
+
else {
|
|
15
|
+
attemptKey = 'retryCount';
|
|
16
|
+
}
|
|
17
|
+
switch (strategy) {
|
|
18
|
+
case 'constant':
|
|
19
|
+
timeProducer = () => time;
|
|
20
|
+
break;
|
|
21
|
+
case 'linear':
|
|
22
|
+
timeProducer = (state) => state[attemptKey] * time;
|
|
23
|
+
break;
|
|
24
|
+
case 'exponential':
|
|
25
|
+
timeProducer = (state) => Math.pow(2, state[attemptKey] - 1) * time;
|
|
26
|
+
break;
|
|
27
|
+
case 'random':
|
|
28
|
+
timeProducer = () => randomNumber(time[0], time[1]);
|
|
29
|
+
break;
|
|
30
|
+
case 'dynamic':
|
|
31
|
+
timeProducer = (state) => time(state);
|
|
32
|
+
break;
|
|
33
|
+
default:
|
|
34
|
+
throw new Error('rxjs-poll: Unknown strategy!');
|
|
35
|
+
}
|
|
36
|
+
return timeProducer;
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=strategies.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"strategies.js","sourceRoot":"","sources":["../../../src/common/strategies.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAEvC,MAAM,UAAU,uBAAuB,CAAI,IAAc,EAAE,MAA+B;IACxF,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;IACxC,MAAM,WAAW,GAAG,IAAI,KAAK,OAAO,CAAC;IACrC,MAAM,aAAa,GAAG,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC;IACnD,IAAI,YAAgC,CAAC;IACrC,IAAI,UAAyB,CAAC;IAE9B,IAAI,WAAW,EAAE,CAAC;QAChB,UAAU,GAAG,WAAW,CAAC;IAC3B,CAAC;SAAM,IAAI,aAAa,EAAE,CAAC;QACzB,UAAU,GAAG,uBAAuB,CAAC;IACvC,CAAC;SAAM,CAAC;QACN,UAAU,GAAG,YAAY,CAAC;IAC5B,CAAC;IAED,QAAQ,QAAQ,EAAE,CAAC;QACjB,KAAK,UAAU;YACb,YAAY,GAAG,GAAG,EAAE,CAAC,IAAc,CAAC;YACpC,MAAM;QACR,KAAK,QAAQ;YACX,YAAY,GAAG,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,GAAI,IAAe,CAAC;YAC/D,MAAM;QACR,KAAK,aAAa;YAChB,YAAY,GAAG,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,GAAI,IAAe,CAAC;YAChF,MAAM;QACR,KAAK,QAAQ;YACX,YAAY,GAAG,GAAG,EAAE,CAAC,YAAY,CAAE,IAAe,CAAC,CAAC,CAAC,EAAG,IAAe,CAAC,CAAC,CAAC,CAAC,CAAC;YAC5E,MAAM;QACR,KAAK,SAAS;YACZ,YAAY,GAAG,CAAC,KAAmB,EAAE,EAAE,CAAE,IAA2B,CAAC,KAAK,CAAC,CAAC;YAC5E,MAAM;QACR;YACE,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;IACpD,CAAC;IAED,OAAO,YAAY,CAAC;AACtB,CAAC"}
|
package/dist/esm/common/utils.js
CHANGED
|
@@ -8,7 +8,7 @@ export function normalizeNumber(value, defaultValue = 0, isFinite = true) {
|
|
|
8
8
|
}
|
|
9
9
|
return Math.abs(normalizedValue);
|
|
10
10
|
}
|
|
11
|
-
export function
|
|
11
|
+
export function pickNumber(value) {
|
|
12
12
|
return Array.isArray(value) ? randomNumber(value[0], value[1]) : value;
|
|
13
13
|
}
|
|
14
14
|
export function randomNumber(min, max) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/common/utils.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/common/utils.ts"],"names":[],"mappings":"AASA,MAAM,UAAU,eAAe,CAAC,KAA4B,EAAE,YAAY,GAAG,CAAC,EAAE,QAAQ,GAAG,IAAI;IAC7F,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,CAAC,EAAE,YAAY,EAAE,QAAQ,CAAC,CAAW,CAAC;IAChF,CAAC;IAED,IAAI,eAAe,GAAG,KAAK,IAAI,YAAY,CAAC;IAE5C,IAAI,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,EAAE,CAAC;QACrF,eAAe,GAAG,YAAY,CAAC;IACjC,CAAC;IAED,OAAO,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;AACnC,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,KAAsB;IAC/C,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;AACzE,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,GAAW,EAAE,GAAW;IACnD,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;AAC3D,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,KAAc;IACvC,OAAO,OAAO,KAAK,KAAK,UAAU,CAAC;AACrC,CAAC;AAED,MAAM,UAAU,SAAS;IACvB,OAAO,OAAO,UAAU,CAAC,MAAM,KAAK,WAAW,IAAI,OAAO,UAAU,CAAC,MAAM,CAAC,QAAQ,KAAK,WAAW,CAAC;AACvG,CAAC;AAED,MAAM,UAAU,iBAAiB;IAC/B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC;AAC1B,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { pollType } from './poll.const';
|
|
2
|
+
import { strategyType } from './strategies.const';
|
|
3
|
+
export const controlConfig = {
|
|
4
|
+
type: pollType.REPEAT,
|
|
5
|
+
delay: {
|
|
6
|
+
strategy: strategyType.CONSTANT,
|
|
7
|
+
time: 1000,
|
|
8
|
+
},
|
|
9
|
+
retry: {
|
|
10
|
+
strategy: strategyType.EXPONENTIAL,
|
|
11
|
+
time: 1000,
|
|
12
|
+
limit: 3,
|
|
13
|
+
consecutiveOnly: true,
|
|
14
|
+
},
|
|
15
|
+
pauseWhenHidden: true,
|
|
16
|
+
};
|
|
17
|
+
//# sourceMappingURL=config.const.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.const.js","sourceRoot":"","sources":["../../../src/constants/config.const.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AACxC,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,IAAI,EAAE,QAAQ,CAAC,MAAM;IACrB,KAAK,EAAE;QACL,QAAQ,EAAE,YAAY,CAAC,QAAQ;QAC/B,IAAI,EAAE,IAAI;KACX;IACD,KAAK,EAAE;QACL,QAAQ,EAAE,YAAY,CAAC,WAAW;QAClC,IAAI,EAAE,IAAI;QACV,KAAK,EAAE,CAAC;QACR,eAAe,EAAE,IAAI;KACtB;IACD,eAAe,EAAE,IAAI;CAC2B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"poll.const.js","sourceRoot":"","sources":["../../../src/constants/poll.const.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,QAAQ,GAAG;IACtB,KAAK,EAAE,OAAO;IACd,KAAK,EAAE,OAAO;CACN,CAAC;AAEX,MAAM,CAAC,MAAM,QAAQ,GAAG;IACtB,MAAM,EAAE,QAAQ;IAChB,QAAQ,EAAE,UAAU;CACZ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"strategies.const.js","sourceRoot":"","sources":["../../../src/constants/strategies.const.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,QAAQ,EAAE,UAAU;IACpB,MAAM,EAAE,QAAQ;IAChB,WAAW,EAAE,aAAa;IAC1B,MAAM,EAAE,QAAQ;IAChB,OAAO,EAAE,SAAS;CACV,CAAC"}
|
package/dist/esm/index.js
CHANGED
package/dist/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAC5D,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC"}
|
package/dist/esm/poll.js
CHANGED
|
@@ -1,37 +1,39 @@
|
|
|
1
|
-
import { EMPTY, of,
|
|
2
|
-
import {
|
|
1
|
+
import { EMPTY, of, switchMap } from 'rxjs';
|
|
2
|
+
import { extendConfig } from './common/config';
|
|
3
3
|
import { getPoller$, visibilityState$ } from './common/observables';
|
|
4
|
+
import { retryPoll } from './common/operators';
|
|
4
5
|
export function poll(config) {
|
|
5
6
|
return (source$) => {
|
|
6
|
-
const { type,
|
|
7
|
-
const retryKey =
|
|
7
|
+
const { type, retry, pauseWhenHidden, getDelayTime, getRetryTime } = extendConfig(config);
|
|
8
|
+
const retryKey = retry.consecutiveOnly ? 'consecutiveRetryCount' : 'retryCount';
|
|
8
9
|
const state = {
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
value:
|
|
13
|
-
error:
|
|
10
|
+
pollCount: 0,
|
|
11
|
+
retryCount: 0,
|
|
12
|
+
consecutiveRetryCount: 0,
|
|
13
|
+
value: undefined,
|
|
14
|
+
error: undefined,
|
|
14
15
|
};
|
|
15
|
-
const
|
|
16
|
-
state.
|
|
16
|
+
const nextDelayTime = (value) => {
|
|
17
|
+
state.pollCount += 1;
|
|
17
18
|
state.value = value;
|
|
18
|
-
return
|
|
19
|
+
return getDelayTime(state);
|
|
19
20
|
};
|
|
20
|
-
const
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
21
|
+
const nextRetryTime = (error) => {
|
|
22
|
+
state.error = error;
|
|
23
|
+
return getRetryTime(state);
|
|
24
|
+
};
|
|
25
|
+
const resetError = () => {
|
|
26
|
+
state.error = null;
|
|
27
|
+
state.consecutiveRetryCount = 0;
|
|
28
|
+
};
|
|
29
|
+
const isRetryLimit = () => {
|
|
30
|
+
state.retryCount += 1;
|
|
31
|
+
state.consecutiveRetryCount += 1;
|
|
32
|
+
return state[retryKey] > retry.limit;
|
|
33
|
+
};
|
|
34
|
+
const visibility$ = pauseWhenHidden ? visibilityState$ : of(true);
|
|
35
|
+
const poller$ = getPoller$(type, source$, nextDelayTime);
|
|
36
|
+
return visibility$.pipe(switchMap((isVisible) => (isVisible ? poller$.pipe(retryPoll(isRetryLimit, nextRetryTime, resetError)) : EMPTY)));
|
|
35
37
|
};
|
|
36
38
|
}
|
|
37
39
|
//# sourceMappingURL=poll.js.map
|
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,
|
|
1
|
+
{"version":3,"file":"poll.js","sourceRoot":"","sources":["../../src/poll.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAA4B,EAAE,EAAE,SAAS,EAAE,MAAM,MAAM,CAAC;AAEtE,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACpE,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAgC/C,MAAM,UAAU,IAAI,CAAI,MAA4B;IAClD,OAAO,CAAC,OAAO,EAAE,EAAE;QACjB,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,eAAe,EAAE,YAAY,EAAE,YAAY,EAAE,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;QAC1F,MAAM,QAAQ,GAAa,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,YAAY,CAAC;QAC1F,MAAM,KAAK,GAAiB;YAC1B,SAAS,EAAE,CAAC;YACZ,UAAU,EAAE,CAAC;YACb,qBAAqB,EAAE,CAAC;YACxB,KAAK,EAAE,SAAS;YAChB,KAAK,EAAE,SAAS;SACjB,CAAC;QAEF,MAAM,aAAa,GAAG,CAAC,KAAQ,EAAU,EAAE;YACzC,KAAK,CAAC,SAAS,IAAI,CAAC,CAAC;YACrB,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC;YAEpB,OAAO,YAAY,CAAC,KAAK,CAAC,CAAC;QAC7B,CAAC,CAAC;QAEF,MAAM,aAAa,GAAG,CAAC,KAAU,EAAU,EAAE;YAC3C,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC;YAEpB,OAAO,YAAY,CAAC,KAAK,CAAC,CAAC;QAC7B,CAAC,CAAC;QAEF,MAAM,UAAU,GAAG,GAAS,EAAE;YAC5B,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC;YACnB,KAAK,CAAC,qBAAqB,GAAG,CAAC,CAAC;QAClC,CAAC,CAAC;QAEF,MAAM,YAAY,GAAG,GAAY,EAAE;YACjC,KAAK,CAAC,UAAU,IAAI,CAAC,CAAC;YACtB,KAAK,CAAC,qBAAqB,IAAI,CAAC,CAAC;YAEjC,OAAO,KAAK,CAAC,QAAQ,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC;QACvC,CAAC,CAAC;QAEF,MAAM,WAAW,GAAG,eAAe,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;QAClE,MAAM,OAAO,GAAG,UAAU,CAAC,IAAI,EAAE,OAAO,EAAE,aAAa,CAAC,CAAC;QAEzD,OAAO,WAAW,CAAC,IAAI,CACrB,SAAS,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,aAAa,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CACjH,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.type.js","sourceRoot":"","sources":["../../../src/types/config.type.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"poll.type.js","sourceRoot":"","sources":["../../../src/types/poll.type.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"strategies.type.js","sourceRoot":"","sources":["../../../src/types/strategies.type.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.type.js","sourceRoot":"","sources":["../../../src/types/utils.type.ts"],"names":[],"mappings":""}
|
|
@@ -1,31 +1,4 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
export declare
|
|
4
|
-
export type ControlPollConfig<T> = {
|
|
5
|
-
delay: number;
|
|
6
|
-
} & Omit<NormalizedPollConfig<T>, 'getDelay'>;
|
|
7
|
-
export type NormalizedPollConfig<T> = {
|
|
8
|
-
type: PollType;
|
|
9
|
-
getDelay: DelayProducer<T>;
|
|
10
|
-
retries: number;
|
|
11
|
-
isConsecutiveRule: boolean;
|
|
12
|
-
isBackgroundMode: boolean;
|
|
13
|
-
};
|
|
14
|
-
export type PollConfig<T> = {
|
|
15
|
-
type?: PollType | Nil;
|
|
16
|
-
delay?: number | UnsafeMinMax | PollDelayFunc<T> | Nil;
|
|
17
|
-
retries?: number | Nil;
|
|
18
|
-
isConsecutiveRule?: boolean | Nil;
|
|
19
|
-
isBackgroundMode?: boolean | Nil;
|
|
20
|
-
};
|
|
21
|
-
export type PollType = 'repeat' | 'interval';
|
|
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
|
-
polls: number;
|
|
26
|
-
value: T;
|
|
27
|
-
error: any | null;
|
|
28
|
-
} & Record<RetryKey, number>;
|
|
29
|
-
export type RetryKey = 'retries' | 'consecutiveRetries';
|
|
30
|
-
export {};
|
|
1
|
+
import { ExtendedPollConfig, PollConfig } from '../types/config.type';
|
|
2
|
+
import { Nil } from '../types/utils.type';
|
|
3
|
+
export declare function extendConfig<T>(config?: PollConfig<T> | Nil): ExtendedPollConfig<T>;
|
|
31
4
|
//# sourceMappingURL=config.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/common/config.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/common/config.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAwB,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAE5F,OAAO,EAAE,GAAG,EAAE,MAAM,qBAAqB,CAAC;AAI1C,wBAAgB,YAAY,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,kBAAkB,CAAC,CAAC,CAAC,CAQnF"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Observable } from 'rxjs';
|
|
2
|
-
import { PollType } from '
|
|
2
|
+
import { PollType } from '../types/poll.type';
|
|
3
3
|
export declare const visibilityState$: Observable<boolean>;
|
|
4
|
-
export declare function getPoller$<T>(type: PollType, source$: Observable<T>,
|
|
4
|
+
export declare function getPoller$<T>(type: PollType, source$: Observable<T>, getTime: (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,EAAuE,MAAM,MAAM,CAAC;AAEvH,OAAO,EAAE,QAAQ,EAAE,MAAM,
|
|
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,oBAAoB,CAAC;AAG9C,eAAO,MAAM,gBAAgB,qBAAyE,CAAC;AAEvG,wBAAgB,UAAU,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,MAAM,GAAG,UAAU,CAAC,CAAC,CAAC,CAgBlH"}
|