jamx is a monorepo for small, composable TypeScript packages.
The packages in this repository are built around a consistent set of ideas:
- small APIs over large frameworks
- composition over deeply coupled abstractions
- explicit types and structured data over hidden behavior
- utilities that stay useful on their own and compose well together
Each package should be understandable in isolation, practical in day-to-day use, and easy to combine with the rest of the TypeScript ecosystem.
@jamx/http: composablefetchhelpers with interceptors, decoders, validation, and Railway-style results@jamx/logger: composable structured logging primitives for TypeScript and Node.js
packages/
http/
logger/
.changeset/
- Node.js 18+
pnpm10+
pnpm installpnpm buildpnpm testRun package scripts from the package directory or by filtering with pnpm.
Examples:
pnpm --filter @jamx/http test
pnpm --filter @jamx/logger buildVersioning and publishing are automated with Changesets via GitHub Actions.
To propose a package release, add a changeset in your branch:
pnpm changesetAfter that changeset is merged to master, the release workflow will create or
update the Changesets release PR. When that PR is merged, Changesets versions
and publishes the affected packages automatically.
Each package includes its own license file.