diff --git a/modules/operators/spec/tap-response.spec.ts b/modules/operators/spec/tap-response.spec.ts index 0aee26ad46..90cb6989e9 100644 --- a/modules/operators/spec/tap-response.spec.ts +++ b/modules/operators/spec/tap-response.spec.ts @@ -7,7 +7,9 @@ describe('tapResponse', () => { it('should invoke next callback on next', () => { const nextCallback = vi.fn<(value: [number]) => void>(); - of(1, 2, 3).pipe(tapResponse(nextCallback, noop)).subscribe(); + of(1, 2, 3) + .pipe(tapResponse({ next: nextCallback, error: noop })) + .subscribe(); expect(nextCallback.mock.calls).toEqual([[1], [2], [3]]); }); @@ -17,7 +19,7 @@ describe('tapResponse', () => { const error = { message: 'error' }; throwError(() => error) - .pipe(tapResponse(noop, errorCallback)) + .pipe(tapResponse({ next: noop, error: errorCallback })) .subscribe(); expect(errorCallback).toHaveBeenCalledWith(error); @@ -31,7 +33,9 @@ describe('tapResponse', () => { throw error; } - of(1).pipe(tapResponse(producesError, errorCallback)).subscribe(); + of(1) + .pipe(tapResponse({ next: producesError, error: errorCallback })) + .subscribe(); expect(errorCallback).toHaveBeenCalledWith(error); }); @@ -39,7 +43,9 @@ describe('tapResponse', () => { it('should invoke complete callback on complete', () => { const completeCallback = vi.fn<() => void>(); - EMPTY.pipe(tapResponse(noop, noop, completeCallback)).subscribe(); + EMPTY.pipe( + tapResponse({ next: noop, error: noop, complete: completeCallback }) + ).subscribe(); expect(completeCallback).toHaveBeenCalledWith(); }); @@ -105,7 +111,7 @@ describe('tapResponse', () => { .pipe( concatMap(() => throwError(() => 'error').pipe( - tapResponse(noop, noop), + tapResponse({ next: noop, error: noop }), finalize(innerCompleteCallback) ) ), diff --git a/modules/operators/spec/types/tap-response.types.spec.ts b/modules/operators/spec/types/tap-response.types.spec.ts index 5c015a3e95..ffa00760ab 100644 --- a/modules/operators/spec/types/tap-response.types.spec.ts +++ b/modules/operators/spec/types/tap-response.types.spec.ts @@ -13,9 +13,12 @@ describe('tapResponse types', () => { it('should infer next type', () => { expectSnippet(` of(1).pipe( - tapResponse((next) => { - const num = next; - }, noop) + tapResponse({ + next: (next) => { + const num = next; + }, + error: noop, + }) ); `).toInfer('num', 'number'); }); @@ -23,8 +26,11 @@ describe('tapResponse types', () => { it('should accept error type', () => { expectSnippet(` of(true).pipe( - tapResponse(noop, (error: { message: string }) => { - const err = error; + tapResponse({ + next: noop, + error: (error: { message: string }) => { + const err = error; + }, }) ); `).toInfer('err', '{ message: string; }'); @@ -33,8 +39,11 @@ describe('tapResponse types', () => { it('should use unknown as default error type', () => { expectSnippet(` of(true).pipe( - tapResponse(noop, (error) => { - const err = error; + tapResponse({ + next: noop, + error: (error) => { + const err = error; + }, }) ); `).toInfer('err', 'unknown'); diff --git a/modules/operators/src/tap-response.ts b/modules/operators/src/tap-response.ts index 947d0e1b04..4b311edfbf 100644 --- a/modules/operators/src/tap-response.ts +++ b/modules/operators/src/tap-response.ts @@ -8,18 +8,6 @@ type TapResponseObserver = { finalize?: () => void; }; -export function tapResponse( - observer: TapResponseObserver -): (source$: Observable) => Observable; -/** - * @deprecated Instead of passing a sequence of callbacks, use an observer - * object. For more info see: https://github.com/ngrx/platform/issues/4840 - */ -export function tapResponse( - next: (value: T) => void, - error: (error: E) => void, - complete?: () => void -): (source$: Observable) => Observable; /** * Handles the response in ComponentStore effects in a safe way, without * additional boilerplate. It enforces that the error case is handled and @@ -46,21 +34,9 @@ export function tapResponse( * ); * ``` */ -export function tapResponse( - observerOrNext: TapResponseObserver | ((value: T) => void), - error?: (error: E) => void, - complete?: () => void +export function tapResponse( + observer: TapResponseObserver ): (source$: Observable) => Observable { - const observer: TapResponseObserver = - typeof observerOrNext === 'function' - ? { - next: observerOrNext, - // eslint-disable-next-line @typescript-eslint/no-non-null-assertion - error: error!, - complete, - } - : observerOrNext; - return (source) => source.pipe( tap({ next: observer.next, complete: observer.complete }),