Thank you for considering contributing to the Temporal Parser project!
- Clone the repository
- Install dependencies:
npm install
npm run build# Run tests once
npm test
# Watch mode
npm run test:watch
# With UI
npm run test:ui
# Coverage report
npm run test:coverage# Check for issues
npm run lint
# Auto-fix issues
npm run lint:fixnpm run clean
npm run buildtemporal-parser/
├── src/
│ ├── index.ts # Public API exports
│ ├── lexer.ts # Lexer implementation
│ ├── lexer-types.ts # Lexer type definitions
│ ├── parser.ts # Parser implementation
│ ├── parser-types.ts # Parser AST types
│ ├── errors.ts # Error classes
│ ├── combineTimezoneOffsets.ts # Timezone offset combiner
│ ├── helpers/ # Helper utilities
│ └── **/*.test.ts # Test files
├── dist/ # Build output (generated)
└── coverage/ # Coverage reports (generated)
- Write tests for all new features
- Maintain or improve code coverage (currently >91%)
- Use descriptive test names
- Group related tests with
describeblocks - Test both success and error cases
- Follow the existing code style
- Use TypeScript strict mode
- Add JSDoc comments for public APIs
- Keep functions focused and small
- Prefer explicit types over inference for public APIs
Follow conventional commits:
feat:New featuresfix:Bug fixesdocs:Documentation changestest:Test additions/changesrefactor:Code refactoringchore:Build/tooling changes
- Fork the repository
- Create a feature branch
- Make your changes
- Run tests and linting
- Update documentation if needed
- Submit a pull request
Feel free to open an issue for questions or discussions.