svelte-check-rs
v0.6.8
Published
High-performance Svelte type-checker and linter
Readme
svelte-check-rs
A high-performance, Rust-powered diagnostic engine designed as a drop-in replacement for svelte-check.
Note: This tool only supports Svelte 5+. For Svelte 4 or earlier, use the official svelte-check.
Features
- 🚀 Fast: 10-100x faster than
svelte-checkthrough Rust's zero-cost abstractions and parallel processing - ✅ Accurate: Full feature parity with
svelte-check- same diagnostics, same behavior - 🔄 Compatible: Drop-in CLI replacement, identical output formats
- 🔧 Maintainable: Clean separation of concerns, comprehensive test suite
Installation
npm (recommended)
npm install -D svelte-check-rsPostinstall downloads the binary. If lifecycle scripts are blocked, trust the package:
# pnpm
pnpm --config.ignore-scripts=false i -D svelte-check-rs
# bun
bun pm trust svelte-check-rsThen add to your package.json scripts:
{
"scripts": {
"check": "svelte-check-rs"
}
}Or run directly with npx:
npx svelte-check-rsmacOS / Linux
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/pheuter/svelte-check-rs/releases/latest/download/svelte-check-rs-installer.sh | shWindows (PowerShell)
irm https://github.com/pheuter/svelte-check-rs/releases/latest/download/svelte-check-rs-installer.ps1 | iexUsage
# Check current directory
svelte-check-rs
# Check specific directory
svelte-check-rs --workspace ./my-project
# Watch mode
svelte-check-rs --watch
# Different output formats
svelte-check-rs --output json
svelte-check-rs --output machine
svelte-check-rs --output human-verboseCLI Options
| Option | Description |
|--------|-------------|
| --workspace <PATH> | Working directory (default: .) |
| --output <FORMAT> | Output format: human, human-verbose, json, machine |
| --tsconfig <PATH> | Path to tsconfig.json |
| --threshold <LEVEL> | Minimum severity: error, warning |
| --watch | Watch mode |
| --preserveWatchOutput | Don't clear screen in watch mode |
| --fail-on-warnings | Exit with error on warnings |
| --diagnostic-sources <LIST> | Which diagnostics: js, svelte |
| --ignore <PATTERNS> | Glob patterns to ignore |
| --no-cache | Disable per-project cache + incremental builds (fresh run) |
| --disable-sveltekit-cache | Disable cached .svelte-kit mirror |
Caching: By default, svelte-check-rs writes transformed files and tsgo incremental build info to node_modules/.cache/svelte-check-rs/. Use --no-cache for a fully fresh run (useful in CI).
Project Structure
crates/
├── svelte-parser/ # Lexer + parser + AST types
├── source-map/ # Position tracking and mapping
├── svelte-transformer/ # Svelte → TypeScript transformation
├── svelte-diagnostics/ # A11y, CSS, and component checks
├── tsgo-runner/ # tsgo process management
└── svelte-check-rs/ # CLI binaryDevelopment
# Build all crates
cargo build
# Run tests
cargo test
# Run clippy
cargo clippy --all-targets -- -D warnings
# Format code
cargo fmtLicense
MIT License - see LICENSE for details.
