forked from ks-no/workshop-ai
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtsconfig.client-base.json
More file actions
36 lines (35 loc) · 1.58 KB
/
Copy pathtsconfig.client-base.json
File metadata and controls
36 lines (35 loc) · 1.58 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
{
// Felles innstillinger for all nettleserkode. Filene listes ikke her - hver
// client/-katalog har sin egen tsconfig.json som utvider denne.
//
// Grunnen er hvordan editorer finner en config: tsserver (IntelliJ, WebStorm,
// VS Code, nvim) går oppover fra filen og leter etter en fil som heter nøyaktig
// «tsconfig.json». En config med et annet navn blir ikke funnet, og da faller
// editoren tilbake på standardvalg - uten DOM-lib og uten moduleDetection
// legacy. Resultatet var «Cannot find name renderTopNav» på hver eneste linje
// som brukte noe fra felles.ts.
//
// Nettleserkoden trenger stikk motsatt miljø av Node-siden: DOM i stedet for
// node:*, og ingen @types/node - uten "types": [] ville process og Buffer se
// ut som om de fantes i en nettleser.
//
// Filene serveres som .ts og type-strippes ved servering
// (apps/shared/assets.ts). Derfor gjelder samme regel som på Node-siden:
// bare syntaks som kan viskes ut, se erasableSyntaxOnly.
"compilerOptions": {
"target": "esnext",
"module": "preserve",
"moduleResolution": "bundler",
"lib": ["esnext", "dom", "dom.iterable"],
"types": [],
"strict": true,
"skipLibCheck": true,
"noEmit": true,
"erasableSyntaxOnly": true,
// Sidene er statisk HTML med globale funksjoner, ikke moduler - et bevisst
// valg, se filhodet i client/felles.ts. Uten "legacy" ville TS regnet hver
// .ts-fil som en modul (rot-package.json har "type": "module"), og da er
// felles.ts sine funksjoner usynlige for sidescriptene.
"moduleDetection": "legacy"
}
}