Skip to content

Conversation

@GulajavaMinistudio
Copy link

No description provided.

phryneas and others added 30 commits June 6, 2025 17:23
* WIP change tracking behaviour for `QueryInfo`

* no need to track `QueryManager.queries`

* `legacyOneTimeQuery` queries should clean up after themselves like any other

* replace `mergeWith`

* cleanup

* `QueryManager.stop`: unsubscribe `ObservableQuery` consumers

* don't externally calculate `queryId`

* keep `ObservableQuery.observable` a scoped variable

* fixup test

* also teardown unobserved ObservableQueries

* remove now-obsolete test

* adjust some tests

* quick draft changesets

* transform before printing, print only once

* adjust tests

* re-enable tests, fix _lastWrite

* change `onWatchUpdated` deduplicaton slightly

* move `onDispose` finalization logic directly onto the subscription

* more tests, changesets

* chores

* Apply suggestions from code review

Co-authored-by: Jerel Miller <jerelmiller@gmail.com>

* restore `removeQuery` for easier merging

* Revert "restore `removeQuery` for easier merging"

This reverts commit 5538a2c.

* add test

* Update .changeset/wicked-queens-lick.md

Co-authored-by: Jerel Miller <jerelmiller@gmail.com>

* Apply suggestions from code review

Co-authored-by: Jerel Miller <jerelmiller@gmail.com>

* remove `@internal` remark

* Update src/core/QueryManager.ts

Co-authored-by: Jerel Miller <jerelmiller@gmail.com>

* chores

---------

