HeliumTS is under active development and may have bugs or breaking changes. Report issues on GitHub.

Migrate from 0.10.2

The 0.11.0 release replaces browser RPC imports from heliumts/server with a generated module in your application. Use matching framework and scaffolder versions when upgrading.

Update browser imports

1// src/pages/tasks.tsx
2import { useFetch, useCall } from "heliumts/client";
3import { getTasks, saveTask } from "../rpc.generated";
4
5// Server implementations stay in src/server.
6// Keep importing defineMethod from "heliumts/server" there.

Delete the obsolete generated src/types/heliumts-server.d.ts. Do not edit the new generated module by hand or import application server implementations into browser components.

%npx helium typegen
%npx helium check
%npm run build

typegen discovers explicit server exports without executing application modules. It supports aliases and relative server re-exports; arbitrary wrapper factories, computed calls and tsconfig path aliases are not inferred. Keep an explicit defineMethod export at the discovery boundary.

Verify behavior, not just types

  • Keep server input parsers, authentication, ownership checks and rate limits. TypeScript alone cannot validate a network request.
  • Catch rejected mutation promises in event handlers and render the hook’s error state.
  • Invalidate detail, lists and summaries affected by a successful mutation. Test returning to a cached page.
  • Retain streaming cancellation and cleanup. Rebuild and deploy matching clients and servers.

Scaffolding and compatibility

The new scaffolder defaults to a minimal app. Add -- --template examples for the larger demonstration template. Normal Helium commands retain Node 20 support subject to your Vite version’s requirements.

Coming from 0.9? Apply the HTTP transport migration too.