diff --git a/.changeset/rare-mangos-act.md b/.changeset/rare-mangos-act.md new file mode 100644 index 000000000..369ad73cf --- /dev/null +++ b/.changeset/rare-mangos-act.md @@ -0,0 +1,10 @@ +--- +'apollo-angular': patch +--- + +Rename `onlyComplete()` into `onlyCompleteData()` + +Because it communicates better that it is about the data, and not the +stream being completed. + +`onlyComplete()` will be dropped in the next major version. diff --git a/packages/apollo-angular/src/index.ts b/packages/apollo-angular/src/index.ts index 2cf00e6f6..2108ba5c6 100644 --- a/packages/apollo-angular/src/index.ts +++ b/packages/apollo-angular/src/index.ts @@ -8,4 +8,4 @@ export { Subscription } from './subscription'; export { APOLLO_OPTIONS, APOLLO_NAMED_OPTIONS, APOLLO_FLAGS } from './tokens'; export type { Flags, NamedOptions, ResultOf, VariablesOf } from './types'; export { gql } from './gql'; -export { onlyComplete } from './only-complete'; +export { onlyCompleteData, onlyComplete } from './only-complete-data'; diff --git a/packages/apollo-angular/src/only-complete.ts b/packages/apollo-angular/src/only-complete-data.ts similarity index 85% rename from packages/apollo-angular/src/only-complete.ts rename to packages/apollo-angular/src/only-complete-data.ts index b3bc8cbd5..37756e4ac 100644 --- a/packages/apollo-angular/src/only-complete.ts +++ b/packages/apollo-angular/src/only-complete-data.ts @@ -19,13 +19,13 @@ import type { ObservableQuery } from '@apollo/client/core'; * notifyOnNetworkStatusChange: false, // Adding this will save CPU cycles * }) * .valueChanges - * .pipe(onlyComplete()) + * .pipe(onlyCompleteData()) * .subscribe(result => { * // Do something with complete result * }); * ``` */ -export function onlyComplete(): OperatorFunction< +export function onlyCompleteData(): OperatorFunction< ObservableQuery.Result, ObservableQuery.Result > { @@ -34,3 +34,8 @@ export function onlyComplete(): OperatorFunction< result.dataState === 'complete', ); } + +/** + * @deprecated Use `onlyCompleteData()` instead. + */ +export const onlyComplete = onlyCompleteData; diff --git a/packages/apollo-angular/testing/tests/only-complete.spec.ts b/packages/apollo-angular/testing/tests/only-complete-data.spec.ts similarity index 91% rename from packages/apollo-angular/testing/tests/only-complete.spec.ts rename to packages/apollo-angular/testing/tests/only-complete-data.spec.ts index dfb9689e6..9fe0e1a4e 100644 --- a/packages/apollo-angular/testing/tests/only-complete.spec.ts +++ b/packages/apollo-angular/testing/tests/only-complete-data.spec.ts @@ -1,4 +1,4 @@ -import { onlyComplete } from 'apollo-angular'; +import { onlyCompleteData } from 'apollo-angular'; import { Subject } from 'rxjs'; import { describe, expect, test } from 'vitest'; import { NetworkStatus, ObservableQuery } from '@apollo/client/core'; @@ -9,14 +9,14 @@ interface Result { }; } -describe('onlyComplete', () => { +describe('onlyCompleteData', () => { let theUser: Result['user'] | null = null; let count = 0; test('should receive only complete results', () => new Promise(done => { const b = new Subject>(); - b.pipe(onlyComplete()).subscribe({ + b.pipe(onlyCompleteData()).subscribe({ next: result => { count++; theUser = result.data.user; diff --git a/packages/demo/src/app/pages/movie/movie-page.component.ts b/packages/demo/src/app/pages/movie/movie-page.component.ts index 94e841b31..25aacc2b1 100644 --- a/packages/demo/src/app/pages/movie/movie-page.component.ts +++ b/packages/demo/src/app/pages/movie/movie-page.component.ts @@ -1,4 +1,4 @@ -import { Apollo, gql, onlyComplete } from 'apollo-angular'; +import { Apollo, gql, onlyCompleteData } from 'apollo-angular'; import { Observable } from 'rxjs'; import { map } from 'rxjs/operators'; import { AsyncPipe } from '@angular/common'; @@ -72,7 +72,7 @@ export class MoviePageComponent implements OnInit { notifyOnNetworkStatusChange: false, }) .valueChanges.pipe( - onlyComplete(), + onlyCompleteData(), map(result => result.data.film), ); } diff --git a/packages/demo/src/app/pages/movies/movies-page.component.ts b/packages/demo/src/app/pages/movies/movies-page.component.ts index 0ad79a82d..220936707 100644 --- a/packages/demo/src/app/pages/movies/movies-page.component.ts +++ b/packages/demo/src/app/pages/movies/movies-page.component.ts @@ -1,4 +1,4 @@ -import { Apollo, gql, onlyComplete } from 'apollo-angular'; +import { Apollo, gql, onlyCompleteData } from 'apollo-angular'; import { Observable } from 'rxjs'; import { map } from 'rxjs/operators'; import { AsyncPipe } from '@angular/common'; @@ -59,7 +59,7 @@ export class MoviesPageComponent implements OnInit { notifyOnNetworkStatusChange: false, }) .valueChanges.pipe( - onlyComplete(), + onlyCompleteData(), map(result => result.data.allFilms.films), ); }