Skip to content

Commit 74b8530

Browse files
Merge pull request #88 from basics/beta
Beta
2 parents b91d0ee + c0417c7 commit 74b8530

File tree

8 files changed

+26
-10
lines changed

8 files changed

+26
-10
lines changed

packages/operators/CHANGELOG.md

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,19 @@
11
# Project Changelog
22

3+
# [@rxjs-collection/operators-v1.0.8-beta.2](https://github.com/basics/rxjs-collection/compare/@rxjs-collection/operators-v1.0.8-beta.1...@rxjs-collection/operators-v1.0.8-beta.2) (2024-11-24)
4+
5+
6+
### Bug Fixes
7+
8+
* **operators:** retry cleanup ([c46cbbe](https://github.com/basics/rxjs-collection/commit/c46cbbe1f06e9ab16ea551789fd3e8a3e85c7d1b))
9+
10+
# [@rxjs-collection/operators-v1.0.8-beta.1](https://github.com/basics/rxjs-collection/compare/@rxjs-collection/operators-v1.0.7...@rxjs-collection/operators-v1.0.8-beta.1) (2024-11-24)
11+
12+
13+
### Bug Fixes
14+
15+
* **operators:** optimized option declaration and added cache to request ([e1a0d3e](https://github.com/basics/rxjs-collection/commit/e1a0d3ed84e3d2c44cbdc939dfac48b330138b23))
16+
317
# [@rxjs-collection/operators-v1.0.7](https://github.com/basics/rxjs-collection/compare/@rxjs-collection/operators-v1.0.6...@rxjs-collection/operators-v1.0.7) (2024-11-24)
418

519

packages/operators/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@rxjs-collection/operators",
3-
"version": "1.0.7",
3+
"version": "1.0.8-beta.2",
44
"description": "rxjs operators",
55
"license": "MIT",
66
"contributors": [

packages/operators/src/request/cache.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { ReplaySubject, share, timer } from 'rxjs';
22

3-
export const cache = ttl => {
3+
export const cache = ({ ttl = 0 } = {}) => {
44
return source =>
55
source.pipe(
66
share({

packages/operators/src/request/cache.test.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ describe('cache', () => {
2222
testScheduler.run(({ cold, expectObservable }) => {
2323
const stream = cold('a', { a: () => triggerVal.shift() }).pipe(
2424
map(fn => fn()),
25-
cache(2)
25+
cache({ ttl: 2 })
2626
);
2727

2828
const unsubA = '-^!';

packages/operators/src/request/request.js

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
11
import { concatMap, from, throwError } from 'rxjs';
22

3+
import { cache } from './cache';
34
import { resolveBlob, resolveJSON, resolveText } from './response';
4-
import { networkRetry } from './retry';
5+
import { retryWhenError } from './retry';
56

6-
export const request = options => {
7+
export const request = ({ retry, cache: cacheOptions } = {}) => {
78
return source =>
89
source.pipe(
910
concatMap(req => {
@@ -13,7 +14,8 @@ export const request = options => {
1314
return throwError(() => new Error('Failed to fetch: resource not valid'));
1415
}
1516
}),
16-
networkRetry(options)
17+
retryWhenError(retry),
18+
cache(cacheOptions)
1719
);
1820
};
1921

packages/operators/src/request/request.test.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ describe('request', () => {
6767

6868
testScheduler.run(({ cold, expectObservable }) => {
6969
const stream = cold('a|', { a: () => triggerVal.shift()() }).pipe(
70-
request({ timeout: () => 5 })
70+
request({ retry: { timeout: () => 5 } })
7171
);
7272
expectObservable(stream).toBe('----------c|', expectedVal);
7373
});

packages/operators/src/request/retry.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ import { connectionObservable } from '../../../observables/src/dom/window.js';
1616

1717
const defaultTimeout = count => Math.min(60000, Math.pow(count, 2) * 1000);
1818

19-
export const networkRetry = ({ timeout = defaultTimeout, count } = {}) => {
19+
export const retryWhenError = ({ timeout = defaultTimeout, count } = {}) => {
2020
let counter = 0;
2121

2222
return source => {

packages/operators/src/request/retry.test.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import { TestScheduler } from 'rxjs/testing';
33
import { beforeEach, describe, expect, test } from 'vitest';
44

55
import { log } from '../log';
6-
import { networkRetry } from './retry';
6+
import { retryWhenError } from './retry';
77

88
describe('request retry', () => {
99
let testScheduler;
@@ -26,7 +26,7 @@ describe('request retry', () => {
2626
// if you define a delay, you have to add the delay to the subscribe multiple times (num retries)
2727
const stream = cold('a|', { a: () => triggerVal.shift() }).pipe(
2828
map(fn => fn()),
29-
networkRetry({ timeout: () => 5 }),
29+
retryWhenError({ timeout: () => 5 }),
3030
log('marble:result')
3131
);
3232

0 commit comments

Comments
 (0)