mobile/tsconfig.json
Rama main · réplica de lectura del repositorio original.
{
// Standalone, not an `extends` of the repo root. The root tsconfig is tuned
// for a Node server plus a React client and pulls in `client/`, `server/` and
// `shared/`; this package resolves its imports from `mobile/node_modules`
// (its own Capacitor copy) rather than walking up. The one thing kept in
// lockstep with the root is strictness: nothing here is allowed to be looser
// than the app it fronts.
//
// WHY `noUncheckedIndexedAccess` AND `exactOptionalPropertyTypes` CAME OFF
// (3.22, the pocket vault). The shell stopped being only its own two screens:
// `src/pocket/` runs the vault inside the WebView and imports `shared/` — the
// same parsers, scanners and wire types the server and the web client use.
// TypeScript checks an imported file under the IMPORTING project's options,
// so those two flags put 285 errors on 18 files that the repo's own
// `npm run typecheck` passes, none of them about this package's code. A
// package that renders a second verdict on somebody else's file is not
// stricter, it is noisier: the flags would have been switched off one
// `?? ""` at a time, in files this package does not own. So the rules are
// the repo's rules, exactly, and the difference is written down here rather
// than paid for in `shared/`.
"compilerOptions": {
"target": "ES2022",
"module": "ESNext",
"moduleResolution": "bundler",
"allowImportingTsExtensions": true,
"lib": ["ES2022", "DOM", "DOM.Iterable"],
"types": ["vite/client"],
"resolveJsonModule": true,
"strict": true,
"noUnusedLocals": true,
"noUnusedParameters": true,
"noFallthroughCasesInSwitch": true,
"isolatedModules": true,
"verbatimModuleSyntax": true,
"skipLibCheck": true,
"noEmit": true
},
"include": ["src", "vite.config.ts", "capacitor.config.ts"]
}