rxjs-poll 2.0.8 → 2.0.9

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 (70) hide show
  1. package/README.md +16 -110
  2. package/dist/cjs/index.js +194 -10
  3. package/dist/cjs/index.js.map +1 -1
  4. package/dist/esm/index.js +190 -4
  5. package/dist/esm/index.js.map +1 -1
  6. package/dist/types/common/operators.d.ts.map +1 -1
  7. package/dist/types/common/utils.d.ts.map +1 -1
  8. package/dist/types/poll.d.ts.map +1 -1
  9. package/dist/types/types/poll.type.d.ts.map +1 -1
  10. package/dist/umd/index.js +198 -0
  11. package/dist/umd/index.js.map +1 -0
  12. package/dist/umd/index.min.js +2 -0
  13. package/dist/umd/index.min.js.map +1 -0
  14. package/package.json +129 -103
  15. package/dist/cjs/common/config.js +0 -52
  16. package/dist/cjs/common/config.js.map +0 -1
  17. package/dist/cjs/common/observables.js +0 -25
  18. package/dist/cjs/common/observables.js.map +0 -1
  19. package/dist/cjs/common/operators.js +0 -12
  20. package/dist/cjs/common/operators.js.map +0 -1
  21. package/dist/cjs/common/strategies.js +0 -41
  22. package/dist/cjs/common/strategies.js.map +0 -1
  23. package/dist/cjs/common/utils.js +0 -36
  24. package/dist/cjs/common/utils.js.map +0 -1
  25. package/dist/cjs/constants/config.const.js +0 -20
  26. package/dist/cjs/constants/config.const.js.map +0 -1
  27. package/dist/cjs/constants/poll.const.js +0 -12
  28. package/dist/cjs/constants/poll.const.js.map +0 -1
  29. package/dist/cjs/constants/strategies.const.js +0 -11
  30. package/dist/cjs/constants/strategies.const.js.map +0 -1
  31. package/dist/cjs/poll.js +0 -42
  32. package/dist/cjs/poll.js.map +0 -1
  33. package/dist/cjs/types/config.type.js +0 -3
  34. package/dist/cjs/types/config.type.js.map +0 -1
  35. package/dist/cjs/types/observables.type.js +0 -3
  36. package/dist/cjs/types/observables.type.js.map +0 -1
  37. package/dist/cjs/types/poll.type.js +0 -3
  38. package/dist/cjs/types/poll.type.js.map +0 -1
  39. package/dist/cjs/types/strategies.type.js +0 -3
  40. package/dist/cjs/types/strategies.type.js.map +0 -1
  41. package/dist/cjs/types/utils.type.js +0 -3
  42. package/dist/cjs/types/utils.type.js.map +0 -1
  43. package/dist/esm/common/config.js +0 -41
  44. package/dist/esm/common/config.js.map +0 -1
  45. package/dist/esm/common/observables.js +0 -21
  46. package/dist/esm/common/observables.js.map +0 -1
  47. package/dist/esm/common/operators.js +0 -7
  48. package/dist/esm/common/operators.js.map +0 -1
  49. package/dist/esm/common/strategies.js +0 -38
  50. package/dist/esm/common/strategies.js.map +0 -1
  51. package/dist/esm/common/utils.js +0 -26
  52. package/dist/esm/common/utils.js.map +0 -1
  53. package/dist/esm/constants/config.const.js +0 -17
  54. package/dist/esm/constants/config.const.js.map +0 -1
  55. package/dist/esm/constants/poll.const.js +0 -9
  56. package/dist/esm/constants/poll.const.js.map +0 -1
  57. package/dist/esm/constants/strategies.const.js +0 -8
  58. package/dist/esm/constants/strategies.const.js.map +0 -1
  59. package/dist/esm/poll.js +0 -39
  60. package/dist/esm/poll.js.map +0 -1
  61. package/dist/esm/types/config.type.js +0 -2
  62. package/dist/esm/types/config.type.js.map +0 -1
  63. package/dist/esm/types/observables.type.js +0 -2
  64. package/dist/esm/types/observables.type.js.map +0 -1
  65. package/dist/esm/types/poll.type.js +0 -2
  66. package/dist/esm/types/poll.type.js.map +0 -1
  67. package/dist/esm/types/strategies.type.js +0 -2
  68. package/dist/esm/types/strategies.type.js.map +0 -1
  69. package/dist/esm/types/utils.type.js +0 -2
  70. package/dist/esm/types/utils.type.js.map +0 -1
