Contributing
Simfinity.js is maintained by Simtlix and released under the Apache 2.0 License. Contributions to the library, examples, and documentation are welcome.
Work on the library
Clone the repository and install the locked dependencies:
git clone https://github.com/simtlix/simfinity.js.git
cd simfinity.js
npm ciRead AGENTS.md and the relevant files in .cursor/rules/ before changing behavior. The project uses ES modules, Mongoose 8, GraphQL 16, and Vitest.
npm run lint
npm testAdd focused coverage for critical behavior and regressions. Keep the public documentation synchronized with API changes. A useful pull request explains the affected behavior, the change, and how it was validated.
Improve the documentation
Use Node.js 22 or newer for the website tooling:
npm run docs:install
npm run docs:devEdit Markdown pages in docs/guide, docs/reference, or docs/resources. Add new pages to the sidebar in docs/.vitepress/config.mts. The site's dependencies are separate from the library's dependencies.
Before submitting:
npm run docs:build
npm run docs:previewCheck links, search, mobile navigation, code examples, and both color themes. The website maintainer guide covers the layout, assets, build configuration, and publication workflow.
Report a problem
Open an issue on GitHub with your package version, Node version, the relevant type definitions, the GraphQL operation, and the observed result. Include a minimal reproduction when possible. Remove credentials and private data from examples.