From aec21425df928a5e7acb667c260ffa20b09cd6fb Mon Sep 17 00:00:00 2001 From: Josep M Sobrepere Date: Tue, 23 Jun 2020 00:10:59 +0200 Subject: [PATCH] Improve distinctShareReplay --- src/index.tsx | 19 ++++++++++++++----- test/operators/distinct-share-replay.test.ts | 3 ++- test/operators/react-enhancer.test.ts | 3 ++- test/useObservable.test.tsx | 3 ++- 4 files changed, 20 insertions(+), 8 deletions(-) diff --git a/src/index.tsx b/src/index.tsx index c80b52f..ea07a3b 100644 --- a/src/index.tsx +++ b/src/index.tsx @@ -1,9 +1,18 @@ +import { Observable } from "rxjs" +import { distinctShareReplay as internalDistinctShareReplay } from "./operators/distinct-share-replay" + +// support for React Suspense export { SUSPENSE } from "./SUSPENSE" -export { BehaviorObservable } from "./BehaviorObservable" -export { connectObservable } from "./connectObservable" -export { connectFactoryObservable } from "./connectFactoryObservable" -export { distinctShareReplay } from "./operators/distinct-share-replay" -export { createInput } from "./createInput" export { suspend } from "./operators/suspend" export { suspended } from "./operators/suspended" export { switchMapSuspended } from "./operators/switchMapSuspended" + +// core +export { connectObservable } from "./connectObservable" +export { connectFactoryObservable } from "./connectFactoryObservable" +export const distinctShareReplay = internalDistinctShareReplay as ( + compareFn?: (a: T, b: T) => boolean, +) => (source$: Observable) => Observable + +// utils +export { createInput } from "./createInput" diff --git a/test/operators/distinct-share-replay.test.ts b/test/operators/distinct-share-replay.test.ts index b0c3838..4de3735 100644 --- a/test/operators/distinct-share-replay.test.ts +++ b/test/operators/distinct-share-replay.test.ts @@ -1,4 +1,5 @@ -import { BehaviorObservable, distinctShareReplay, SUSPENSE } from "../../src" +import { distinctShareReplay, SUSPENSE } from "../../src" +import { BehaviorObservable } from "../../src/BehaviorObservable" import { EMPTY_VALUE } from "../../src/operators/distinct-share-replay" import { cold } from "jest-marbles" import { TestScheduler } from "rxjs/testing" diff --git a/test/operators/react-enhancer.test.ts b/test/operators/react-enhancer.test.ts index 2f72072..a4098bf 100644 --- a/test/operators/react-enhancer.test.ts +++ b/test/operators/react-enhancer.test.ts @@ -1,5 +1,6 @@ import reactEnhancer from "../../src/operators/react-enhancer" -import { BehaviorObservable, distinctShareReplay, SUSPENSE } from "../../src" +import { distinctShareReplay, SUSPENSE } from "../../src" +import { BehaviorObservable } from "../../src/BehaviorObservable" import { TestScheduler } from "rxjs/testing" import { Subject } from "rxjs" diff --git a/test/useObservable.test.tsx b/test/useObservable.test.tsx index 4fc6f53..77282ab 100644 --- a/test/useObservable.test.tsx +++ b/test/useObservable.test.tsx @@ -4,7 +4,8 @@ import { defer, of, Subject, NEVER, concat } from "rxjs" import { renderHook, act } from "@testing-library/react-hooks" import { useObservable } from "../src/useObservable" import reactEnhancer from "../src/operators/react-enhancer" -import { SUSPENSE, BehaviorObservable, distinctShareReplay } from "../src" +import { SUSPENSE, distinctShareReplay } from "../src" +import { BehaviorObservable } from "../src/BehaviorObservable" const wait = (ms: number) => new Promise(res => setTimeout(res, ms))