Skip to content

Watch for TypeScript 7 support in vue-tsc/Volar, then lift the typescript hold #49

Description

@wormeyman

Third of the migration-shaped holds, alongside #44 (Verify/xunit) and #47 (WebApp OpenAPI). Unlike those two, this one is gated on upstream rather than on work in this repo, so it is a watch item rather than a plan.

What is held

src/vue/package.json has typescript: ^6.0.3, and .github/renovate.json5 holds it at allowedVersions: "<7.0.0".

Why

TypeScript 7 is the Go rewrite. It does not ship the programmatic compiler API that vue-tsc/Volar embeds, so Vue template type-checking breaks - and vue-tsc is load-bearing here: npm run build runs vue-tsc before vite build, so this is a build-time dependency, not just an editor concern.

The trap worth knowing. vue-tsc's peer range is an open >=5.0.0, which would happily install TypeScript 7 without complaint. A permissive peer range is not the same as support. Without the Renovate hold, a bot would propose 6.x -> 7.x on that basis and the peer range would not stop it.

Unlock condition

Both of these, together:

  1. TypeScript 7.1 ships the programmatic compiler API.
  2. vue-tsc/Volar announces support for it.

Neither is in this repo's control. The official TS 7 migration story is a dual-install alias, which is not something to adopt here while vue-tsc cannot type-check .vue files against it.

Expected cost when it unblocks

Small - the estimate is roughly a 15-minute bump, since nothing in this codebase depends on TS internals directly. The hold exists because of the toolchain underneath, not because of our own code. That asymmetry is the reason this is worth tracking rather than just re-deriving it every time the bot proposes it.

Done when

typescript and vue-tsc are both current, the <7.0.0 ceiling is removed from .github/renovate.json5, and npm run build type-checks clean.

References

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions