- Feature: Pass context to typePatcher to make it possible to extract args from the URL for use when patching #260 #261
- Feature: Allow per-request field-name normalization for symmetry with de-normalization #253
- Improvement: Use globalThis instead of global #293
- Fix: fieldNameNormalizer mangling ArrayBuffer/Blob types #247
- Drop dependency on
graphql-anywhere
! #301
In beta for a unreasonably long time, this release has been stable (in-beta) for 2 years now!! It's about time we officially tag the stable version.
The main breaking change is that you need to be running Apollo Client >= 3.
A list of some specific relevant PRs:
- Fix: Nested
@rest(…)
calls with nested@export(as:…)
directives should keep their contexts distinct in order to work. #204
- Fix: FileList/File aren't available in react-native causing crashes. #200
- Fix: Duplicated Content Type Header #188
- Fix: FileList Support #183
- Fix: Default Empty object when creating headers #178
- Body-containing Queries #173
In this PR #165, we realized that the responseTransformer
feature added last release wasn't broad enough, responseTransformer
s now receive the raw response stream instead of just the json()
-promise.
Code which relies on this feature will break, however the fix should be very simple:
Either the responseTransformer function is made `async` and to `await response.json()`, *or* if this syntax is not available, the existing code needs to be wrapped in `response.json().then(data => {/* existing implementation */})`.
- Remove restriction that only allows request bodies to be built for Mutation operations. #154 & #173
- Fix code sandbox examples #177
- Bug-fix: default to empty headers instead of undefined for IE #178
- Various docs typo fixes
- Feature: responseTransformers allow you to restructure & erase "wrapper" objects from your responses. #146
- Tweaks to config for prettier #153 & jest #158
- Tests for No-Content responses #157 & #161
- Bundle Size-Limit Increased #162
- Restructure Code for preferring
await
over Promise-chains #159
- Breaking Change: 404s now no longer throw an error! It's just null data! #142
- Default Accept header if no header configured for
Accept:
#143 - Improve/enable Support for Nested Queries from different apollo-links #138
- Remove Restriction that Mutation must not contain GET queries & vice versa #140
- Expose an internal helper class (PathBuilder) for experimentation
- Fix: Bad regexp causes path-replacements with multiple replacement slots to fail #135
Breaking changes around path
-variable replacement and pathBuilder
(previously undocumented, #132).
- Breaking Change: paths now have a new style for variable replacement. (Old style is marked as deprecated, but will still work until v0.5.0). The migration should be easy in most cases
/path/:foo
=>/path/{args.foo}
- Breaking Change:
pathBuilder
signature changes to give them access to context & other data #131 and support optional Values #130 - Breaking Change:
bodyBuilder
signature changes to give them access to context & other data (for consistency withpathBuilder
) - Fix/Feature: Queries that fetch Scalar values or Arrays of scalar values should now work! #129
- Fix: Fetch Response bodies can only be "read" once after which they throw "Already Read" -- this prevented us from properly speculatively parsing the error bodies outside of a test environment. #122
- Fix: Some browsers explode when you send null to them! #121
- Feature: Expose Headers from REST responses to the apollo-link chain via context. #106
- Feature: Expose HTTP-error REST responses as JSON if available! #94
- Feature: Add
@type(name: )
as an alternative, lighter-weight system for tagging Nested objects with __typenames! #72 - Feature: Support "No-Content" responses! #107 #111
- Feature: Support serializing the body of REST calls with formats other than JSON #103
- Fix: Bundle-size / Tree Shaking issues #99
- Fix: Dependency tweaks to prevent multiple versions of deps #105
- Fix: GraphQL Nested Aliases - #113 #7
- Enable JSDoc comments for TypeScript!
- Add in-repo copy of docs so PRs can make changes to docs in sync with implementation changes.
- Fixed a bug with recursive type-patching around arrays.
- Fixed a bug in default URI assignment! #91
- Fix: react-native: Android boolean responses being iterated by fieldNameNormalizer throws an error #89
- Fix: Queries with Arrays & omitted fields would treat those fields as required (and fail) #85
- Fix: Query throws an error when path-parameter is falsy #82
- Fix: Concurrency bug when multiple requests are in flight and both use
@export(as:)
#81 - Fix: fieldNameNormalizer/fieldNameDenormalizer should now be working! #80
- Improvement: Jest should now report code-coverage correctly for Unit Tests on PRs!
- Feature: Support Handling Non-success HTTP Status Codes
- Feature: Dynamic Paths & Query building using
pathBuilder
- Improvement: Sourcemaps should now be more TypeScript aware (via rollup changes) see #76 for more up-to-date info.
Dropping the alpha tag, but keeping the pre-1.0 nature of this project!
Recent changes:
- Fix/Feature: Ability to have deeply nested responses that have __typename set correctly. See
typePatcher
for more details - Fix: Real-world mutations need their bodies serialized. Mock-fetch allowed incorrect tests to be written. thanks @fabien0102
- Feature: Bodies for mutations can be custom-built.
- First publish