Contributing
❤️ Sustainability Matters – Sponsorship directly funds maintenance, regression fixes, and new feature velocity.
Tests use Vitest; comprehensive generation tests cover multi-provider & feature flags. pnpm test runs every test file — there is no curated-subset script, because a hand-maintained file list drifts and quietly stops running new tests. Narrow it on the command line instead: pnpm test tests/config.test.ts, or pnpm test -t 'some test name'.
A Vitest globalSetup builds lib/ once before the workers spawn, so you don't need a separate build step first. It also sweeps the test-env-* scratch directories before and after each run; set KEEP_TEST_ENVS=1 to keep them for debugging. No database is needed — the provider suites only run prisma generate, they never connect.
Always use pnpm — npm and npx are not supported in this repo.
Typical workflow:
pnpm install
pnpm build
pnpm test
pnpm test does not run lint or type checking. Run those separately:
pnpm format # or format:check
pnpm lint
pnpm typecheck
All four (format, lint, typecheck, test) should pass before you open a PR. PRs target master and commits follow Conventional Commits (type(scope): subject).
Add new config surface:
- Extend parser + defaults.
- Write focused test (see
tests/config.test.ts). - Update docs (this site) & add recipe if relevant.
Semantic release determines version bumps from conventional commits.
Pro features live in the private src/pro git submodule. Core contributors do not need it — building and testing the free generator works without it. Team members with access run pnpm setup to initialise the submodule and pnpm sync:pro to update it.
Docs site preview: pnpm docs:dev, production build: pnpm docs:build.
See CONTRIBUTING.md for the full workflow, commit scopes, and release process.
Support Roadmap & Impact
Sponsorship accelerates:
- Prisma release compatibility validation
- Performance profiling & optimization
- Advanced JSON / Bytes features & recipes
- Documentation polish & DX tooling