Add .oxfmtignore to skip generated bindings and wasm-pack output. Add npm format script, update DEVELOPMENT.md for Vite+ toolchain, and format all non-generated files with oxfmt. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1.8 KiB
Developer Setup
Yaak is a combined Node.js and Rust monorepo. It is a Tauri project, so uses Rust and HTML/CSS/JS for the main application but there is also a plugin system powered by a Node.js sidecar that communicates to the app over gRPC.
Because of the moving parts, there are a few setup steps required before development can begin.
Prerequisites
Make sure you have the following tools installed:
Check the installations with the following commands:
node -v
npm -v
vp --version
rustc --version
Install the NPM dependencies:
npm install
Run the bootstrap command to do some initial setup:
npm run bootstrap
Run the App
After bootstrapping, start the app in development mode:
npm start
SQLite Migrations
New migrations can be created from the src-tauri/ directory:
npm run migration
Rerun the app to apply the migrations.
Note: For safety, development builds use a separate database location from production builds.
Lezer Grammar Generation
# Example
lezer-generator components/core/Editor/<LANG>/<LANG>.grammar > components/core/Editor/<LANG>/<LANG>.ts
Linting and Formatting
This repo uses Vite+ for linting (oxlint) and formatting (oxfmt).
- Lint the entire repo:
npm run lint
- Format code:
npm run format
Notes:
- A pre-commit hook runs
vp lintautomatically on commit. - Some workspace packages also run
tsc --noEmitfor type-checking. - VS Code users should install the recommended extensions for format-on-save support.