Documentation
Contributing

Contributing

We love contributions! Here's how you can help improve omni-rest.

Getting Started

To contribute, you'll need Node.js 18+, npm/pnpm, Git, and a Prisma project for testing.

Setup Repository

Clone the repository and install dependencies:

git clone https://github.com/Abdulllah321/omni-rest.git
cd omni-rest
npm install

Build the Project

npm run build

Run Tests

npm test

Start Development Mode

npm run dev

Development Workflow

Making Changes

Create a feature branch

git checkout -b feature/your-feature-name

Make your changes

Edit the source code inside src/. Be sure to follow our code style guidelines below.

Write/Update tests

Add tests for your features in the test/ directory.

Build and Test

npm run build
npm test

Commit

Use descriptive commit messages:

git commit -m "feat: add bulk update support for all adapters"

Code Style Guidelines

We follow these conventions:

  • TypeScript: Use TypeScript for all code (no any unless absolutely necessary)
  • Naming: camelCase for functions/variables, PascalCase for classes/types
  • JSDoc: Add JSDoc comments for public functions
  • Functions: Keep functions focused and under 50 lines when possible
  • Async/Await: Use async/await, not callbacks
  • Imports: Group imports rationally (external, internal, types)

Areas for Contribution

Submitting Changes

Pull Request Process

Update Documentation

Changes in docs/ and README.md must be updated if applicable.

Add Tests

New features must be accompanied by new tests.

Update Changelog

Add an entry to CHANGELOG.md.

Build & Test

Ensure npm run build && npm test passes successfully.

Create PR

Submit a Pull Request with a clear title and description using our PR template.

⚠️

Your PR will be reviewed for Code Quality, Testing, Documentation, Performance, and Compatibility before merging.

Reporting Bugs & Feature Requests

Please use GitHub Issues with the provided templates to report bugs or request features. Ensure you provide a minimal reproduction repository or code snippet for bugs.

License

By contributing, you agree your code will be licensed under the MIT License.


🎉

Thank you for contributing to omni-rest!