Contributing
Contributions via Issues and Pull Requests are welcome. Run the local checks before submitting and keep each change focused.
Naming Conventions
| Type | Convention | Example |
|---|---|---|
| Files / directories | kebab-case | game.launcher.service.ts |
| Classes / interfaces / types | PascalCase | GameLauncherService |
| Functions / variables | camelCase | startGame() |
| Constants | UPPER_SNAKE_CASE | MAX_RETRY_COUNT |
Code Checks
bash
# ESLint
npm run lint
# Prettier
npm run format
# Type checking (web / node configs)
npx tsc --noEmit -p tsconfig.web.json
npx tsc --noEmit -p tsconfig.node.jsonTests
bash
# Run all unit tests (Vitest)
npm test
# Watch mode
npm run test:watch
# Coverage
npm run test:coverageNote
Make sure both npm test and the two tsc configurations pass before submitting, so type errors and failing cases do not reach main.
Submitting a Pull Request
- Fork the repository and branch off
main - Keep the change focused on one purpose; avoid unrelated formatting churn
- Explain why the change is needed and its impact, with reproduction steps or screenshots
- Confirm CI passes, then open the PR for review
Related Documents
- Developer Guide — environment setup, builds and dependencies
- Architecture — layers, IPC, database and auth flow
- Changelog — release history