Set up the package, compiler and quality gates before any app code so every later change lands under the same rules: Node 26 via .nvmrc and engines, TypeScript 7 in strict mode with the extra strictness flags, swc for transpiling, oxlint with type-aware, Unicorn and security rules (eslint-plugin-security and no-unsanitized loaded as JS plugins), oxfmt, Vitest with a 100% coverage gate, and husky hooks that run the checks and commitlint. Type escape hatches, lint suppressions and coverage exemptions are banned unless registered in exceptions.json. scripts/audit-exceptions enforces that, and its test runs it against this repository, so an unregistered suppression fails both the pre-commit hook and CI. npm 11 blocks dependency install scripts by default. None are needed: Electron downloads its binary on first use, swc's native binding comes from optionalDependencies, fsevents ships prebuilt, and electron-winstaller only serves Squirrel installers, which aren't used. They are recorded as denied in allowScripts.
576 B
576 B
mdts Desktop
A desktop app for browsing and previewing folders of Markdown, built on mdts and Electron. Work in progress.
Development
Requires Node 26 (see .nvmrc) and npm 11.
npm ci
npm run check # format, lint, typecheck, exception audit
npm run test:unit # Vitest, 100% coverage gate
Type-safety escape hatches, lint suppressions and coverage exemptions are only
allowed with an entry in exceptions.json; npm run audit:exceptions enforces
this.
License
MIT. mdts is MIT-licensed by its authors.