- upgrade meta,path,dart dependencies (commit)
- make == override parameters non-nullable (commit). @kamilkarp 01-04-2024
- response extensions should be optional (commit). @kamilkarp 31-03-2024
- upgrade connectivity_plus (commit). @hantrungkien 27-05-2024
- upgrade dependency
connectivity_plus
(commit). @johnmartel 25-04-2024 - uses the last graphql package (commit). @vincenzopalazzo 28-05-2024
- bump connectivity_plus to 5.0.0 (commit). @erknvl 10-10-2023
- bumps http to v1 (commit). @moisessantos 06-07-2023
- Cache parsed data (commit). @budde377 03-06-2023
- bump connectivity_plus dependency to ^4.0.0 (commit). @ndelanou 24-05-2023
- bump sdk version upper bound to <4.0.0 (commit). @ndelanou 17-05-2023
- added missing onSubscriptionResult argument (commit). @PhilippS93 03-04-2023
- bump gql version to 1.0.0 (commit). @ndelanou 03-05-2023
- fix ws dependencies version to 2.2.0 (commit). @vincenzopalazzo 12-01-2023
- increase connectivity_plus version to v3 (commit). @vincenzopalazzo 03-12-2022
- fix wrong default policy merging in useWatchQue… (commit). @dehypnosis 22-07-2022
- Upgrade graphql version (commit). @budde377 23-04-2022
- Correctly add web as supported platform (commit). @budde377 23-04-2022
- support flutter 3.0 and 2.x (commit). @vincenzopalazzo 20-05-2022
- added query onError & onComplete callbacks (commit). @fabis94 22-04-2022
- Decouple GraphQLClient Provider (commit). @budde377 19-04-2022
- increase connectivity_plus version to v3 (commit). @vincenzopalazzo 03-12-2022
- fix wrong default policy merging in useWatchQue… (commit). @dehypnosis 22-07-2022
- support flutter 3.0 and 2.x (commit). @vincenzopalazzo 20-05-2022
- Upgrade graphql version (commit). @budde377 23-04-2022
- added query onError & onComplete callbacks (commit). @fabis94 22-04-2022
- Decouple GraphQLClient Provider (commit). @budde377 19-04-2022
- Correctly add web as supported platform (commit). @budde377 23-04-2022
- Stricter analysis (https://github.com/zino-hofmann/graphql-flutter/commit/131ea1f78b55554f730269f94aad11fb1d07cc44). @budde377 19-03-2022
- Stricter analysis (https://github.com/zino-hofmann/graphql-flutter/commit/131ea1f78b55554f730269f94aad11fb1d07cc44). @budde377 19-03-2022
- due a bug we miss all the changelog until the version # v5.0.2-beta.6, we need to fix it soon
5.0.1-beta.1 (2021-12-09)
- open Hive boxes concurrently (33ea16e)
5.0.1-beta.1 (2021-12-08)
- open Hive boxes concurrently (33ea16e)
5.0.1-beta.1 (2021-12-07)
- open Hive boxes concurrently (33ea16e)
5.0.1-beta.1 (2021-12-06)
- open Hive boxes concurrently (33ea16e)
5.0.1-beta.1 (2021-12-05)
- open Hive boxes concurrently (33ea16e)
5.0.1-beta.1 (2021-12-04)
- open Hive boxes concurrently (33ea16e)
5.0.1-beta.1 (2021-12-03)
- open Hive boxes concurrently (33ea16e)
5.0.1-beta.1 (2021-12-02)
- open Hive boxes concurrently (33ea16e)
5.0.1-beta.1 (2021-12-01)
- open Hive boxes concurrently (33ea16e)
5.0.1-beta.1 (2021-11-30)
- open Hive boxes concurrently (33ea16e)
5.0.1-beta.1 (2021-11-29)
- open Hive boxes concurrently (33ea16e)
5.0.1-beta.1 (2021-11-28)
- open Hive boxes concurrently (33ea16e)
5.0.1-beta.1 (2021-11-27)
- open Hive boxes concurrently (33ea16e)
5.0.1-beta.1 (2021-11-26)
- open Hive boxes concurrently (33ea16e)
5.0.0 (2021-06-07)
- ci: graphql coverage (d47852a)
- ci: refine dartanalyzer for example (e7b5830)
- ci: stop using test_coverage (28e499e)
- ci: try dart analyze (61e9f81)
- client: always only pull broadcast stream once (1b6a9e6)
- client: AuthLink getToken result should be nullable. (7f36a68)
- client: fix rebroadcasting for regular queries (3245e27)
- client: fix rebroadcasting for regular queries (0c6b0e7)
- client: hotfix dataIdFromObject passthrough in cache.readQuery (e3e04f8)
- examples: upgrade to nullsafety (fe69bce)
- flutter: make sure starwars works with nullsafe changes (6d27c64)
- graphql: only return subscriptions eagerly from cache when a cache-enabled policy is used (8af2edd)
- client: Capture stack traces in UnknownExceptions (4b36c09)
- client: null safe by default (802185a)
- client: SocketClient with web_socket_channel (6631f42)
- Expose
possibleTypes
on cache (#906) (49483ad)
- client: Null Safety
5.0.0-beta.2 (2021-05-26)
- client: Capture stack traces in UnknownExceptions (4b36c09)
5.0.0-beta.1 (2021-05-16)
- ci: refine dartanalyzer for example (e7b5830)
- ci: stop using test_coverage (28e499e)
- ci: try dart analyze (61e9f81)
- client: AuthLink getToken result should be nullable. (7f36a68)
- examples: upgrade to nullsafety (fe69bce)
- flutter: make sure starwars works with nullsafe changes (6d27c64)
- graphql: only return subscriptions eagerly from cache when a cache-enabled policy is used (8af2edd)
- client: null safe by default (802185a)
- client: Null Safety
4.1.0-beta.2 (2021-03-12)
- client: fix rebroadcasting for regular queries (0c6b0e7)
4.1.0-beta.1 (2021-03-06)
- client: SocketClient with web_socket_channel (6631f42)
4.0.2-beta.1 (2021-02-08)
- client: hotfix dataIdFromObject passthrough in cache.readQuery (e3e04f8)
4.0.1 (2021-02-07)
- client: hotfix dataIdFromObject passthrough in cache.readQuery (000d59f)
4.0.0 (2021-01-31)
- examples: starwars example cache (22db4f7)
- fix ObservableQuery.lifecycle for cache only results (f44b479)
- client: mutation not firing observer callbacks (75393c2)
- query test (f54c6ae)
- ci: loosen path version (645d462)
- client: add CacheMissException for when write/read results in null (a0a967f)
- client: fetchMore partial handling (10ec576)
- client: gql_http_link==0.3.2 for custom toJsons closing #734 (98b8cf7)
- client: only queries are refetch safe (1e93376)
- client: refetch overrides fetchPolicy (891bc2b)
- client: skip cache writes on null data, thus fixing #405 (7472bb9)
- client: wrap all subscription errors in QueryResults (aae61ca)
- docs: typo in docstring, add todo to sanitizeVariables (9c84cb1)
- examples: cleanup bloc example (82724f0)
- examples: flutter bloc pubspec (61582b3)
- examples: ignore missing token (ffd3294)
- examples: starwars example works again (7514b93)
- examples: update ios files for graphql_flutter/example (5b6e3d0)
- graphql: default-yet-overrideable variable (6ba687e)
- graphql: don't close mutations after callbacks (2ba6c74)
- graphql: dumb ?? documentNode bug (ba7b641)
- graphql: fix rebroadcasting by refactoring onData callbacks into a simpler async function (9a5fff1)
- graphql: keep deprecated QueryResult api and mark it as such (2b447a0)
- graphql: sanitize multipart files for cache (4ceb800)
- graphql: simplified AuthLink (0b3fbd9)
- tests: update tests (bba4a7a)
- cache now flags itself for broadcasting (84cba43)
- client.fetchMore utility for leveraging the fetch more logic results without using ObservableQuery (814ccb3)
- documentNode -> document, dependency issues, reexport links from client (for now), retrieve subscription changes from #533 (4fb205c)
- graphql: HiveStore.open (6db4677)
- drop Link layer in favor of package:gql_link and package:gql_exec (2e491a7)
- client: add context to QueryResult (fbc5a2d)
- client: cache proxy methods on cache, resetStore with optional refetchQueries (ba7134a)
- client: cache writes are now strict, and throw PartialDataException (from normalize), (616b5ed)
- client: CacheRereadPolicy, watchMutation workaround (32e02da)
- client: carry forward data on exception (ccf3b9c)
- client: expose store, cleanup (6fc5e7e)
- client: only rebroadcast on deep equals (ee64e99)
- client: partialDataPolicy for configuring rejections (0a7cd28)
- client: QueryResult.unexecuted (13e3257)
- client: refetchSafeQueries, clarify rebroadcast calls in docs (e45b240)
- docs: v4 changelog (38cfd9b)
- examples: reorg graphql example so pub displays code (bc32bdd)
- examples: starwars hivestore usage (2f874ec)
- graphql: add isMutation etc helpers to Options types (04e7888)
- graphql: complete caching overhaul (e9b5660)
- graphql: HiveStore api improvements, fetchmore fixes (2d1a7f2)
- graphql: multipart file support (c2733ca)
- graphql: re-add documentNode asdeprecated (20d0176)
- more work on gql links (0d7ef7a)
- graphql: Robust ObservableQuery docs (1e893b5)
- graphql: update old websocket_link (496d994)
- graphql: upgrade normalize to 0.4.2 (4655e7d)
- graphql: use new cache correctly everywhere else (f64a6c8)
- starting on gql links (d9452bc)
- graphql: work on making subscriptions more of a first-class citizen (6d0b045)
- graphql_flutter: add ResultAccumulator, fix Subscription (7e1edee)
- graphql_flutter: initHiveForFlutter (1118cc7)
- HiveStore (2c3c66c)
- move to DocumentNode-only documents (7499323)
- graphql_flutter: work on making subscriptions more of a first-class citizen (a0e0d5c)
- tests: test subscriptions (2a3e6a1)
- client: By fixing the defaults for mutations, the old behavior is now lost
- the deprecated string documents are no longer supported
- Link layer is now implemented via package:gql_link and package:gql_exec
4.0.0-beta.7 (2021-01-25)
- client: add context to QueryResult (fbc5a2d)
- client: CacheRereadPolicy, watchMutation workaround (32e02da)
- client: QueryResult.unexecuted (13e3257)
- client: By fixing the defaults for mutations, the old behavior is now lost
4.0.0-beta.6 (2020-12-27)
- fix ObservableQuery.lifecycle for cache only results (f44b479)
4.0.0-beta.5 (2020-11-10)
- client: wrap all subscription errors in QueryResults (aae61ca)
4.0.0-beta.4 (2020-11-07)
- client: add CacheMissException for when write/read results in null (a0a967f)
- client: fetchMore partial handling (10ec576)
- client: skip cache writes on null data, thus fixing #405 (7472bb9)
- client: cache writes are now strict, and throw PartialDataException (from normalize), (616b5ed)
- client: carry forward data on exception (ccf3b9c)
- client: only rebroadcast on deep equals (ee64e99)
- client: partialDataPolicy for configuring rejections (0a7cd28)
4.0.0-beta.3 (2020-10-17)
- client: refetch overrides fetchPolicy (891bc2b)
4.0.0-beta.2 (2020-10-13)
- graphql: upgrade normalize to 0.4.2 (4655e7d)
4.0.0-beta.1 (2020-10-07)
v4
reworks a lot of the internals of the core graphql/client.dart
(and thus graphql_flutter
).
Please see the v4 changelog for more details, and the updated READMEs for more extensive documentation.
The following was autogenerated from ill-manicured commits:
- examples: ignore missing token (ffd3294)
- query test (f54c6ae)
- ci: loosen path version (645d462)
- client: gql_http_link==0.3.2 for custom toJsons closing #734 (98b8cf7)
- client: mutation not firing observer callbacks (75393c2)
- client: only queries are refetch safe (1e93376)
- docs: typo in docstring, add todo to sanitizeVariables (9c84cb1)
- examples: cleanup bloc example (82724f0)
- examples: flutter bloc pubspec (61582b3)
- examples: starwars example cache (22db4f7)
- examples: starwars example works again (7514b93)
- examples: update ios files for graphql_flutter/example (5b6e3d0)
- graphql: default-yet-overrideable variable (6ba687e)
- graphql: don't close mutations after callbacks (2ba6c74)
- graphql: dumb ?? documentNode bug (ba7b641)
- graphql: fix rebroadcasting by refactoring onData callbacks into a simpler async function (9a5fff1)
- graphql: keep deprecated QueryResult api and mark it as such (2b447a0)
- graphql: sanitize multipart files for cache (4ceb800)
- graphql: simplified AuthLink (0b3fbd9)
- tests: update tests (bba4a7a)
- cache now flags itself for broadcasting (84cba43)
- client.fetchMore utility for leveraging the fetch more logic results without using ObservableQuery (814ccb3)
- documentNode -> document, dependency issues, reexport links from client (for now), retrieve subscription changes from #533 (4fb205c)
- graphql_flutter: add ResultAccumulator, fix Subscription (7e1edee)
- drop Link layer in favor of package:gql_link and package:gql_exec (2e491a7)
- client: cache proxy methods on cache, resetStore with optional refetchQueries (ba7134a)
- client: expose store, cleanup (6fc5e7e)
- client: refetchSafeQueries, clarify rebroadcast calls in docs (e45b240)
- docs: v4 changelog (38cfd9b)
- examples: reorg graphql example so pub displays code (bc32bdd)
- examples: starwars hivestore usage (2f874ec)
- graphql: add isMutation etc helpers to Options types (04e7888)
- graphql: complete caching overhaul (e9b5660)
- graphql: HiveStore api improvements, fetchmore fixes (2d1a7f2)
- graphql: HiveStore.open (6db4677)
- graphql: multipart file support (c2733ca)
- graphql: re-add documentNode asdeprecated (20d0176)
- graphql: Robust ObservableQuery docs (1e893b5)
- graphql: update old websocket_link (496d994)
- graphql: use new cache correctly everywhere else (f64a6c8)
- HiveStore (2c3c66c)
- more work on gql links (0d7ef7a)
- move to DocumentNode-only documents (7499323)
- starting on gql links (d9452bc)
- graphql: work on making subscriptions more of a first-class citizen (6d0b045)
- graphql_flutter: initHiveForFlutter (1118cc7)
- graphql_flutter: work on making subscriptions more of a first-class citizen (a0e0d5c)
- tests: test subscriptions (2a3e6a1)
- the deprecated string documents are no longer supported
- Link layer is now implemented via package:gql_link and package:gql_exec
- hotfix(client):
gql_http_link==0.3.2
for custom toJsons closing #734 (98b8cf7)
- hotfix(client):
gql_http_link==0.3.1
fix for bool json encoding support (38b2fd2)
cache.readFragment / cache.readFragment
API has been reworked:
final fragDoc = gql(...);
final idFields = { '__typename': 'MyType', 'id': 1 }
final fragmentData = {
'myField': 'updatedValue',
'someNewField': [
{'newData': false}
],
};
+ // or Fragment(document: fragDoc).asRequest(idFields: idFields)
+ final fragmentRequest = FragmentRequest(
+ fragment: Fragment(
+ document: fragDoc,
+ ),
+ idFields: idFields,
+ );
cache.writeFragment(
- fragment: fragDoc,
- idFields: idFields,
+ fragmentRequest,
data: fragmentData,
);
This was done because I (@micimize) wanted to make it more consistent with cache.readQuery
/cache.writeQuery
before beta
.
- client: refactor(client): Fragment and FragmentRequest for more normalized api (2f04058)
- docs: update docs, add more sections (00f4a97)
This was mostly a prep release for the first v4 beta.
- client: cache proxy methods on cache, resetStore with optional refetchQueries (ba7134a)
- test(client): more cache and store tests (a9eed21)
- examples: merge and update flutter_bloc changes (ac4759a)
- docs: correct multipart example (f9d1adb)
- chore: re-merge changelog and templates (9db0b44)
- tests: restore old websocket client tests (https://github.com/zino-app/graphql-flutter/commit/[3e4870c](3e4870ce4b67bd9a8716af54b26061eac801c44d))
- refactor: pollInterval is now a Duration (fe02bb8)
- chore: I think fixes coverage and lint (d37e81c)
GraphQLClient
now implements GraphQLDataProxy
, exposing readQuery
, writeQuery
, readFragment
, and writeFragment
. The writing methods also trigger rebroadcasts, closing #728.
It also adds an experimental client.resetStore({refetchQueries = true})
for refetching the results of all observed queries (not mutations), and expose cache.store
with a WARNING about direct access.
- client: cache proxy methods on cache, resetStore with optional refetchQueries (ba7134a)
- client: refetchSafeQueries, clarify rebroadcast calls in docs (e45b240)
- client: expose store, cleanup (6fc5e7e)
- client: add isMutation etc helpers to Options types (04e7888)
- fix: only queries are refetch safe (1e93376)
- refactor: clean up unused helpers, clarify shoudRebroadcast (1cf6478)
- client: fix subscription initial result from cache (de66cff)
- cache: sanitize multipart files for cache. (4ceb800)
- client: bring back old websocket link with gql adapter layer (496d994)
- client: multipart file support from
gql_http_link==0.3.0
(c2733ca)
- client: don't close mutations after callbacks (2ba6c74)
- examples: update ios files for graphql_flutter/example (5b6e3d0)
- client: simplified AuthLink (0b3fbd9)
- docs: direct cache access in changelog (1f21927)
- examples: starwars hivestore usage (2f874ec)
- graphql:
HiveStore
api improvements (2d1a7f2) - fix:
FetchMoreOptions
was throwing withoutdocument
(2d1a7f2) - fix:
deeplyMergeLeft
type error (65fdcb2)
- client:
maybeRebroadcast
onmutation
(75393c2)
See the v4 changelog
3.1.0 (2020-07-27)
- ci: add changelog back (3e63c3e)
- ci: Sync master into beta (2a0507e)
- client: Throw a ClientException on non-json responses, to be (7d538e1), closes #552
- client: translateNetworkFailure when no route to host (877bdb8)
- examples: rebuilt & tested starwars example (2aaffeb)
- examples/starwars: use git dependency for graphql_starwars_test_server (0facc48)
- flutter: Query.didUpdateWidget and policy overrides (6672e44)
- flutter: widgets make unnecessary requests when dependencies change (c487931)
- packaging: correct dependencies, remove authors (13f6a43)
- packaging: don't commit .flutter-plugins-dependencies (f77dafa)
- packaging: upgrade rxdart (20364a9)
- release: RunMutation return type definition (9cb9658)
- tests: don't factor tests into coverage scores (4a9bcd4)
3.1.0-beta.7 (2020-06-04)
- ci: add changelog back (3e63c3e)
- ci: Sync master into beta (2a0507e)
- client: FetchMoreOptions bug with operator precedence (f8e05af)
3.0.2 (2020-05-18)
- client: FetchMoreOptions bug with operator precedence (f8e05af)
3.1.0-beta.6 (2020-05-16)
- packaging: correct dependencies, remove authors (a22d504)
3.1.0-beta.5 (2020-05-10)
- packaging: upgrade rxdart (20364a9)
- graphql: custom auth headerKey (167fac5)
3.1.0-beta.4 (2020-04-21)
- examples: rebuilt & tested starwars example (f8e19f1)
- packaging: don't commit .flutter-plugins-dependencies (0857030)
3.1.0-beta.3 (2020-04-20)
- flutter: Query.didUpdateWidget and policy overrides (32f6172)
- style: use curly braces (42f4da4)
- tests: don't factor tests into coverage scores (4a9bcd4)
3.0.1 (2020-04-20)
- style: use curly braces (42f4da4)
3.1.0-beta.2 (2020-04-12)
- flutter: widgets make unnecessary requests when dependencies change (31936ff)
3.1.0-beta.1 (2020-03-30)
- examples/starwars: use git dependency for graphql_starwars_test_server (0facc48)
- examples/starwars: add web support (f52b1db)
3.0.1-beta.3 (2020-03-10)
- release: RunMutation return type definition (9cb9658)
3.0.1-beta.2 (2020-02-14)
3.0.1-beta.1 (2020-01-21)
- client: translateNetworkFailure when no route to host (e8b6322)
3.0.0 (2020-01-13)
- cache: add value == and hashCode to lazy cache map, fix traversal (617dde7)
- cache: AppLifecycleState.{suspending -> detached} (8bc7b14)
- ci: attempt to fix ci (4fac2e4)
- client: default toEncodable (5f938e4)
- client: export operation and fetch results (5dcbae5)
- client: make fetchMore valid with default original document again (faa3779)
- client: organize exports alphabetically (a322339)
- client: patch fetchMore to write to cache (9cb7474)
- client: use http 0.12.0+4 to fix a wrong content-type header on multipart request on http 0.12.0+3 (ea8822c), closes #525
- client: use noCache for fetchMore, avoiding normalization (da20541)
- docs: remove moved onComplete (31a0d2f)
- switch test to AST from document string (894dc53)
- docs: use ast for examples (d68616e)
- add eager result to stream, rebuild query widget on var change (af89b19)
- bump gql dependency (b55a891)
- don't set default policies on options so defaults are applied (fd95e37)
- exception test cases (001cb48)
- fix issues so example runs on latest stable (87d8feb)
- ignore
*.iml
and.idea
(361fdff) - ignore linting errors from the core (0612d44)
- ignore uri doesn't exist lint error (e14349d)
- individually suppress "deprecated_member_use_from_same_package" only (3879f18)
- individually suppress "deprecated_member_use_from_same_package" only (9216976)
- pass queryId directly instead of ObservableQuery object (405ae24)
- remove analysis_options.yaml as its ineffective (0a8d05d)
- remove equatable package (0c32b14)
- remove equitable package and update tests (dbe4db5)
- subscriptions reconnect (fd8f3d1)
- subscriptions reconnect (c310db2)
- suppress fix: individually suppress "deprecated_member_use_from_same_package" only (511630f)
- temporary disable assertion which is failing (3cf7333)
- update .gitignore with standard flutter paths (892fe36)
- graphql-flutter: replace document string with AST Document (23e40af)
- update starwars example (8aaa99b)
- example: depend on updated angel server, add paging example (609c4ec)
- flutter: prevent observable discarding in
MutationState.didChangeDependencies
(baeca25) - flutter: return callback results in case of futures to await (c7d6fd1)
- graphql-flutter: ignore ast errors in the core (3b16f3f)
- packaging: update rxdart and sdk min versions (1980f22), closes #497
- tests: clobbered tests from library-level exceptions (f76e165)
- tests: fix failing tests seemingly to to ast-switch (664fdd1)
- use AST for graphql client example (edf7df6)
- use case else instead of detached or suspended (9fb5aab)
- client: add error link (de9714a), closes #419 #440
- client: cache.reset() added (8c4f2e2)
- client: introduce Policies class for options and add defaults to client (fa24aab)
- client: library-level exception handling (20e57bd)
- client: library-level exceptions (8976cfc)
- client: support defining operations from document AST (fa2db11)
- client: support joining multiple links at once (9565244)
- attempt to call mutation callbacks from mutation method (e323a4d)
- better message on UnhandledFailure (eccab11)
- document exception handling (b38e2a3)
- flutter: add mutation callback for onError (1ff0b8f)
- graphql-client: re-export parseString as gql (dcd5508)
- update examples to gql instead of parse string (7b9ac57)
- updating example (1a1bc43)
- use equatable package to make it easier to compare links (a7ed072)
- packaging: projects dependent on old sdk/rxdart versions wouldn't build, there is a way to override rxdart dependency with dependency_override (we don't use Observable features in these places, so it should be compatible with older version) there is no way to override min sdk version outside of a project
- client: replaces result.errors with result.exception
3.0.0-beta.3 (2020-01-09)
- client: use http 0.12.0+4 to fix a wrong content-type header on multipart request on http 0.12.0+3 (ea8822c), closes #525
3.0.0-beta.2 (2020-01-08)
- packaging: projects dependent on old sdk/rxdart versions wouldn't build, there is a way to override rxdart dependency with dependency_override (we don't use Observable features in these places, so it should be compatible with older version) there is no way to override min sdk version outside of a project
3.0.0-beta.1 (2019-12-22)
- cache: add value == and hashCode to lazy cache map, fix traversal (617dde7)
- cache: AppLifecycleState.{suspending -> detached} (8bc7b14)
- ci: attempt to fix ci (4fac2e4)
- client: default toEncodable (5f938e4)
- client: export operation and fetch results (5dcbae5)
- client: make fetchMore valid with default original document again (faa3779)
- client: organize exports alphabetically (a322339)
- client: patch fetchMore to write to cache (9cb7474)
- client: use noCache for fetchMore, avoiding normalization (da20541)
- docs: remove moved onComplete (31a0d2f)
- docs: use ast for examples (d68616e)
- example: depend on updated angel server, add paging example (609c4ec)
- flutter: prevent observable discarding in
MutationState.didChangeDependencies
(baeca25) - flutter: return callback results in case of futures to await (c7d6fd1)
- pass queryId directly instead of ObservableQuery object (405ae24)
- graphql-flutter: ignore ast errors in the core (3b16f3f)
- add eager result to stream, rebuild query widget on var change (af89b19)
- bump gql dependency (b55a891)
- don't set default policies on options so defaults are applied (fd95e37)
- exception test cases (001cb48)
- fix issues so example runs on latest stable (87d8feb)
- ignore
*.iml
and.idea
(361fdff) - ignore linting errors from the core (0612d44)
- ignore uri doesn't exist lint error (e14349d)
- individually suppress "deprecated_member_use_from_same_package" only (3879f18)
- individually suppress "deprecated_member_use_from_same_package" only (9216976)
- remove analysis_options.yaml as its ineffective (0a8d05d)
- remove equatable package (0c32b14)
- remove equitable package and update tests (dbe4db5)
- subscriptions reconnect (c310db2)
- subscriptions reconnect (fd8f3d1)
- suppress fix: individually suppress "deprecated_member_use_from_same_package" only (511630f)
- switch test to AST from document string (894dc53)
- temporary disable assertion which is failing (3cf7333)
- update .gitignore with standard flutter paths (892fe36)
- update starwars example (8aaa99b)
- use AST for graphql client example (edf7df6)
- graphql-flutter: replace document string with AST Document (23e40af)
- tests: clobbered tests from library-level exceptions (f76e165)
- tests: fix failing tests seemingly to to ast-switch (664fdd1)
- use case else instead of detached or suspended (9fb5aab)
- client: add error link (de9714a), closes #419 #440
- client: cache.reset() added (8c4f2e2)
- client: introduce Policies class for options and add defaults to client (fa24aab)
- client: library-level exception handling (20e57bd)
- client: library-level exceptions (8976cfc)
- client: support defining operations from document AST (fa2db11)
- client: support joining multiple links at once (9565244)
- attempt to call mutation callbacks from mutation method (e323a4d)
- better message on UnhandledFailure (eccab11)
- document exception handling (b38e2a3)
- flutter: add mutation callback for onError (1ff0b8f)
- graphql-client: re-export parseString as gql (dcd5508)
- update examples to gql instead of parse string (7b9ac57)
- updating example (1a1bc43)
- use equatable package to make it easier to compare links (a7ed072)
- client: replaces result.errors with result.exception
See GitHub Releases.
We now have a (beta) stand-alone client!
For those who want to try it out, checkout the graphql/client.dart
1.0.1-beta.
Fix dart 2.3 compilation issue @mateusfsilva
Actually Fixes for some minor linting issues, as well as a stack overflow edgecase with complex cache structures
Most changes here are from @micimize in #199
- Broke
onCompleted
signature because it didn't match apollo's and is only called whendata
is ready. - Moved
_inMemoryCache
to@protected data
for testing/override purposes (important forOptimisticPatches
- Updated the example to use optimism
- adds a
refetch
argument to theQuery
builder
- subscription and null variable fixes from @yunyu
- many documentation fixes and additions From @mainawycliffe
- disable polling with 0 interval @mainawycliffe
- Added
OptimisticCache
and related attributes toQueryResult
(optimistic
,timestamp
) - Added
lazy_cache_map.dart
for handling cyclical dereferences in the normalized cache- added
CacheState
for tracking optimism from the perspective of normalized cache entities
- added
- Added
raw_operation_data.dart
to consolidate base functionality - Added
rebroadcastQueries
to theQueryManager
, for use post-update, which rebroadcasts all "safe" queries that can be with updated data from the cache - Added
optimisticResult
management to theQueryManager
- Added
optimisticResult
toBaseOptions
, andQueryOptions
(it is added inrunMutation
for mutations) - Added
optimistic
attributeQueryResult
itself for lifecycle management.
LazyCacheMap
usage and reasoning- Optimism section. differences between
result.optimistic
andLazyCacheMap.isOptimistic
update
,onCompleted
usage/existencerefetch
usage/existence
We are finally in BETA. This means we're one step closer to our first stable release.
Thanks to all the contributes.
Support GraphQL Upload spec as proposed at https://github.com/jaydenseric/graphql-multipart-request-spec
We have added a brand new Link
that handles authentication. You can drop it in like so:
final HttpLink httpLink = HttpLink(
uri: 'https://api.github.com/graphql',
);
final AuthLink authLink = AuthLink(
getToken: () async => 'Bearer $YOUR_PERSONAL_ACCESS_TOKEN',
);
final Link link = authLink.concat(httpLink);
GraphQLClient client = GraphQLClient(
cache: NormalizedInMemoryCache(
dataIdFromObject: typenameDataIdFromObject,
),
link: link,
);
The getToken
function will be called right before each event gets passed to the next link. It set the Authorization
header to the value returned by getToken
and passes it under the header
map to the context.
n/a
- Fixed decouple mutation side effects from component (#114). @micimize
- Fixed
data == {}
was always false, instead ofdata.isEmpty
. @nesger - Added
update(cache, result)
attribute toMutation
. @micimize - Added
NormalizationException
to handle infinite dereference StackOverflow due to user error. @micimize - Added the GraphQL message type
GQL_CONNECTION_KEEP_ALIVE
, so it isn't interpreted asUnknownData
anymore. @ArneSchulze - Added the brand ne
AuthLink
class. @HofmannZ - Update example to use
NormalizedCache
/ test decoupling by replacing theMutation
while in flight. @micimize - Removed closed observable queries from
QueryManager
. @micimize
- Fixed typos. @xtian
- Added
MessageType
constantGQL_CONNECTION_KEEP_ALIVE
. @ArneSchulze - Added
GraphQLSocketMessage
classConnectionKeepAlive
. @ArneSchulze - Added
Stream<ConnectionKeepAlive>
toGraphQLSocket
. @ArneSchulze - Updated the example to use the new AuthLink. @HofmannZ
n/a
- Added
NormalizedInMemoryCache
as a new cache option. @micimize - Fixed
Mutation
callingonCompleted
for loading state. @rafaelring - Fix type annotations. @HofmannZ
- Fixed http versions. @HofmannZ
- Added docs for the new
NormalizedInMemoryCache
option. @micimize - Added @rafaelring as a contributor. @HofmannZ
n/a
- Fixed
Query
variables not updating in the query. @micimize - Fixed
Mutation
widget's behavior to properly set loading status. @Igor1201
- Added @micimize as a contributor. @HofmannZ
- Added @Igor1201 as a contributor. @HofmannZ
n/a
- Fixed connectivity errors not being thrown and streamed. @HofmannZ
n/a
n/a
- Removed an unused class. @HofmannZ
- Formatted the query manger. @HofmannZ
- Handle charset encoding in responses @kolja-esders
- Added some inline docs to Query widget. @HofmannZ
- Improved the inline docs of the client. @HofmannZ
- Update the example. @HofmannZ
n/a
- Fixed a bug where getting the operation name was always returning null. @HofmannZ
- Override the fetch policy if the default query option is used. @HofmannZ
- Split up fetching and polling in the observable query. @HofmannZ
- Check if the stream is closed, before adding a new event to it. @HofmannZ
- Check if the variables have actually changed form or to null. @HofmannZ
- Added a new getter to check if a query result has errors. @HofmannZ
- Refactored the scheduler to only handle polling queries. @HofmannZ
- Updated the mutation widget to use the new api in observable query. @HofmannZ
- Resolve type cast exception when handling GraphQL errors. @kolja-esders @HofmannZ
- Propagate GraphQL errors to caller instead of throwing network exception. @kolja-esders
n/a
n/a
- Updated lint options in preparation for upcoming CI checks. @HofmannZ
n/a
n/a
- Fixed a bug where the wrong key was selected from the context map. @HofmannZ
- Fixed a scenario where the dispose method was calling the
close
method on theobservableQuery
class which might not have been initialised yet. @HofmannZ - Added the
onComplete
callback for theMutation
widget. @HofmannZ - Added the
initPayload
as an optional parameter for theconnect
method on theSocketClient
class. @lordgreg
- Added an example of optionally overriding http options trough the context. @HofmannZ
- Added @lordgreg as a contributor. @HofmannZ
- Updated the example with explicit type casting. @HofmannZ
- Updated the
Mutation
example with the newonComplete
callback. @HofmannZ
n/a
- Always return something from the
read
method in the cache class. @HofmannZ - Only save to cache with certain fetch policies. @HofmannZ
- Throw an error when no data from network with certain fetch policies. @HofmannZ
- Added a document parser. @HofmannZ
- Added operation name from document to the operation. @HofmannZ
- Only create a new observable query if options have changed. @HofmannZ
- Add context to the links. @HofmannZ
- Parse context in the http link to update the config. @HofmannZ
- Change the type of context from dynamic to Map<String, dynamic. @HofmannZ
n/a
n/a
- Reverted changes to the required Dart version. @HofmannZ
- Added missing return statsments. @HofmannZ
n/a
n/a
GraphQLClient
now reads and writes data from theCache
based on the providedFetchPolicy
option. @HofmannZ- Implemented caching for data from
FetchResults
. @HofmannZ - The library now tagets Dart version
>=2.1.0-dev.0.0 <3.0.0
as recomended by Flutter0.6.0
. @HofmannZ - Removed the old client from the library. @HofmannZ
- Document the new API. @HofmannZ
- Write an upgrade guide. @HofmannZ
- Clean up the example. @HofmannZ
- Renamed
Client
toGraphQLClient
to avoid name collision with other packages. @HofmannZ - Renamed
GraphqlProvider
toGraphQLProvider
to align with new naming. @HofmannZ - Renamed
GraphqlConsumer
toGraphQLConsumer
to align with new naming. @HofmannZ - Renamed
GQLError
toGraphQLError
to align with new naming. @HofmannZ GraphQLClient
requires aLink
to passed into the constructor. @HofmannZGraphQLClient
no longer requires aendPoint
orapiToken
to be passed into the constructor. Instead you can provide it to theLink
. @HofmannZ- The
Query
andMutation
widgets are nowStreamBuilders
, there the api did change slightly. @HofmannZ
- Improved typing throughout the library. @HofmannZ
- Queries are handled as streams of operations. @HofmannZ
- Added the
HttpLink
to handle requests using http. @HofmannZ HttpLink
allows headers to be customised. @HofmannZ- The api allows contributors to write their own custom links. @HofmannZ
- Implement the new link system in the example. @HofmannZ
n/a
- Fix wrong typedef causing runtime type mismatch. @HofmannZ
- Update the reference to the next branch. @HofmannZ
n/a
- Upgrade dependencies. @HofmannZ
- Added a refrence to our next major release. @HofmannZ
n/a
- Move test dependency to the dev section. @fabiocarneiro
- Fix version resolving for test dependencies. @HofmannZ
n/a
n/a
- Added error extensions support. @dustin-graham
- Changed the mutation typedef to return a Future, allowing async/await. @HofmannZ
- Fixed error handling when location is not provided. @adelcasse
- Fixed a bug where the client might no longer be in the same context. @HofmannZ
n/a
n/a
- Added basic error handeling for queries and mutations @mmadjer
- Added missing export for the
GraphqlConsumer
widget @AleksandarFaraj
n/a
n/a
- Code formatting @HofmannZ
- Updated the package description @HofmannZ
n/a
- Added support for subsciptions in the client. @cal-pratt
- Added the
Subscription
widget. You can no direcly acces streams from Flutter. @cal-pratt
- Added instructions for adding subscripton to your poject. @cal-pratt
- Updated the
About this project
section. @HofmannZ
- The library now requires your app to be wrapped with the
GraphqlProvider
widget. @HofmannZ - The global
client
variable is no longer available. Instead use theGraphqlConsumer
widget. @HofmannZ
- Added the
GraphqlProvider
widget. The client is now stored in anInheritedWidget
, and can be accessed anywhere within the app. @HofmannZ
Client client = GraphqlProvider.of(context).value;
- Added the
GraphqlConsumer
widget. For ease of use we added a widget that uses the same builder structure as theQuery
andMutation
widgets. @HofmannZ
Under the hood it access the client from the
BuildContext
.
- Added the option to optionally provide the
apiToken
to theClient
constructor. It is still possible to set theapiToken
with setter method. @HofmannZ
return new GraphqlConsumer(
builder: (Client client) {
// do something with the client
return new Container();
},
);
- Added documentation for the new
GraphqlProvider
@HofmannZ - Added documentation for the new
GraphqlConsumer
@HofmannZ - Changed the setup instructions to include the new widgets @HofmannZ
- Changed the example to include the new widgets @HofmannZ
n/a
- Query: changed
Timer
toTimer.periodic
@eusdima - Minor logic tweak @eusdima
- Use absolute paths in the library @HofmannZ
- Fix mutations example bug not updating star bool @cal-pratt
n/a
- Added polling timer as a variable for easy deletion on dispose
- Fixed bug when Query timer is still active when the Query is disposed
- Added instant query fetch when the query variables are updated
n/a
n/a
- Fixed error when cache file is non-existent
n/a
n/a
- Fixed json error parsing.
n/a
n/a
- Introduced
onCompleted
callback for mutiations. - Excluded some config files from version control.
- Fixed typos in the
readme.md
. - The examples inculde an example of the
onCompleted
callback.
n/a
n/a
- The examples now porperly reflect the changes to the library.
- The Client now requires a from of cache.
- The name of the
execute
method on theClient
class changed toquery
.
- Implemented in-memory cache.
- Write memory to file when in background.
- Added provider widget to save and restore the in-memory cache.
- Restructure the project.
- Update the
README.md
to refelct changes in the code. - update the example to refelct changes in the code.
- Changed data type to
Map
instaid ofObject
to be more explicit.
- Cosmatic changes.
- Added a Flutter app example.
- Fixed the example in
README.md
. - Added more badges.
- Changed query widget
polling
argument topollInterval
, following the react-apollo api.
- Query polling is now optional.
- Updated the docs with the changes in api.
My colleague and I created a simple implementation of a GraphQL Client for Flutter. (Many thanks to Eus Dima, for his work on the initial client.)
n/a
- A client to connect to your GraphQL server.
- A query widget to handle GraphQL queries.
- A mutation widget to handle GraphQL mutations.
- Simple support for query polling.
- Initial documentation.