ovr is open source with the MIT license. Feel free to create an issue on GitHub if you have an idea for the project to get feedback before working on a pull request.
- Fork the project on GitHub
- The project requires Node and npm for development
- Install dependencies from the root directory
npm install - Start the TypeScript and Vite development servers together by running
npm run devfrom the root directory.
npm run dev- Start TypeScript and Vite development serversnpm run check- Run TypeScript type checking across all packagesnpm run build- Build all packages
npm run test- Run all testsnpm run test:dev- Run tests in watch mode- Run a single test:
npm test -- <test-file>(e.g.,npm test -- packages/ovr/src/app/index.test.ts)
- Casing - try to match built-in JS methods/casing whenever possible
- Variables including constants are camelCase
- Classes and types are PascalCase
- File names are kebab-case
- Use static methods for utility functions
- Use
Object.assign()for shallow object merging - Use private
#methods for internal class helpers - Leverage Web standards (Request, Response, Headers, URL)
- Use async generators (
async *) for streaming APIs - Use
for await...offor iterating async iterables
- Monorepo with apps and packages directories
- Main package:
packages/ovr/(core framework) - Documentation app:
apps/docs/ - Each module in
src/has its own directory withindex.tsandindex.test.ts
- The codebase heavily uses private
#class syntax - respect this pattern - Always include
.jsextensions in imports - Type safety is paramount - use generics and
readonlyappropriately - The framework is minimal and leverages Web Standards extensively
- Full documentation for ovr in markdown can be found at https://ovrjs.com/llms.txt