Skip to content

v2.0.0-beta.73

Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 18 Mar 12:23
· 2 commits to main since this release

What's Changed

Bug Fixes

  • define: Preserve __schema property on directive objects (was always undefined)
  • codegen: Correct defu merge order so user config takes priority over defaults
  • routes/yoga: Read endpoint from moduleConfig instead of hardcoded /api/graphql
  • routes/apollo: Cache h3Handler to avoid recreation per request
  • routes/health: Use direct GraphQL execution instead of self-fetch (fixes serverless)
  • routes/debug: Add runtime production guard
  • rollup: Remove dead return that disabled chunking; add Rolldown codeSplitting compat
  • extend: Warn and skip instead of crashing when package config not found
  • dev: Fix rescan race condition with extend packages

Refactoring

  • Immutable scan state: Replace 6 mutable arrays with frozen GraphQLScanState snapshots — atomic updates, no race conditions
  • Type unification: GenImportScannedResolver as single source of truth; core types now extend actual @graphql-codegen plugin types
  • Codegen cleanup: Remove custom plugin wrappers (pluginContent, typedDocumentStringPlugin), use string prepend instead. Remove documentMode: 'string' default and TypedDocumentString workaround
  • Setup orchestration: Monolithic setupNitroGraphQL → resolver chain pattern (each step is an independent function)
  • Module splitting: Split 4 large files (codegen 311 LOC, virtual 291 LOC, types 536 LOC, client 665 LOC) into focused modules
  • Security: Unified resolveSecurityDefaults() shared by Yoga and Apollo factories
  • Virtual modules: Eager snapshots instead of lazy closures (eliminates race condition root cause)
  • Path resolution: 7 separate regexes → single /{(\w+)}/g pattern with lookup table
  • Dead code removal: 30+ unused constants, duplicate types, dead barrels, deprecated functions deleted (252 → 248 files, 423 → 404 kB)
  • File renames: config.tscreate-config.ts, plugin.tsfile-header.ts, common.tsfile-scanner.ts, etc.
  • DirectiveParser: Class → pure functions with typed OxcNode interfaces (eliminates 15+ any types)

Playgrounds

  • Remove apollo playground (federation already tests both frameworks)
  • Remove webhook playground (empty)
  • Simplify vite playground (deduplicate User CRUD)

Infrastructure

  • Upgrade Vite to 8.0.0 stable
  • Fix CI lint errors
  • Update coverage badge to 71%

Full Changelog: v2.0.0-beta.72...v2.0.0-beta.73