@@ -0,0 +1,198 @@
1
+ (function (global, factory) {
2
+ typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('rxjs')) :
3
+ typeof define === 'function' && define.amd ? define(['exports', 'rxjs'], factory) :
4
+ (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.rxjsPoll = {}, global.rxjs));
5
+ })(this, (function (exports, rxjs) { 'use strict';
6
+
7
+ const pollType = {
8
+ REPEAT: 'repeat',
9
+ INTERVAL: 'interval',
10
+ };
11
+
12
+ const strategyType = {
13
+ CONSTANT: 'constant',
14
+ LINEAR: 'linear',
15
+ EXPONENTIAL: 'exponential',
16
+ RANDOM: 'random',
17
+ DYNAMIC: 'dynamic',
18
+ };
19
+
20
+ const controlConfig = {
21
+ type: pollType.REPEAT,
22
+ delay: {
23
+ strategy: strategyType.CONSTANT,
24
+ time: 1000,
25
+ },
26
+ retry: {
27
+ strategy: strategyType.EXPONENTIAL,
28
+ time: 1000,
29
+ limit: 3,
30
+ consecutiveOnly: true,
31
+ },
32
+ pauseWhenHidden: true,
33
+ };
34
+
35
+ function normalizeNumber(value, defaultValue = 0, isFinite = true) {
36
+ if (Array.isArray(value)) {
37
+ return value.map((n) => normalizeNumber(n, defaultValue, isFinite));
38
+ }
39
+ let normalizedValue = value !== null && value !== void 0 ? value : defaultValue;
40
+ if (Number.isNaN(normalizedValue) || (isFinite && !Number.isFinite(normalizedValue))) {
41
+ normalizedValue = defaultValue;
42
+ }
43
+ return Math.abs(normalizedValue);
44
+ }
45
+ function pickNumber(value) {
46
+ return Array.isArray(value) ? randomNumber(value[0], value[1]) : value;
47
+ }
48
+ function randomNumber(min, max) {
49
+ return Math.floor(Math.random() * (max - min + 1)) + min;
50
+ }
51
+ function isFunction(value) {
52
+ return typeof value === 'function';
53
+ }
54
+ function isBrowser() {
55
+ return typeof globalThis.window !== 'undefined' && typeof globalThis.window.document !== 'undefined';
56
+ }
57
+ function isDocumentVisible() {
58
+ return !document.hidden;
59
+ }
60
+
61
+ function getStrategyTimeProducer(mode, config) {
62
+ const { strategy, time } = config[mode];
63
+ const isDelayMode = mode === 'delay';
64
+ const isConsecutive = config.retry.consecutiveOnly;
65
+ let timeProducer;
66
+ let attemptKey;
67
+ if (isDelayMode) {
68
+ attemptKey = 'pollCount';
69
+ }
70
+ else if (isConsecutive) {
71
+ attemptKey = 'consecutiveRetryCount';
72
+ }
73
+ else {
74
+ attemptKey = 'retryCount';
75
+ }
76
+ switch (strategy) {
77
+ case 'constant':
78
+ timeProducer = () => time;
79
+ break;
80
+ case 'linear':
81
+ timeProducer = (state) => state[attemptKey] * time;
82
+ break;
83
+ case 'exponential':
84
+ timeProducer = (state) => Math.pow(2, state[attemptKey] - 1) * time;
85
+ break;
86
+ case 'random':
87
+ timeProducer = () => randomNumber(time[0], time[1]);
88
+ break;
89
+ case 'dynamic':
90
+ timeProducer = (state) => time(state);
91
+ break;
92
+ default:
93
+ throw new Error('rxjs-poll: Unknown strategy!');
94
+ }
95
+ return timeProducer;
96
+ }
97
+
98
+ function extendConfig(config) {
99
+ const normalizedConfig = normalizeConfig(config);
100
+ return Object.assign(Object.assign({}, normalizedConfig), { getDelayTime: getTimeProducer('delay', normalizedConfig), getRetryTime: getTimeProducer('retry', normalizedConfig) });
101
+ }
102
+ function getTimeProducer(mode, config) {
103
+ const defaultTime = controlConfig[mode].time;
104
+ const timeProducer = getStrategyTimeProducer(mode, config);
105
+ return (state) => {
106
+ const producedTime = timeProducer(Object.assign({}, state));
107
+ const normalizedTime = normalizeNumber(producedTime, defaultTime);
108
+ return pickNumber(normalizedTime);
109
+ };
110
+ }
111
+ function normalizeConfig(config) {
112
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o;
113
+ return {
114
+ type: (_a = config === null || config === void 0 ? void 0 : config.type) !== null && _a !== void 0 ? _a : controlConfig.type,
115
+ delay: {
116
+ strategy: (_c = (_b = config === null || config === void 0 ? void 0 : config.delay) === null || _b === void 0 ? void 0 : _b.strategy) !== null && _c !== void 0 ? _c : controlConfig.delay.strategy,
117
+ time: isFunction((_d = config === null || config === void 0 ? void 0 : config.delay) === null || _d === void 0 ? void 0 : _d.time)
118
+ ? config.delay.time
119
+ : normalizeNumber((_e = config === null || config === void 0 ? void 0 : config.delay) === null || _e === void 0 ? void 0 : _e.time, controlConfig.delay.time),
120
+ },
121
+ retry: {
122
+ strategy: (_g = (_f = config === null || config === void 0 ? void 0 : config.retry) === null || _f === void 0 ? void 0 : _f.strategy) !== null && _g !== void 0 ? _g : controlConfig.retry.strategy,
123
+ time: isFunction((_h = config === null || config === void 0 ? void 0 : config.retry) === null || _h === void 0 ? void 0 : _h.time)
124
+ ? config.retry.time
125
+ : normalizeNumber((_j = config === null || config === void 0 ? void 0 : config.retry) === null || _j === void 0 ? void 0 : _j.time, controlConfig.retry.time),
126
+ limit: normalizeNumber((_k = config === null || config === void 0 ? void 0 : config.retry) === null || _k === void 0 ? void 0 : _k.limit, controlConfig.retry.limit, false),
127
+ 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 : controlConfig.retry.consecutiveOnly,
128
+ },
129
+ pauseWhenHidden: (_o = config === null || config === void 0 ? void 0 : config.pauseWhenHidden) !== null && _o !== void 0 ? _o : controlConfig.pauseWhenHidden,
130
+ };
131
+ }
132
+
133
+ const visibilityState$ = pageVisibility$().pipe(rxjs.shareReplay({ bufferSize: 1, refCount: true }));
134
+ function getPollerFactory$(type, source$) {
135
+ let lastValue;
136
+ const completed$ = source$.pipe(rxjs.takeLast(1), rxjs.tap((value) => {
137
+ lastValue = value;
138
+ }));
139
+ return type === 'repeat'
140
+ ? (getNextTime) => repeatWith$(completed$, () => getNextTime(lastValue))
141
+ : (getNextTime) => repeatWith$(rxjs.of(null), () => getNextTime(lastValue)).pipe(rxjs.switchMap(() => completed$));
142
+ }
143
+ function pageVisibility$() {
144
+ return isBrowser() ? rxjs.fromEvent(document, 'visibilitychange').pipe(rxjs.startWith(null), rxjs.map(isDocumentVisible)) : rxjs.of(true);
145
+ }
146
+ function repeatWith$(source$, getTime) {
147
+ return source$.pipe(rxjs.repeat({
148
+ delay: () => rxjs.timer(getTime()),
149
+ }));
150
+ }
151
+
152
+ function retryPoll(isLimit, getTime, resetError) {
153
+ return (source) => source.pipe(rxjs.retry({
154
+ delay: (error) => (isLimit() ? rxjs.throwError(() => error) : rxjs.timer(getTime(error))),
155
+ }), rxjs.tap(() => resetError()));
156
+ }
157
+
158
+ function poll(config) {
159
+ return (source$) => {
160
+ const { type, retry, pauseWhenHidden, getDelayTime, getRetryTime } = extendConfig(config);
161
+ const retryKey = retry.consecutiveOnly ? 'consecutiveRetryCount' : 'retryCount';
162
+ const state = {
163
+ value: undefined,
164
+ error: undefined,
165
+ pollCount: 0,
166
+ retryCount: 0,
167
+ consecutiveRetryCount: 0,
168
+ };
169
+ const nextDelayTime = (value) => {
170
+ state.pollCount += 1;
171
+ state.value = value;
172
+ return getDelayTime(state);
173
+ };
174
+ const nextRetryTime = (error) => {
175
+ state.error = error;
176
+ return getRetryTime(state);
177
+ };
178
+ const resetError = () => {
179
+ state.error = undefined;
180
+ state.consecutiveRetryCount = 0;
181
+ };
182
+ const isRetryLimit = () => {
183
+ state.retryCount += 1;
184
+ state.consecutiveRetryCount += 1;
185
+ return state[retryKey] > retry.limit;
186
+ };
187
+ const visibility$ = pauseWhenHidden ? visibilityState$ : rxjs.of(true);
188
+ const poller$ = getPollerFactory$(type, source$)(nextDelayTime);
189
+ return visibility$.pipe(rxjs.switchMap((isVisible) => (isVisible ? poller$.pipe(retryPoll(isRetryLimit, nextRetryTime, resetError)) : rxjs.EMPTY)));
190
+ };
191
+ }
192
+
193
+ exports.poll = poll;
194
+ exports.pollType = pollType;
195
+ exports.strategyType = strategyType;
196
+
197
+ }));
198
+ //# sourceMappingURL=index.js.map
@@ -0,0 +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/common/observables.ts","../../src/common/operators.ts","../../src/poll.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null],"names":["shareReplay","takeLast","tap","of","switchMap","fromEvent","startWith","map","repeat","timer","retry","throwError","EMPTY"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("rxjs")):"function"==typeof define&&define.amd?define(["exports","rxjs"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).rxjsPoll={},e.rxjs)}(this,function(e,t){"use strict";const n={REPEAT:"repeat",INTERVAL:"interval"},r={CONSTANT:"constant",LINEAR:"linear",EXPONENTIAL:"exponential",RANDOM:"random",DYNAMIC:"dynamic"},i={type:n.REPEAT,delay:{strategy:r.CONSTANT,time:1e3},retry:{strategy:r.EXPONENTIAL,time:1e3,limit:3,consecutiveOnly:!0},pauseWhenHidden:!0};function o(e,t=0,n=!0){if(Array.isArray(e))return e.map(e=>o(e,t,n));let r=null!=e?e:t;return(Number.isNaN(r)||n&&!Number.isFinite(r))&&(r=t),Math.abs(r)}function l(e,t){return Math.floor(Math.random()*(t-e+1))+e}function u(e){return"function"==typeof e}function a(){return!document.hidden}function d(e){const t=function(e){var t,n,r,l,a,d,y,s,c,p,v,m,f;return{type:null!==(t=null==e?void 0:e.type)&&void 0!==t?t:i.type,delay:{strategy:null!==(r=null===(n=null==e?void 0:e.delay)||void 0===n?void 0:n.strategy)&&void 0!==r?r:i.delay.strategy,time:u(null===(l=null==e?void 0:e.delay)||void 0===l?void 0:l.time)?e.delay.time:o(null===(a=null==e?void 0:e.delay)||void 0===a?void 0:a.time,i.delay.time)},retry:{strategy:null!==(y=null===(d=null==e?void 0:e.retry)||void 0===d?void 0:d.strategy)&&void 0!==y?y:i.retry.strategy,time:u(null===(s=null==e?void 0:e.retry)||void 0===s?void 0:s.time)?e.retry.time:o(null===(c=null==e?void 0:e.retry)||void 0===c?void 0:c.time,i.retry.time),limit:o(null===(p=null==e?void 0:e.retry)||void 0===p?void 0:p.limit,i.retry.limit,!1),consecutiveOnly:null!==(m=null===(v=null==e?void 0:e.retry)||void 0===v?void 0:v.consecutiveOnly)&&void 0!==m?m:i.retry.consecutiveOnly},pauseWhenHidden:null!==(f=null==e?void 0:e.pauseWhenHidden)&&void 0!==f?f:i.pauseWhenHidden}}(e);return Object.assign(Object.assign({},t),{getDelayTime:y("delay",t),getRetryTime:y("retry",t)})}function y(e,t){const n=i[e].time,r=function(e,t){const{strategy:n,time:r}=t[e],i="delay"===e,o=t.retry.consecutiveOnly;let u,a;switch(a=i?"pollCount":o?"consecutiveRetryCount":"retryCount",n){case"constant":u=()=>r;break;case"linear":u=e=>e[a]*r;break;case"exponential":u=e=>Math.pow(2,e[a]-1)*r;break;case"random":u=()=>l(r[0],r[1]);break;case"dynamic":u=e=>r(e);break;default:throw new Error("rxjs-poll: Unknown strategy!")}return u}(e,t);return e=>{const t=o(r(Object.assign({},e)),n);return i=t,Array.isArray(i)?l(i[0],i[1]):i;var i}}const s=(void 0!==globalThis.window&&void 0!==globalThis.window.document?t.fromEvent(document,"visibilitychange").pipe(t.startWith(null),t.map(a)):t.of(!0)).pipe(t.shareReplay({bufferSize:1,refCount:!0}));function c(e,n){return e.pipe(t.repeat({delay:()=>t.timer(n())}))}e.poll=function(e){return n=>{const{type:r,retry:i,pauseWhenHidden:o,getDelayTime:l,getRetryTime:u}=d(e),a=i.consecutiveOnly?"consecutiveRetryCount":"retryCount",y={value:void 0,error:void 0,pollCount:0,retryCount:0,consecutiveRetryCount:0},p=e=>(y.error=e,u(y)),v=()=>{y.error=void 0,y.consecutiveRetryCount=0},m=()=>(y.retryCount+=1,y.consecutiveRetryCount+=1,y[a]>i.limit),f=o?s:t.of(!0),g=function(e,n){let r;const i=n.pipe(t.takeLast(1),t.tap(e=>{r=e}));return"repeat"===e?e=>c(i,()=>e(r)):e=>c(t.of(null),()=>e(r)).pipe(t.switchMap(()=>i))}(r,n)(e=>(y.pollCount+=1,y.value=e,l(y)));return f.pipe(t.switchMap(e=>e?g.pipe(function(e,n,r){return i=>i.pipe(t.retry({delay:r=>e()?t.throwError(()=>r):t.timer(n(r))}),t.tap(()=>r()))}(m,p,v)):t.EMPTY))}},e.pollType=n,e.strategyType=r});
2
+ //# sourceMappingURL=index.min.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.min.js","sources":["../../src/constants/poll.const.ts","../../src/constants/strategies.const.ts","../../src/constants/config.const.ts","../../src/common/utils.ts","../../src/common/config.ts","../../src/common/strategies.ts","../../src/common/observables.ts","../../src/poll.ts","../../src/common/operators.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null],"names":["pollType","REPEAT","INTERVAL","strategyType","CONSTANT","LINEAR","EXPONENTIAL","RANDOM","DYNAMIC","controlConfig","type","delay","strategy","time","retry","limit","consecutiveOnly","pauseWhenHidden","normalizeNumber","value","defaultValue","isFinite","Array","isArray","map","n","normalizedValue","Number","isNaN","Math","abs","randomNumber","min","max","floor","random","isFunction","isDocumentVisible","document","hidden","extendConfig","config","normalizedConfig","_a","_c","_b","_d","_e","_g","_f","_h","_j","_k","_m","_l","_o","normalizeConfig","Object","assign","getDelayTime","getTimeProducer","getRetryTime","mode","defaultTime","timeProducer","isDelayMode","isConsecutive","attemptKey","state","pow","Error","getStrategyTimeProducer","normalizedTime","visibilityState$","globalThis","window","fromEvent","pipe","startWith","of","shareReplay","bufferSize","refCount","repeatWith$","source$","getTime","repeat","timer","retryKey","undefined","error","pollCount","retryCount","consecutiveRetryCount","nextRetryTime","resetError","isRetryLimit","visibility$","poller$","lastValue","completed$","takeLast","tap","getNextTime","switchMap","getPollerFactory$","isVisible","isLimit","source","throwError","retryPoll","EMPTY"],"mappings":"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"}
package/package.json CHANGED
@@ -1,103 +1,129 @@
1
- {
2
- "name": "rxjs-poll",
3
- "version": "2.0.8",
4
- "description": "RxJS operator for polling",
5
- "keywords": [
6
- "rxjs",
7
- "operator",
8
- "poll",
9
- "polling",
10
- "long-polling",
11
- "network",
12
- "http",
13
- "ajax"
14
- ],
15
- "author": {
16
- "name": "Marin Muštra",
17
- "url": "https://www.linkedin.com/in/marin-mustra"
18
- },
19
- "license": "MIT",
20
- "repository": {
21
- "type": "git",
22
- "url": "https://github.com/mmustra/rxjs-poll.git"
23
- },
24
- "bugs": {
25
- "url": "https://github.com/mmustra/rxjs-poll/issues"
26
- },
27
- "scripts": {
28
- "release": "release-it",
29
- "build": "npm run util:clean:dist && npm run build:esm && npm run build:cjs && npm run build:types && npm run util:packageJson",
30
- "build:esm": "tsc -p ./ts-configs/tsconfig.esm.json",
31
- "build:cjs": "tsc -p ./ts-configs/tsconfig.cjs.json",
32
- "build:types": "tsc -p ./ts-configs/tsconfig.types.json",
33
- "prepare": "is-ci || husky",
34
- "prepublishOnly": "npm run build",
35
- "test": "jest --verbose",
36
- "test:coverage": "npm run util:clean:coverage && npm run test -- --collect-coverage",
37
- "lint": "eslint ./src ./tests",
38
- "lint:fix": "npm run lint -- --fix",
39
- "util:packageJson": "cross-env TS_NODE_PROJECT='./ts-configs/tsconfig.scripts.json' ts-node ./utils/generate-package-json.ts",
40
- "util:clean:dist": "rimraf ./dist --no-preserve-root --no-interactive",
41
- "util:clean:coverage": "rimraf ./coverage --no-preserve-root --no-interactive",
42
- "util:commitlint": "commitlint",
43
- "util:lint-staged": "lint-staged"
44
- },
45
- "main": "./dist/cjs/index.js",
46
- "module": "./dist/esm/index.js",
47
- "types": "./dist/types/index.d.ts",
48
- "sideEffects": false,
49
- "files": [
50
- "dist/**/*"
51
- ],
52
- "exports": {
53
- ".": {
54
- "types": "./dist/types/index.d.ts",
55
- "node": "./dist/cjs/index.js",
56
- "require": "./dist/cjs/index.js",
57
- "import": "./dist/esm/index.js",
58
- "default": "./dist/esm/index.js"
59
- }
60
- },
61
- "lint-staged": {
62
- "*.{js,ts}": [
63
- "npm run lint:fix"
64
- ]
65
- },
66
- "peerDependencies": {
67
- "rxjs": ">=7 || ^8.0.0-alpha.0 || ^8.0.0-beta.0 || ^8.0.0-rc.0"
68
- },
69
- "devDependencies": {
70
- "@commitlint/cli": "^19.8.1",
71
- "@commitlint/config-conventional": "^19.8.1",
72
- "@commitlint/types": "^19.8.1",
73
- "@release-it/conventional-changelog": "^10.0.1",
74
- "@types/fs-extra": "^11.0.4",
75
- "@types/jest": "^30.0.0",
76
- "@types/node": "^24.0.1",
77
- "@typescript-eslint/eslint-plugin": "^8.34.0",
78
- "@typescript-eslint/parser": "^8.34.0",
79
- "cross-env": "^10.0.0",
80
- "eslint": "^9.29.0",
81
- "eslint-config-prettier": "^10.1.5",
82
- "eslint-config-xo": "^0.47.0",
83
- "eslint-config-xo-typescript": "^8.0.1",
84
- "eslint-plugin-import": "^2.31.0",
85
- "eslint-plugin-jest-formatting": "^3.1.0",
86
- "eslint-plugin-prettier": "^5.4.1",
87
- "eslint-plugin-simple-import-sort": "^12.1.1",
88
- "eslint-plugin-unused-imports": "^4.1.4",
89
- "fs-extra": "^11.3.0",
90
- "husky": "^9.1.7",
91
- "is-ci": "^4.1.0",
92
- "jest": "^30.0.0",
93
- "jest-environment-jsdom": "^30.0.0",
94
- "jest-environment-node": "^30.0.0",
95
- "lint-staged": "^16.1.1",
96
- "release-it": "^19.0.3",
97
- "rimraf": "^6.0.1",
98
- "rxjs": "^7.8.2",
99
- "ts-jest": "^29.4.0",
100
- "ts-node": "^10.9.2",
101
- "typescript": "^5.8.3"
102
- }
103
- }
1
+ {
2
+ "name": "rxjs-poll",
3
+ "version": "2.0.9",
4
+ "description": "A flexible RxJS operator library that enables polling on any completed observable source with advanced timing and retry strategies",
5
+ "keywords": [
6
+ "rxjs",
7
+ "operator",
8
+ "poll",
9
+ "polling",
10
+ "long-polling",
11
+ "network",
12
+ "http",
13
+ "ajax",
14
+ "observable",
15
+ "reactive",
16
+ "typescript",
17
+ "retry",
18
+ "backoff",
19
+ "exponential-backoff",
20
+ "interval",
21
+ "repeat",
22
+ "strategy",
23
+ "timing"
24
+ ],
25
+ "homepage": "https://github.com/mmustra/rxjs-poll#readme",
26
+ "author": {
27
+ "name": "Marin Muštra",
28
+ "url": "https://www.linkedin.com/in/marin-mustra"
29
+ },
30
+ "license": "MIT",
31
+ "repository": {
32
+ "type": "git",
33
+ "url": "https://github.com/mmustra/rxjs-poll.git"
34
+ },
35
+ "bugs": {
36
+ "url": "https://github.com/mmustra/rxjs-poll/issues"
37
+ },
38
+ "engines": {
39
+ "node": ">=20"
40
+ },
41
+ "scripts": {
42
+ "release": "release-it",
43
+ "build": "npm run util:clean:dist && npm run build:rollup && npm run build:types",
44
+ "build:rollup": "rollup -c configs/rollup/rollup.config.mjs",
45
+ "build:types": "tsc -p ./configs/ts/tsconfig.types.json",
46
+ "prepare": "is-ci || husky",
47
+ "test": "jest --verbose",
48
+ "test:coverage": "npm run util:clean:coverage && npm run test -- --collect-coverage",
49
+ "test:modules": "npm run test:modules:esm && npm run test:modules:cjs && npm run test:modules:umd",
50
+ "test:modules:esm": "node tests/module-formats-esm.mjs",
51
+ "test:modules:cjs": "node tests/module-formats-cjs.cjs",
52
+ "test:modules:umd": "node tests/module-formats-umd.cjs",
53
+ "test:all": "npm run test && npm run test:modules",
54
+ "lint": "eslint ./src ./tests",
55
+ "lint:fix": "npm run lint -- --fix",
56
+ "util:clean:dist": "rimraf ./dist --no-preserve-root --no-interactive",
57
+ "util:clean:coverage": "rimraf ./coverage --no-preserve-root --no-interactive",
58
+ "util:commitlint": "commitlint",
59
+ "util:lint-staged": "lint-staged"
60
+ },
61
+ "main": "./dist/cjs/index.js",
62
+ "module": "./dist/esm/index.js",
63
+ "types": "./dist/types/index.d.ts",
64
+ "sideEffects": false,
65
+ "files": [
66
+ "dist/**/*"
67
+ ],
68
+ "exports": {
69
+ ".": {
70
+ "types": "./dist/types/index.d.ts",
71
+ "node": {
72
+ "require": "./dist/cjs/index.js",
73
+ "import": "./dist/esm/index.js",
74
+ "default": "./dist/cjs/index.js"
75
+ },
76
+ "browser": {
77
+ "import": "./dist/esm/index.js",
78
+ "require": "./dist/umd/index.min.js",
79
+ "default": "./dist/umd/index.min.js"
80
+ },
81
+ "require": "./dist/cjs/index.js",
82
+ "import": "./dist/esm/index.js",
83
+ "default": "./dist/esm/index.js"
84
+ }
85
+ },
86
+ "lint-staged": {
87
+ "*.{js,ts}": [
88
+ "npm run lint:fix"
89
+ ]
90
+ },
91
+ "peerDependencies": {
92
+ "rxjs": ">=7 || ^8.0.0-alpha.0 || ^8.0.0-beta.0 || ^8.0.0-rc.0"
93
+ },
94
+ "devDependencies": {
95
+ "@commitlint/cli": "^20.1.0",
96
+ "@commitlint/config-conventional": "^20.0.0",
97
+ "@commitlint/types": "^20.0.0",
98
+ "@release-it/conventional-changelog": "^10.0.1",
99
+ "@rollup/plugin-terser": "^0.4.4",
100
+ "@rollup/plugin-typescript": "^12.3.0",
101
+ "@types/fs-extra": "^11.0.4",
102
+ "@types/jest": "^30.0.0",
103
+ "@types/node": "^24.0.1",
104
+ "@typescript-eslint/eslint-plugin": "^8.34.0",
105
+ "@typescript-eslint/parser": "^8.34.0",
106
+ "cross-env": "^10.0.0",
107
+ "eslint": "^9.29.0",
108
+ "eslint-config-prettier": "^10.1.5",
109
+ "eslint-plugin-import": "^2.31.0",
110
+ "eslint-plugin-jest-formatting": "^3.1.0",
111
+ "eslint-plugin-prettier": "^5.4.1",
112
+ "eslint-plugin-simple-import-sort": "^12.1.1",
113
+ "eslint-plugin-unused-imports": "^4.1.4",
114
+ "fs-extra": "^11.3.0",
115
+ "husky": "^9.1.7",
116
+ "is-ci": "^4.1.0",
117
+ "jest": "^30.0.0",
118
+ "jest-environment-jsdom": "^30.0.0",
119
+ "jest-environment-node": "^30.0.0",
120
+ "lint-staged": "^16.1.1",
121
+ "release-it": "^19.0.3",
122
+ "rimraf": "^6.0.1",
123
+ "rollup": "^4.29.0",
124
+ "rxjs": "^7.8.2",
125
+ "ts-jest": "^29.4.0",
126
+ "ts-node": "^10.9.2",
127
+ "typescript": "^5.8.3"
128
+ }
129
+ }
@@ -1,52 +0,0 @@
1
- "use strict";
2
- var __assign = (this && this.__assign) || function () {
3
- __assign = Object.assign || function(t) {
4
- for (var s, i = 1, n = arguments.length; i < n; i++) {
5
- s = arguments[i];
6
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
- t[p] = s[p];
8
- }
9
- return t;
10
- };
11
- return __assign.apply(this, arguments);
12
- };
13
- Object.defineProperty(exports, "__esModule", { value: true });
14
- exports.extendConfig = extendConfig;
15
- var config_const_1 = require("../constants/config.const");
16
- var strategies_1 = require("./strategies");
17
- var utils_1 = require("./utils");
18
- function extendConfig(config) {
19
- var normalizedConfig = normalizeConfig(config);
20
- return __assign(__assign({}, normalizedConfig), { getDelayTime: getTimeProducer('delay', normalizedConfig), getRetryTime: getTimeProducer('retry', normalizedConfig) });
21
- }
22
- function getTimeProducer(mode, config) {
23
- var defaultTime = config_const_1.controlConfig[mode].time;
24
- var timeProducer = (0, strategies_1.getStrategyTimeProducer)(mode, config);
25
- return function (state) {
26
- var producedTime = timeProducer(__assign({}, state));
27
- var normalizedTime = (0, utils_1.normalizeNumber)(producedTime, defaultTime);
28
- return (0, utils_1.pickNumber)(normalizedTime);
29
- };
30
- }
31
- function normalizeConfig(config) {
32
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o;
33
- return {
34
- type: (_a = config === null || config === void 0 ? void 0 : config.type) !== null && _a !== void 0 ? _a : config_const_1.controlConfig.type,
35
- delay: {
36
- strategy: (_c = (_b = config === null || config === void 0 ? void 0 : config.delay) === null || _b === void 0 ? void 0 : _b.strategy) !== null && _c !== void 0 ? _c : config_const_1.controlConfig.delay.strategy,
37
- time: (0, utils_1.isFunction)((_d = config === null || config === void 0 ? void 0 : config.delay) === null || _d === void 0 ? void 0 : _d.time)
38
- ? config.delay.time
39
- : (0, utils_1.normalizeNumber)((_e = config === null || config === void 0 ? void 0 : config.delay) === null || _e === void 0 ? void 0 : _e.time, config_const_1.controlConfig.delay.time),
40
- },
41
- retry: {
42
- strategy: (_g = (_f = config === null || config === void 0 ? void 0 : config.retry) === null || _f === void 0 ? void 0 : _f.strategy) !== null && _g !== void 0 ? _g : config_const_1.controlConfig.retry.strategy,
43
- time: (0, utils_1.isFunction)((_h = config === null || config === void 0 ? void 0 : config.retry) === null || _h === void 0 ? void 0 : _h.time)
44
- ? config.retry.time
45
- : (0, utils_1.normalizeNumber)((_j = config === null || config === void 0 ? void 0 : config.retry) === null || _j === void 0 ? void 0 : _j.time, config_const_1.controlConfig.retry.time),
46
- limit: (0, utils_1.normalizeNumber)((_k = config === null || config === void 0 ? void 0 : config.retry) === null || _k === void 0 ? void 0 : _k.limit, config_const_1.controlConfig.retry.limit, false),
47
- 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 : config_const_1.controlConfig.retry.consecutiveOnly,
48
- },
49
- pauseWhenHidden: (_o = config === null || config === void 0 ? void 0 : config.pauseWhenHidden) !== null && _o !== void 0 ? _o : config_const_1.controlConfig.pauseWhenHidden,
50
- };
51
- }
52
- //# sourceMappingURL=config.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/common/config.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAOA,oCAQC;AAfD,0DAA0D;AAI1D,2CAAuD;AACvD,iCAAkE;AAElE,SAAgB,YAAY,CAAI,MAA4B;IAC1D,IAAM,gBAAgB,GAA4B,eAAe,CAAC,MAAM,CAAC,CAAC;IAE1E,6BACK,gBAAgB,KACnB,YAAY,EAAE,eAAe,CAAC,OAAO,EAAE,gBAAgB,CAAC,EACxD,YAAY,EAAE,eAAe,CAAC,OAAO,EAAE,gBAAgB,CAAC,IACxD;AACJ,CAAC;AAED,SAAS,eAAe,CAAI,IAAc,EAAE,MAA+B;IACzE,IAAM,WAAW,GAAG,4BAAa,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC;IAC7C,IAAM,YAAY,GAAG,IAAA,oCAAuB,EAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAE3D,OAAO,UAAC,KAAK;QACX,IAAM,YAAY,GAAG,YAAY,cAAM,KAAK,EAAG,CAAC;QAChD,IAAM,cAAc,GAAG,IAAA,uBAAe,EAAC,YAAY,EAAE,WAAW,CAAC,CAAC;QAElE,OAAO,IAAA,kBAAU,EAAC,cAAc,CAAC,CAAC;IACpC,CAAC,CAAC;AACJ,CAAC;AAED,SAAS,eAAe,CAAI,MAA2B;;IACrD,OAAO;QACL,IAAI,EAAE,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,IAAI,mCAAI,4BAAa,CAAC,IAAI;QACxC,KAAK,EAAE;YACL,QAAQ,EAAE,MAAA,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,KAAK,0CAAE,QAAQ,mCAAI,4BAAa,CAAC,KAAK,CAAC,QAAQ;YACjE,IAAI,EAAE,IAAA,kBAAU,EAAC,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,KAAK,0CAAE,IAAI,CAAC;gBACnC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI;gBACnB,CAAC,CAAC,IAAA,uBAAe,EAAC,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,KAAK,0CAAE,IAAI,EAAE,4BAAa,CAAC,KAAK,CAAC,IAAI,CAAC;SACnE;QACD,KAAK,EAAE;YACL,QAAQ,EAAE,MAAA,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,KAAK,0CAAE,QAAQ,mCAAI,4BAAa,CAAC,KAAK,CAAC,QAAQ;YACjE,IAAI,EAAE,IAAA,kBAAU,EAAC,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,KAAK,0CAAE,IAAI,CAAC;gBACnC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI;gBACnB,CAAC,CAAC,IAAA,uBAAe,EAAC,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,KAAK,0CAAE,IAAI,EAAE,4BAAa,CAAC,KAAK,CAAC,IAAI,CAAC;YAClE,KAAK,EAAE,IAAA,uBAAe,EAAC,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,KAAK,0CAAE,KAAK,EAAE,4BAAa,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC;YAC9E,eAAe,EAAE,MAAA,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,KAAK,0CAAE,eAAe,mCAAI,4BAAa,CAAC,KAAK,CAAC,eAAe;SACvF;QACD,eAAe,EAAE,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,eAAe,mCAAI,4BAAa,CAAC,eAAe;KAC1E,CAAC;AACJ,CAAC"}
@@ -1,25 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.visibilityState$ = void 0;
4
- exports.getPollerFactory$ = getPollerFactory$;
5
- var rxjs_1 = require("rxjs");
6
- var utils_1 = require("./utils");
7
- exports.visibilityState$ = pageVisibility$().pipe((0, rxjs_1.shareReplay)({ bufferSize: 1, refCount: true }));
8
- function getPollerFactory$(type, source$) {
9
- var lastValue;
10
- var completed$ = source$.pipe((0, rxjs_1.takeLast)(1), (0, rxjs_1.tap)(function (value) {
11
- lastValue = value;
12
- }));
13
- return type === 'repeat'
14
- ? function (getNextTime) { return repeatWith$(completed$, function () { return getNextTime(lastValue); }); }
15
- : function (getNextTime) { return repeatWith$((0, rxjs_1.of)(null), function () { return getNextTime(lastValue); }).pipe((0, rxjs_1.switchMap)(function () { return completed$; })); };
16
- }
17
- function pageVisibility$() {
18
- return (0, utils_1.isBrowser)() ? (0, rxjs_1.fromEvent)(document, 'visibilitychange').pipe((0, rxjs_1.startWith)(null), (0, rxjs_1.map)(utils_1.isDocumentVisible)) : (0, rxjs_1.of)(true);
19
- }
20
- function repeatWith$(source$, getTime) {
21
- return source$.pipe((0, rxjs_1.repeat)({
22
- delay: function () { return (0, rxjs_1.timer)(getTime()); },
23
- }));
24
- }
25
- //# sourceMappingURL=observables.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"observables.js","sourceRoot":"","sources":["../../../src/common/observables.ts"],"names":[],"mappings":";;;AAQA,8CAYC;AApBD,6BAAuH;AAIvH,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,iBAAiB,CAAI,IAAc,EAAE,OAAsB;IACzE,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,UAAC,WAAW,IAAK,OAAA,WAAW,CAAC,UAAU,EAAE,cAAM,OAAA,WAAW,CAAC,SAAS,CAAC,EAAtB,CAAsB,CAAC,EAArD,CAAqD;QACxE,CAAC,CAAC,UAAC,WAAW,IAAK,OAAA,WAAW,CAAC,IAAA,SAAE,EAAC,IAAI,CAAC,EAAE,cAAM,OAAA,WAAW,CAAC,SAAS,CAAC,EAAtB,CAAsB,CAAC,CAAC,IAAI,CAAC,IAAA,gBAAS,EAAC,cAAM,OAAA,UAAU,EAAV,CAAU,CAAC,CAAC,EAArF,CAAqF,CAAC;AAC7G,CAAC;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,WAAW,CAAI,OAAsB,EAAE,OAAqB;IACnE,OAAO,OAAO,CAAC,IAAI,CACjB,IAAA,aAAM,EAAC;QACL,KAAK,EAAE,cAAM,OAAA,IAAA,YAAK,EAAC,OAAO,EAAE,CAAC,EAAhB,CAAgB;KAC9B,CAAC,CACH,CAAC;AACJ,CAAC"}
@@ -1,12 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.retryPoll = retryPoll;
4
- var rxjs_1 = require("rxjs");
5
- function retryPoll(isLimit, getTime, resetError) {
6
- return function (source) {
7
- return source.pipe((0, rxjs_1.retry)({
8
- delay: function (error) { return (isLimit() ? (0, rxjs_1.throwError)(function () { return error; }) : (0, rxjs_1.timer)(getTime(error))); },
9
- }), (0, rxjs_1.tap)(function () { return resetError(); }));
10
- };
11
- }
12
- //# sourceMappingURL=operators.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"operators.js","sourceRoot":"","sources":["../../../src/common/operators.ts"],"names":[],"mappings":";;AAEA,8BAYC;AAdD,6BAA+E;AAE/E,SAAgB,SAAS,CACvB,OAAsB,EACtB,OAA+B,EAC/B,UAAsB;IAEtB,OAAO,UAAC,MAAM;QACZ,OAAA,MAAM,CAAC,IAAI,CACT,IAAA,YAAK,EAAC;YACJ,KAAK,EAAE,UAAC,KAAK,IAAK,OAAA,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,IAAA,iBAAU,EAAC,cAAM,OAAA,KAAK,EAAL,CAAK,CAAC,CAAC,CAAC,CAAC,IAAA,YAAK,EAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAA7D,CAA6D;SAChF,CAAC,EACF,IAAA,UAAG,EAAC,cAAM,OAAA,UAAU,EAAE,EAAZ,CAAY,CAAC,CACxB;IALD,CAKC,CAAC;AACN,CAAC"}
@@ -1,41 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getStrategyTimeProducer = getStrategyTimeProducer;
4
- var utils_1 = require("./utils");
5
- function getStrategyTimeProducer(mode, config) {
6
- var _a = config[mode], strategy = _a.strategy, time = _a.time;
7
- var isDelayMode = mode === 'delay';
8
- var isConsecutive = config.retry.consecutiveOnly;
9
- var timeProducer;
10
- var attemptKey;
11
- if (isDelayMode) {
12
- attemptKey = 'pollCount';
13
- }
14
- else if (isConsecutive) {
15
- attemptKey = 'consecutiveRetryCount';
16
- }
17
- else {
18
- attemptKey = 'retryCount';
19
- }
20
- switch (strategy) {
21
- case 'constant':
22
- timeProducer = function () { return time; };
23
- break;
24
- case 'linear':
25
- timeProducer = function (state) { return state[attemptKey] * time; };
26
- break;
27
- case 'exponential':
28
- timeProducer = function (state) { return Math.pow(2, state[attemptKey] - 1) * time; };
29
- break;
30
- case 'random':
31
- timeProducer = function () { return (0, utils_1.randomNumber)(time[0], time[1]); };
32
- break;
33
- case 'dynamic':
34
- timeProducer = function (state) { return time(state); };
35
- break;
36
- default:
37
- throw new Error('rxjs-poll: Unknown strategy!');
38
- }
39
- return timeProducer;
40
- }
41
- //# sourceMappingURL=strategies.js.map