Co-authored-by: Jerel Miller <jerelmiller@gmail.com>
…ries` (#12675)

* remove `ObservableQuery.queryId`, return `Set` from `getObservableQueries`

* Update .changeset/kind-crews-warn.md

Co-authored-by: Jerel Miller <jerelmiller@gmail.com>

* Update src/core/QueryManager.ts

Co-authored-by: Jerel Miller <jerelmiller@gmail.com>

* Clean up Prettier, Size-limit, and Api-Extractor

* chores

---------

Co-authored-by: Jerel Miller <jerelmiller@gmail.com>
Co-authored-by: phryneas <4282439+phryneas@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
…o` (#12679)

* move `markMutationResult` and `markMutationOptimistic` from `QueryManager` to `QueryInfo`

* move `markSubscriptionResult` into `QueryInfo`

* pass `ObservableQuery` into `QueryManager`, only create new `QueryInfo` instances as part of `QueryManager`.

* remove `getDiffOptions`

* remove `QueryInfo.document,variables,init`

* unify function signatures

* replace `queryId` and `mutationId` with a shared counter

* make `ObservableQuery._lastWrite` unknown
This is going to be an implemtation detail of the `MergeStrategy`

* restrict some types

* `markResult` -> `markQueryResult`

* fix up test that relies on internals

* chores

* Update src/core/QueryInfo.ts

Co-authored-by: Jerel Miller <jerelmiller@gmail.com>

* Clean up Prettier, Size-limit, and Api-Extractor

---------

Co-authored-by: Jerel Miller <jerelmiller@gmail.com>
Co-authored-by: phryneas <4282439+phryneas@users.noreply.github.com>
…workStatus.streaming` (#12686)

Co-authored-by: Lenz Weber-Tronic <lorenz.weber-tronic@apollographql.com>
Co-authored-by: Lenz Weber-Tronic <lorenz.weber-tronic@apollographql.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
* Forbid aliasing fields to `__typename`

* remove `console.log`

* remove unused import

* pairing changes

* move to `checkDocument`, flip, forbid `__ac_*`

* add test & changeset for `__ac_*`

* remove unused import

* adjust a bunch of core tests

* back to `<=`

* remove unused import

* chores

* caching

* add to `getCurrentCacheSizes.defaults`

* adjust test

* chores

* change error message, test fixup

* Update src/core/ApolloClient.ts

Co-authored-by: Jerel Miller <jerelmiller@gmail.com>

* Update src/core/ApolloClient.ts

Co-authored-by: Jerel Miller <jerelmiller@gmail.com>

* Clean up Prettier, Size-limit, and Api-Extractor

* Clean up Prettier, Size-limit, and Api-Extractor

* fix up test after changed error message

---------

Co-authored-by: Jerel Miller <jerelmiller@gmail.com>
Co-authored-by: phryneas <4282439+phryneas@users.noreply.github.com>
* split real `BaseHttpLink` class from `createHttpLink` creator function

* rename file

* move `createHttpLink` function into `HttpLink.ts`

* format file

* add functional `ClientAwarenessLink`

* type fixup

* fix circular imports

* fix up test

* chores

* remove log

* change `includeExtensions` default value from `false` to `true`

* adjust one more test

* chore

* formatting

* Update src/link/client-awareness/ClientAwarenessLink.ts

Co-authored-by: Jerel Miller <jerelmiller@gmail.com>

* docs adjustments

* move types from `OperationContext` to `DefaultContext`

* Update src/core/__tests__/ApolloClient/general.test.ts

Co-authored-by: Jerel Miller <jerelmiller@gmail.com>

* adjust options overide order

* add tests for client awareness

* add tests

* fix a bug where defaults would be overwritten with `undefined`

* remove console.log

* adjust tests, fix bug

* add changesets

* fix integration tests

* chore

* add missing peer dep

* fix up test

* adjust integration test

* Apply suggestions from code review

Co-authored-by: Jerel Miller <jerelmiller@gmail.com>

* adjust describe names

* Update .changeset/khaki-bears-destroy.md

Co-authored-by: Jerel Miller <jerelmiller@gmail.com>

* Update src/link/client-awareness/__tests__/ClientAwarenessLink.test.ts

Co-authored-by: Jerel Miller <jerelmiller@gmail.com>

* adjust API

* changeset

* move tests out to `HttpLink` and `batchHttpLink` tests

* add some merging tests

* fixup

* chores

* fixup

* chores

---------

Co-authored-by: Jerel Miller <jerelmiller@gmail.com>
* Add `accept` option to `HttpOptions`

* slight cleanup

* Update src/link/http/HttpLink.ts

Co-authored-by: Jerel Miller <jerelmiller@gmail.com>

* suggestion from code review

* changeset

---------

Co-authored-by: Jerel Miller <jerelmiller@gmail.com>
* Add incremental entrypoint

* Add types for incremental

* Add notImplementedStrategy

* Add incrementalStrategy to ApolloClient

* Add more incremental types

* Add boolean to determine if incremental

* Call prepareRequest when creating operation

* Better handle differences in format

* Update not implemented strategy

* Add defer defer20220824 strategy

* Adjust some incremnental types

* Actually add the strategy

* Adjust QueryInfo with incremental strategy

* Throw when calling prepareRequest

* Update tests to use defer strategy

* Add mulitipart header

* Pass query to startRequest

* Add better checks for incremental result. Call startRequest with initial chunk

* Add initial result

* Add todo

* Remove append and keep apply

* Remove unneeded addition to transform cache

* `HttpLink` adjustments

* handle errors thrown in `prepareRequest`

* adjust all existing tests

* have `markResult` calculate a full new result instead of modifying it, including errors & extensions

* fix up types

* cix circularity

* handle mutations

* remove unused code

* fix up import

* move error handling logic around a bit

* some cleanup, rename `apply` to `handle`

* some byte shaving

* reintroduce `getGraphQLErrorsFromResult`

* inline `mergeIncrementalData`

* chores

* chores

* simplify types

* add defer implementation tests

* migrate another test to the other strategy

* Update src/core/QueryManager.ts

Co-authored-by: Jerel Miller <jerelmiller@gmail.com>

* Combine all expected values in `FetchResult`, use `FormattedExecutionResult` where possible

* strategy -> handler

* simplify `Handler` types, add `dataState` to `MutationQueryReducer`, dedupllicate code in `QueryInfo`

* chores

* add `Streaming` type

* test `Streaming`

* changesets

* chores

* keep `dataStatus: "streaming"` if stream continues with an error

* last cleanup

* chores

* Apply suggestions from code review

Co-authored-by: Jerel Miller <jerelmiller@gmail.com>

* remove happy little accident

* Update src/incremental/index.ts

Co-authored-by: Jerel Miller <jerelmiller@gmail.com>

* `DeferAlpha2Handler` -> `GraphQL17Alpha2Handler`

* handle incremental errors in `ErrorLink`, move `isFormattedExecutionResult` to utils

* adjust changelog

* Update src/react/hooks/__tests__/useMutation.test.tsx

Co-authored-by: Jerel Miller <jerelmiller@gmail.com>

* add `Incremental` and `QueryInfo` generic class-level parameters

* Update src/core/types.ts

Co-authored-by: Jerel Miller <jerelmiller@gmail.com>

* replicate change into changeset

* move `DataMasking` type overrides into `TypeOverrides`

* `FormattedExecutionResultWithDataState` -> `NormalizedExecutionResult`

* more type changes

* adjust changelog

* change error message

* better type safety in test

* Update src/incremental/handlers/__tests__/defer20220824.test.ts

Co-authored-by: Jerel Miller <jerelmiller@gmail.com>

* remove `noCacheContents` variable in test

* fixup

* one more fixup

* Remove optional chaining

* Remove unneeded type cast

* remove unused import

* Clean up Prettier, Size-limit, and Api-Extractor

---------

Co-authored-by: Jerel Miller <jerelmiller@gmail.com>
Co-authored-by: phryneas <4282439+phryneas@users.noreply.github.com>
)

* rework multipart response parsing, remove incremental references

* remove export keyword

* Update src/link/http/__tests__/responseIterator.ts

Co-authored-by: Jerel Miller <jerelmiller@gmail.com>

* Update src/incremental/handlers/__tests__/defer20220824.test.ts

Co-authored-by: Jerel Miller <jerelmiller@gmail.com>

* Clean up Prettier, Size-limit, and Api-Extractor

* simplify incremental logic

* Update src/link/http/parseAndCheckHttpResponse.ts

Co-authored-by: Jerel Miller <jerelmiller@gmail.com>

* Update src/link/http/parseAndCheckHttpResponse.ts

Co-authored-by: Jerel Miller <jerelmiller@gmail.com>

* Update src/link/http/parseAndCheckHttpResponse.ts

Co-authored-by: Jerel Miller <jerelmiller@gmail.com>

* finangle types

* Clean up Prettier, Size-limit, and Api-Extractor

* chores

---------

Co-authored-by: Jerel Miller <jerelmiller@gmail.com>
Co-authored-by: phryneas <4282439+phryneas@users.noreply.github.com>
* enable React compiler for hooks in ESM output

* pin React compiler dependencies

* knip

* also compile CJS

* disable CJS again

* deduplicate comment (thank you prettier)

* update compiler to `19.1.0-rc.2`

* add `build` export with values `"source" | "esm" | "cjs"`

* check that React tests run against ESM build in CI

* chores

* fixup 🤦

* Create real-turtles-boil.md

* chore
* migrate links to classes

* Update .changeset/weak-owls-buy.md

Co-authored-by: Jerel Miller <jerelmiller@gmail.com>

---------

Co-authored-by: Jerel Miller <jerelmiller@gmail.com>
)

* wip

* adjust options

* undo some type changes

* fix up types

* changesets

* type changes

* changeset changes

* fixup & chores

* add tests

* update test
* Add transformIgnorePatterns for rxjs

* Allow rxjs 7.3 and higher

* Test with min supported RxJS version

* Add changeset

* Run formatting

* Ensure existing moduleNameMapper config is used

* Update size limits

* Fix typo

* Don't allow 8.0.0

---------

Co-authored-by: Lenz Weber-Tronic <lorenz.weber-tronic@apollographql.com>
…s and exclude from `client.refetchQueries` (#12712)

Co-authored-by: Lenz Weber-Tronic <lorenz.weber-tronic@apollographql.com>
renovate bot and others added 29 commits October 10, 2025 13:52
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Found via `codespell -S
*.yaml,codegen,node_modules,patches,package-lock.json,CHANGELOG.md -L
afterall,juli,anad,shepard`
Updated the last updated date in the roadmap.
`variableMatcher` was removed from `Mocklink.MockedResponse` on Apollo Client 4
* Change Apollo Client URI to remote endpoint

Updated Apollo Client configuration to use HttpLink with a remote URI.

* Change Apollo Client URI to generic URI

Updated Apollo Client URI
)

Co-authored-by: Jerel Miller <jerelmiller@gmail.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
In order to remove an image of an older version of Studio running on localhost, this change crops the screenshot to show only the devtools tab for the extension.
docs: Show only the extension in screenshot
Co-authored-by: Jerel Miller <jerelmiller@gmail.com>
…UI (#13000)

* Document handling of GraphQL errors in optimistic UI

Add explanation for handling GraphQL errors in optimistic updates. It wasn't obvious what happens when a mutation fails and error is returned from the server. Adding one extra item in the lifecycle explanation makes it much clearer what happens

* Use active voice

---------

Co-authored-by: Jerel Miller <jerelmiller@gmail.com>
* update link docs

* Update link destination

---------

Co-authored-by: Jerel Miller <jerelmiller@gmail.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
@GulajavaMinistudio GulajavaMinistudio merged commit 5615e2f into javascript-indonesias:main Nov 18, 2025
6 of 7 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.