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 run typecheck |
Type-check with TypeScript (tsc --noEmit) |
npm run build:types |
Emit declarations from the JSDoc-typed sources into .types/ |
npm run build |
Rebuild all dist bundles and dist/index.d.ts |
npm run dev |
Start the playground dev server (Guchho) |
npm run playground:build |
Bundle the playground into playground/dist/ |
npm test |
Build, then run the test suite (node:test) |
Before submitting a PR, make sure:
npm run typecheckpassesnpm testpasses (all tests green)
exprify/
├── src/ # Source code (ESM)
├── test/ # Test files (node:test)
├── playground/ # Browser playground (Guchho, HTML-first)
├── 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 — 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). - 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.