Monorepo for @crm/plasma — a fully type-safe HTTP client wrapper around fetch with zero codegen.
plasma/
├── packages/
│ └── plasma/ # @crm/plasma — the published package
├── apps/ # Internal apps (docs, playground, etc.)
├── turbo.json # Turborepo task config
├── biome.json # Linter & formatter
└── pnpm-workspace.yaml
| Tool | Version |
|---|---|
| Node.js | ≥ 20 |
| pnpm | 10.30.0 |
# Install dependencies
pnpm install
# Build all packages
pnpm build
# Run tests
pnpm turbo run test --filter @crm/plasma
# Type check
pnpm check-types
# Lint
pnpm lint
# Format
pnpm format| Script | Description |
|---|---|
pnpm build |
Build all packages and apps |
pnpm dev |
Start dev mode for all packages and apps |
pnpm lint |
Lint all packages |
pnpm format |
Format all .ts, .tsx, .md files |
pnpm check-types |
Run TypeScript type checking |
pnpm changeset |
Create a new changeset |
pnpm changeset:version |
Consume changesets and bump versions |
pnpm release |
Build and publish to npm |
This repo uses Changesets to manage versions and changelogs.
After making changes to @crm/plasma, run:
pnpm changesetSelect the package, choose the bump type (patch / minor / major), and describe what changed. Commit the generated .md file inside .changeset/ along with your code.
When a PR with pending changesets is merged to main, the Release workflow automatically:
- Opens a "chore: version packages" PR that bumps
package.jsonversions and updatesCHANGELOG.md - When that PR is merged, publishes the package to npm
pnpm changeset # create changeset
pnpm changeset:version # bump versions + update CHANGELOG
pnpm release # build + publish to npmFull type-safe HTTP client wrapper around fetch. See the package README for detailed API docs.