Thanks for your interest in contributing! This guide will help you get started.
-
Fork the repository and clone your fork:
git clone https://github.com/<your-username>/esbuild-coffeescript.git cd esbuild-coffeescript
-
Install dependencies:
pnpm install
This also sets up Lefthook git hooks via the
preparescript. -
Make sure everything works:
pnpm run ci
Create a feature branch for your changes:
git checkout -b feature/my-changeThis project uses Ultracite (powered by Biome) for formatting and linting. A pre-commit hook runs automatically to format staged files.
To manually check or fix issues:
# Check for problems
pnpm run check
# Auto-fix formatting and lint issues
pnpm run fixAll changes should include tests. We use Vitest as the test runner.
# Run tests once
pnpm test
# Watch mode during development
pnpm test:watch
# Generate coverage report
pnpm test:coverageThe project compiles TypeScript to JavaScript:
pnpm buildBefore pushing, run the same checks that CI runs:
pnpm run ciThis runs lint checks, tests, and the build in sequence.
- Make sure
pnpm run cipasses locally. - Write a clear PR description explaining what changed and why.
- Keep PRs focused -- one logical change per PR.
- If your PR fixes an open issue, reference it in the description (e.g.,
Fixes #123).
When opening an issue, include:
- Node.js and pnpm versions
- esbuild and esbuild-coffeescript versions
- A minimal reproduction
- Expected vs. actual behavior
src/index.ts # Plugin source code
test/ # Test files
dist/ # Compiled output (git-ignored)
The plugin is a single-file esbuild plugin that compiles .coffee and .litcoffee files using the CoffeeScript compiler.
By contributing, you agree that your contributions will be licensed under the MIT License.