Skip to content

chore: update dependencies - #417

Merged
JoviDeCroock merged 2 commits into
mainfrom
JoviDeCroock/update-dependencies
Jul 5, 2026
Merged

chore: update dependencies#417
JoviDeCroock merged 2 commits into
mainfrom
JoviDeCroock/update-dependencies

Conversation

@JoviDeCroock

Copy link
Copy Markdown
Member

Summary

Updates the dev toolchain and the plugin's bundled dependencies, keeping everything green (52/52 e2e + unit tests pass, verified from a clean --frozen-lockfile install).

Tooling majors

  • vitest 0.34 → 4.1 — the removed --single-thread flag is replaced by --no-file-parallelism; vite 8 is pinned as a root devDependency so vitest's vite@^6||^7||^8 peer resolves (the lockfile otherwise kept a stale vite 5)
  • prettier 2 → 3prettier.format is async now, so the d.ts renderChunk hook in the rollup config awaits it
  • husky 8 → 9prepare script is now husky, hook file header removed (was deprecated), stale husky 4 config block dropped from package.json
  • rollup plugins: babel 7, commonjs 29, node-resolve 16, terser 1, typescript 12
  • lint-staged 17, dotenv 17, @actions/core 3, @actions/github 9, @changesets/get-github-info 0.8, @types/node 22 (matches CI's Node 22)

Bundled (published) deps

  • graphql-language-service 5.2 → 5.5 — completion entries gain label, detail, type, documentation, and deprecation metadata (snapshots updated accordingly)
  • lru-cache 10 → 11 — requires Node 20+
  • @sindresorhus/fnv1a 2 → 3 — returns BigInt, so the diagnostics cache key type changed
  • In-range: typescript 5.3.3 → 5.9.3, rollup 4.62, @gql.tada/internal 1.2.1, changesets 2.31, gql.tada 1.11.2

A changeset (patch) is included for the bundled dependency changes.

Test fixes required by the updates

  • TypeScript 5.9's tsserver no longer emits the setTypings event; the graphqlsp and misconfiguration e2e suites waited for it in beforeAll and timed out. They now wait for projectLoadingFinish, and the graphqlsp suite additionally polls completionInfo until the async schema load completes (mirroring the existing waitForDiagnostics pattern).
  • Snapshots updated for the new completion metadata fields and vitest 4's inline-snapshot quote escaping.
  • test/e2e/fixture-project-tada/introspection.d.ts was regenerated by the plugin during the test run with @gql.tada/internal 1.2.1.

Deliberately held back

  • graphql stays on 16.x — 17.0 is a freshly released major on the plugin's peer surface; fixtures pin ^16
  • TypeScript stays on 5.x — 6.0 affects the tsserver internals the plugin builds against
  • Babel plugins stay on 7.x — the 8.x plugins require @babel/core 8
  • Test fixture dependencies (urql, @types/react) stay pinned to avoid meaningless snapshot churn

These are better done as separate, focused PRs.

Verification

rm -rf node_modules && pnpm install --frozen-lockfile
pnpm --filter @0no-co/graphqlsp run build   # ok
pnpm run test:e2e                           # 11 files, 52/52 passed
pnpm peers check                            # no issues

🤖 Generated with Claude Code

Update the dev toolchain and the plugin's bundled dependencies:

- vitest 0.34 -> 4 (the removed `--single-thread` flag is replaced by
  `--no-file-parallelism`), with vite 8 pinned as a devDependency so
  vitest's peer range resolves correctly
- prettier 2 -> 3 (`prettier.format` is async now, so the d.ts
  renderChunk hook in the rollup config awaits it)
- husky 8 -> 9 (`husky install` and the hook file header are deprecated)
- rollup plugins (babel 7, commonjs 29, node-resolve 16, terser 1,
  typescript 12), lint-staged 17, dotenv 17, @actions/core 3,
  @actions/github 9, @changesets/get-github-info 0.8, @types/node 22
- typescript 5.3 -> 5.9, rollup 4.62, and other in-range updates
- bundled deps: graphql-language-service 5.5, lru-cache 11, and
  @sindresorhus/fnv1a 3 (returns a BigInt now, so the diagnostics
  cache key type changes)

TypeScript 5.9's tsserver no longer emits the `setTypings` event, so
the e2e suites that waited for it now wait for `projectLoadingFinish`
instead, and the graphqlsp suite polls completions until the schema
has loaded asynchronously. Completion snapshots gain the metadata
fields added by graphql-language-service 5.5.

graphql intentionally stays on 16.x and TypeScript on 5.x; graphql 17
and TypeScript 6 are fresh majors that affect the plugin's peer
surface and deserve their own PR.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@changeset-bot

changeset-bot Bot commented Jul 5, 2026

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: 8963277

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 1 package
Name Type
@0no-co/graphqlsp Patch

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

The combinations e2e suite asserted on the first automatically emitted
semanticDiag event and sent quick-info/completion requests right after,
without waiting for the plugin's asynchronous schema load. This raced
schema loading against tsserver's diagnostics emission — the suite was
already intermittently flaky, and TypeScript 6's tsserver emits the
first (still empty) diagnostics fast enough that the race is lost
consistently. Poll with geterr until GraphQL diagnostics arrive, like
the misconfiguration suite already does.

Also ignore the regenerated introspection.d.ts fixture in prettier:
lint-staged reformatted the committed copy, so every test run left the
tree dirty by regenerating it in the generator's own style.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@JoviDeCroock
JoviDeCroock merged commit 555c919 into main Jul 5, 2026
1 check passed
@JoviDeCroock
JoviDeCroock deleted the JoviDeCroock/update-dependencies branch July 5, 2026 13:07
@github-actions github-actions Bot mentioned this pull request Jul 5, 2026
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.

2 participants