@cardano-sdk/util-rxjs 0.8.0 → 0.9.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.
@@ -5,6 +5,6 @@ export * from './passthrough.js';
5
5
  export * from './finalizeWithLatest.js';
6
6
  export * from './concatAndCombineLatest.js';
7
7
  export * from './shareRetryBackoff.js';
8
- export * from './coldObservableProvider.js';
8
+ export * from './poll.js';
9
9
  export * from './types.js';
10
10
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,0BAA0B,CAAC;AACzC,cAAc,WAAW,CAAC;AAC1B,cAAc,eAAe,CAAC;AAC9B,cAAc,sBAAsB,CAAC;AACrC,cAAc,0BAA0B,CAAC;AACzC,cAAc,qBAAqB,CAAC;AACpC,cAAc,0BAA0B,CAAC;AACzC,cAAc,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,0BAA0B,CAAC;AACzC,cAAc,WAAW,CAAC;AAC1B,cAAc,eAAe,CAAC;AAC9B,cAAc,sBAAsB,CAAC;AACrC,cAAc,0BAA0B,CAAC;AACzC,cAAc,qBAAqB,CAAC;AACpC,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,CAAC"}
package/dist/esm/index.js CHANGED
@@ -5,6 +5,6 @@ export * from './passthrough.js';
5
5
  export * from './finalizeWithLatest.js';
6
6
  export * from './concatAndCombineLatest.js';
7
7
  export * from './shareRetryBackoff.js';
8
- export * from './coldObservableProvider.js';
8
+ export * from './poll.js';
9
9
  export * from './types.js';
