First off, thanks for taking the time to contribute!
Contributions are welcome. It's reporting a bug, discussing improvements, or submitting a pull request.
git clone https://github.com/code-hemu/exprify.git
cd exprify
npm install
npm run build| Command | Description |
|---|---|
npm test |
Run Jest test suite |
npm run test:coverage |
Run tests with coverage report |
npm run lint |
Lint source with ESLint |
npm run lint:fix |
Auto-fix lint issues |
npm run format:check |
Check formatting with Prettier |
npm run format |
Auto-format all files with Prettier |
npm run typecheck |
Type-check with TypeScript (tsc --noEmit) |
npm run build |
Clean and rebuild all dist bundles |
Before submitting a PR, make sure:
npm run lintpassesnpm run typecheckpassesnpm testpasses (all tests green)npm run format:checkpasses
exprify/
├── src/ # Source code (ESM)
├── test/ # Jest test files
├── dist/ # Build output (ESM, CJS, UMD, minified)
├── docs/ # Documentation assets
└── .github/ # CI workflows and config
- Fork the repository.
- Create a branch:
git checkout -b feature/your-feature— use prefixes likefeature/,fix/, ordocs/. - Make your changes — keep the PR focused on a single concern.
- Run all checks — lint, typecheck, tests, format.
- Commit your changes with a clear message:
git commit -m "Add your feature" - Push your branch:
git push origin feature/your-feature - Open a pull request against the
masterbranch.
Your PR will be reviewed. Please respond to any feedback — it's appreciated, not required.
- Code is formatted with Prettier (see
.prettierrc). - Linting rules are enforced via ESLint (see
eslint.config.js). - The project uses ESM (
"type": "module") — useimport/exportsyntax. - Follow the patterns you see in existing source and tests.
Report bugs and request features via GitHub Issues.
When reporting a bug, include:
- A clear title and description
- Steps to reproduce
- Expected vs actual behavior
- Environment (Node version, browser, OS)
- Minimal example code if possible
By contributing, you agree that your contributions will be licensed under the GPL-3.0 License.