Runtime Model
@tsonic/express is documented as one package, not as a public split.
Usage model
Use it as a normal first-party source package in JS-surface projects.
Typical stack:
@tsonic/js@tsonic/nodejs@tsonic/express
What the package exports
The package exports the normal authored surface directly from src/index.ts,
including:
expressApplicationRouterRequestResponsedispatch- typed handler interfaces such as
RequestHandler,NextFunction, andParamHandler
Ownership
The package owns:
- host-independent routing and middleware behavior
- host-bound request/response substrate
- live
listen(...)behavior in the same canonical package
Practical shape
Two usage styles matter today:
In-process dispatch
await express.dispatch(app, context);
This is useful for tests, adapters, and lower-level host integration.
Live server hosting
const server = app.listen(0, "127.0.0.1");
This is the normal application path for HTTP services.
What users should expect from the package
The package implements:
- route registration and matching
- middleware chaining
- param handlers
- error middleware
- request helpers
- response helpers such as
send,json,jsonp,status, and cookies - application settings, views, and render hooks
- host-bound HTTP handling
What that means in practice
Users should think in terms of:
- one package dependency
- one authored TypeScript source package
- one runtime model expressed through package code and package metadata