diff --git a/packages/apollo-angular-link-persisted/CHANGELOG.md b/packages/apollo-angular-link-persisted/CHANGELOG.md index d0459c41e..aca2c0a9d 100644 --- a/packages/apollo-angular-link-persisted/CHANGELOG.md +++ b/packages/apollo-angular-link-persisted/CHANGELOG.md @@ -1,12 +1,16 @@ # Change log -### v1.2.0 +### v1.1.0 + +- Introduces `useGETForHashedQueries` + +### v1.0.0 - Uses `ng-packagr` ### v1.0.0-beta.2 -* Adds `sideEffects: false` (webpack) ([PR #580](https://github.com/apollographql/apollo-angular/pull/580)) +- Adds `sideEffects: false` (webpack) ([PR #580](https://github.com/apollographql/apollo-angular/pull/580)) ### v1.0.0-beta.0 diff --git a/packages/apollo-angular-link-persisted/package.json b/packages/apollo-angular-link-persisted/package.json index 51bc1da4c..42fdfd769 100644 --- a/packages/apollo-angular-link-persisted/package.json +++ b/packages/apollo-angular-link-persisted/package.json @@ -7,7 +7,7 @@ "main": "build/bundles/ng.apolloLink.persisted.umd.js", "module": "build/fesm5/ng.apolloLink.persisted.js", "typings": "build/ng.apolloLink.persisted.d.ts", - "version": "1.0.0", + "version": "1.1.0", "repository": { "type": "git", "url": "apollographql/apollo-angular" diff --git a/packages/apollo-angular-link-persisted/src/index.ts b/packages/apollo-angular-link-persisted/src/index.ts index 06a7f2d1d..7d537f6f6 100644 --- a/packages/apollo-angular-link-persisted/src/index.ts +++ b/packages/apollo-angular-link-persisted/src/index.ts @@ -7,17 +7,24 @@ import { } from 'apollo-link-persisted-queries'; export interface Options { - generateHash?: ((document: DocumentNode) => string) | undefined; - disable?: ((error: ErrorResponse) => boolean) | undefined; + generateHash?: ((document: DocumentNode) => string); + disable?: ((error: ErrorResponse) => boolean); + useGETForHashedQueries?: boolean; } const transformLink = setContext((_, context) => { + const ctx: any = {}; + if (context.http) { - return { - includeQuery: context.http.includeQuery, - includeExtensions: context.http.includeExtensions, - }; + ctx.includeQuery = context.http.includeQuery; + ctx.includeExtensions = context.http.includeExtensions; + } + + if (context.fetchOptions && context.fetchOptions.method) { + ctx.method = context.fetchOptions.method; } + + return ctx; }); export const createPersistedQueryLink = (options?: Options) => diff --git a/packages/apollo-angular-link-persisted/tests/index.spec.ts b/packages/apollo-angular-link-persisted/tests/index.spec.ts index c2e9891ea..cea9270e3 100644 --- a/packages/apollo-angular-link-persisted/tests/index.spec.ts +++ b/packages/apollo-angular-link-persisted/tests/index.spec.ts @@ -77,4 +77,25 @@ describe('createPersistedQueryLink', () => { done(); }); }); + + test('useGETForHashedQueries', (done: jest.DoneCallback) => { + const execLink = new MockLink(); + const spyRequest = jest.spyOn(execLink, 'request').mock; + const link = createPersistedQueryLink({ + useGETForHashedQueries: true, + }).concat(execLink); + + execute(link, { + query, + }).subscribe(() => { + const op = spyRequest.calls[1][0] as Operation; + const ctx = op.getContext(); + + // should be compatible with apollo-angular-link-http + expect(ctx.method).toEqual('GET'); + + // end + done(); + }); + }); });