10
10
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,0BAA0B,CAAC;AACzC,cAAc,WAAW,CAAC;AAC1B,cAAc,eAAe,CAAC;AAC9B,cAAc,sBAAsB,CAAC;AACrC,cAAc,0BAA0B,CAAC;AACzC,cAAc,qBAAqB,CAAC;AACpC,cAAc,0BAA0B,CAAC;AACzC,cAAc,SAAS,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,0BAA0B,CAAC;AACzC,cAAc,WAAW,CAAC;AAC1B,cAAc,eAAe,CAAC;AAC9B,cAAc,sBAAsB,CAAC;AACrC,cAAc,0BAA0B,CAAC;AACzC,cAAc,qBAAqB,CAAC;AACpC,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,CAAC"}
@@ -0,0 +1,15 @@
1
+ import { Logger } from 'ts-log';
2
+ import { Observable, switchMap } from 'rxjs';
3
+ import { RetryBackoffConfig } from 'backoff-rxjs';
4
+ export interface PollProps<T> {
5
+ sample: () => Promise<T>;
6
+ retryBackoffConfig: RetryBackoffConfig;
7
+ trigger$?: Observable<unknown>;
8
+ equals?: (t1: T, t2: T) => boolean;
9
+ combinator?: typeof switchMap;
10
+ cancel$?: Observable<unknown>;
11
+ pollUntil?: (v: T) => boolean;
12
+ logger: Logger;
13
+ }
14
+ export declare const poll: <T>({ sample, retryBackoffConfig, trigger$, equals, combinator, cancel$, pollUntil, logger }: PollProps<T>) => Observable<T>;
15
+ //# sourceMappingURL=poll.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"poll.d.ts","sourceRoot":"","sources":["../../src/poll.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAEL,UAAU,EAOV,SAAS,EAGV,MAAM,MAAM,CAAC;AACd,OAAO,EAAE,kBAAkB,EAAgB,MAAM,cAAc,CAAC;AAKhE,MAAM,WAAW,SAAS,CAAC,CAAC;IAC1B,MAAM,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC;IACzB,kBAAkB,EAAE,kBAAkB,CAAC;IACvC,QAAQ,CAAC,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC;IAC/B,MAAM,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,KAAK,OAAO,CAAC;IACnC,UAAU,CAAC,EAAE,OAAO,SAAS,CAAC;IAC9B,OAAO,CAAC,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC;IAC9B,SAAS,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,OAAO,CAAC;IAC9B,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,eAAO,MAAM,IAAI,8HAgDd,CAAC"}
@@ -0,0 +1,24 @@
1
+ import { NEVER, concat, defer, distinctUntilChanged, from, mergeMap, of, switchMap, takeUntil, throwError } from 'rxjs';
2
+ import { retryBackoff } from 'backoff-rxjs';
3
+ import { strictEquals } from '@cardano-sdk/util';
4
+ const POLL_UNTIL_RETRY = Symbol('POLL_UNTIL_RETRY');
5
+ export const poll = ({ sample, retryBackoffConfig, trigger$ = of(true), equals = strictEquals, combinator = switchMap, cancel$ = NEVER, pollUntil = () => true, logger }) => trigger$.pipe(combinator(() => defer(() => from(sample()).pipe(mergeMap((v) => pollUntil(v)
6
+ ? of(v)
7
+ :
8
+ concat(of(v), throwError(() => POLL_UNTIL_RETRY))))).pipe(retryBackoff({
9
+ ...retryBackoffConfig,
10
+ shouldRetry: (error) => {
11
+ if (error === POLL_UNTIL_RETRY) {
12
+ logger.warn('"pollUntil" condition not met, will retry');
13
+ return true;
14
+ }
15
+ logger.error(error);
16
+ if (retryBackoffConfig.shouldRetry) {
17
+ const shouldRetry = retryBackoffConfig.shouldRetry(error);
18
+ logger.debug(`Should retry: ${shouldRetry}`);
19
+ return shouldRetry;
20
+ }
21
+ return true;
22
+ }
23
+ }))), distinctUntilChanged(equals), takeUntil(cancel$));
24
+ //# sourceMappingURL=poll.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"poll.js","sourceRoot":"","sources":["../../src/poll.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,EAEL,MAAM,EACN,KAAK,EACL,oBAAoB,EACpB,IAAI,EACJ,QAAQ,EACR,EAAE,EACF,SAAS,EACT,SAAS,EACT,UAAU,EACX,MAAM,MAAM,CAAC;AACd,OAAO,EAAsB,YAAY,EAAE,MAAM,cAAc,CAAC;AAChE,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEjD,MAAM,gBAAgB,GAAG,MAAM,CAAC,kBAAkB,CAAC,CAAC;AAapD,MAAM,CAAC,MAAM,IAAI,GAAG,CAAI,EACtB,MAAM,EACN,kBAAkB,EAClB,QAAQ,GAAG,EAAE,CAAC,IAAI,CAAC,EACnB,MAAM,GAAG,YAAY,EACrB,UAAU,GAAG,SAAS,EACtB,OAAO,GAAG,KAAK,EACf,SAAS,GAAG,GAAG,EAAE,CAAC,IAAI,EACtB,MAAM,EACO,EAAE,EAAE,CACjB,QAAQ,CAAC,IAAI,CACX,UAAU,CAAC,GAAG,EAAE,CACd,KAAK,CAAC,GAAG,EAAE,CACT,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CACjB,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,CACb,SAAS,CAAC,CAAC,CAAC;IACV,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACP,CAAC;QACC,MAAM,CACJ,EAAE,CAAC,CAAC,CAAC,EACL,UAAU,CAAC,GAAG,EAAE,CAAC,gBAAgB,CAAC,CACnC,CACN,CACF,CACF,CAAC,IAAI,CACJ,YAAY,CAAC;IACX,GAAG,kBAAkB;IACrB,WAAW,EAAE,CAAC,KAAK,EAAE,EAAE;QACrB,IAAI,KAAK,KAAK,gBAAgB,EAAE;YAC9B,MAAM,CAAC,IAAI,CAAC,2CAA2C,CAAC,CAAC;YACzD,OAAO,IAAI,CAAC;SACb;QAED,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAEpB,IAAI,kBAAkB,CAAC,WAAW,EAAE;YAClC,MAAM,WAAW,GAAG,kBAAkB,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;YAC1D,MAAM,CAAC,KAAK,CAAC,iBAAiB,WAAW,EAAE,CAAC,CAAC;YAC7C,OAAO,WAAW,CAAC;SACpB;QAED,OAAO,IAAI,CAAC;IACd,CAAC;CACF,CAAC,CACH,CACF,EACD,oBAAoB,CAAC,MAAM,CAAC,EAC5B,SAAS,CAAC,OAAO,CAAC,CACnB,CAAC"}