Thank you for your interest in contributing!
git clone https://github.com/ABfry/instant-room.git
cd instant-room
npm installRequirements: Node.js 22
| Command | Description |
|---|---|
npm run build |
Build with tsup |
npm test |
Run tests (vitest) |
npm run test:watch |
Run tests in watch mode |
npm run test:coverage |
Run tests with coverage |
npm run lint |
Lint source files (eslint) |
npm run format |
Format source and test files (prettier) |
npm run typecheck |
Type-check with tsc |
Make sure all checks pass locally:
npm run typecheck
npm run lint
npm testThese same checks run in CI on every pull request.
Use the following format:
feature/<issue-number>-<short-description>
Examples: feature/1-domain-types-errors-url, feature/14-license
This project follows Conventional Commits.
<type>: <description>
Types:
feat— new featurefix— bug fixdocs— documentation onlytest— adding or updating testsrefactor— code change that neither fixes a bug nor adds a featurechore— tooling, config, dependenciesci— CI/CD changes
Examples:
feat: add RoomId value object with validation
fix: validate length parameter in RoomId.generate()
docs: add MIT LICENSE file
test: add RoomId tests for generate, from, buildUrl, equals
ci: Add CI workflow and fix build config issues
- Create an issue (or pick an existing one)
- Create a branch from
mainfollowing the naming convention above - Make your changes and commit using Conventional Commits
- Push and open a pull request using the PR template
- Reference the related issue (e.g.
Closes #3) - Wait for CI to pass and a review
- TypeScript strict mode
- Prettier: no semicolons, single quotes, trailing commas, 80 char line width, 2 space indent
- ESLint:
no-explicit-anyis an error, unused vars prefixed with_are allowed