| 1 | { |
| 2 | // Type checking without a build step. Nothing here compiles anything: the |
| 3 | // browser loads these .js files exactly as they are on disk, and |
| 4 | // `npm run check` only reads them. |
| 5 | // |
| 6 | // Shared by the two realms the manifest actually creates — see |
| 7 | // jsconfig.json (sidebar document) and jsconfig.sw.json (service worker). |
| 8 | // They are separate projects because they are separate global scopes: both |
| 9 | // declare `const api` at the top level, and only one of them has a `window`. |
| 10 | "compilerOptions": { |
| 11 | "checkJs": true, |
| 12 | "noEmit": true, |
| 13 | "target": "ES2022", |
| 14 | "strict": true, |
| 15 | "noFallthroughCasesInSwitch": true, |
| 16 | |
| 17 | // These files are classic scripts, not modules — one shared global scope, |
| 18 | // which is how sidebar.js reaches Themes, Sanitize and tbPickElement |
| 19 | // without importing anything. Nothing here may introduce import/export |
| 20 | // syntax, or that stops being true. |
| 21 | "types": [] |
| 22 | } |
| 23 | } |