- 🎨 add Spring-like decorators (@JsonSerialize, @JsonDeserialize, etc.) - ⚙️ implement JsonMapper and metadata storage for transformations - 🧪 add comprehensive test suite using Vitest - 📝 add README, CONTRIBUTING, and API documentation - 👷 setup GitHub Actions CI workflow - 🔧 configure TypeScript and project settings
2.2 KiB
2.2 KiB
Contributing to Optimus
Thank you for your interest in contributing to Optimus! We welcome all contributions, from bug reports to new features and documentation improvements.
Development Setup
To get started with development, follow these steps:
-
Clone the repository:
git clone https://github.com/Avalon-Vanguard/optimus.git cd optimus -
Install dependencies:
npm install -
Run the demo: You can run the example script to see the library in action:
npm run demo
Project Structure
src/: Contains the source code.decorators.ts: Custom decorators (@JsonSerialize, @JsonDeserialize, etc.).interfaces.ts: Core interfaces for serializers and deserializers.utils.ts:JsonMapperutility for serialization and validation.index.ts: Public API entry point.
src/example.ts: Demonstrates the usage of the library.
Coding Guidelines
- TypeScript: This project is written in TypeScript. Ensure all new code is properly typed.
- Documentation: Use JSDoc for all public functions, classes, and interfaces.
- Style: Follow the existing coding style and formatting.
- Internal Mapping Engine: The project uses a custom, dependency-free engine for mapping and validation. Do not add external dependencies without project-wide discussion.
- Validation: Use internal validation decorators.
- Transformation: Leverage the internal
JsonMapperutility.
Pull Request Process
- Create a new branch for your feature or bug fix:
git checkout -b feat/your-feature-nameorfix/your-bug-fix. - Make your changes and ensure the code compiles.
- Add or update documentation as needed.
- Run the tests to verify your changes:
npm test. - Commit your changes with a descriptive message.
- Push your branch to GitHub and open a Pull Request.
Bug Reports and Feature Requests
Please use GitHub Issues to report bugs or suggest new features. Provide as much detail as possible, including steps to reproduce bugs and clear descriptions of feature requests.
By contributing to this project, you agree to abide by the terms of the ISC License.