-
Notifications
You must be signed in to change notification settings - Fork 3
/
tsconfig.json
179 lines (164 loc) · 6.97 KB
/
tsconfig.json
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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
{ // https://www.typescriptlang.org/tsconfig
// This file is used by your code editor,
// and bundle-require to transpile the tsup.config.ts file
"compilerOptions": {
"allowJs": true,
"allowSyntheticDefaultImports": true,
// Sets a base directory from which to resolve bare specifier module names.
// This resolution has higher priority than lookups from node_modules.
// This feature was designed for use in conjunction with AMD module
// loaders in the browser, and is not recommended in any other context.
// As of TypeScript 4.1, baseUrl is no longer required to be set when
// using paths.
"baseUrl": ".",
"declaration": false,
"declarationMap": false,
"downlevelIteration": true,
"esModuleInterop": true,
"experimentalDecorators": true,
"importHelpers": true,
"importsNotUsedAsValues": "remove",
"inlineSourceMap": false,
"inlineSources": false,
"lib": [
//"es5",
//"es6", // alias for es2015
//"es7", // alias for es2016
//"es2015",
"ES2015.Core", // string.startsWith
//"es2016",
"ES2016.Array.Include",
//"es2017",
//"es2018",
//"es2019",
//"es2020",
//"es2021",
//"esnext",
//"ScriptHost",
//"WebWorker"
],
"listEmittedFiles": false,
"listFiles": false,
"module": "commonjs",
"moduleResolution": "node",
"noEmitOnError": true, // Do not emit compiler output files like JavaScript source code, source-maps or declarations if any errors were reported.
"noErrorTruncation": true,
"noImplicitAny": false,
"noPropertyAccessFromIndexSignature": true,
"noUncheckedIndexedAccess": true,
"noUnusedLocals": false,
"noUnusedParameters": true,
"outDir": "build/tsc",
// A series of entries which re-map imports to lookup locations relative
// to the baseUrl if set, or to the tsconfig file itself otherwise.
"paths": {
// Development (should be commented out when commiting)
// "@enonic/js-utils/*": ["../enonic-js-utils/src/*"],
// Production (should be commented in when commiting)
// "@enonic-types/lib-explorer/*": ["./symlinks/lib-explorer/src/main/resources/lib/explorer/types/*"],
"@enonic-types/lib-explorer/*": ["../lib-explorer/src/main/resources/lib/explorer/types/*"],
"@enonic/js-utils": ["./node_modules/@enonic/js-utils"],
"@enonic/js-utils/*": ["./node_modules/@enonic/js-utils/*"],
"@enonic/nashorn-polyfills": ["./src/main/resources/lib/nashorn/index.ts"],
// "/constants": ["./src/main/resources/constants"], // Doesn't work
"/lib/licensing": ["./src/main/resources/lib/licensing.ts"],
// "/lib/xp/*": ["./node_modules/@enonic-types/lib-*"],
// "/webapp/*": ["./src/main/resources/webapp/*"], // Doesn't work
// "/*": ["./src/main/resources/*"],
},
"preserveWatchOutput": false,
"pretty": true,
"removeComments": true,
"resolveJsonModule": true,
// Default: The longest common path of all non-declaration input files.
//
// If composite is set, the default is instead the directory containing
// the tsconfig.json file.
//
// When TypeScript compiles files, it keeps the same directory structure
// in the output directory as exists in the input directory.
//
// Importantly, rootDir does not affect which files become part of the
// compilation. It has no interaction with the include, exclude, or
// files tsconfig.json settings.
//
// Note that TypeScript will never write an output file to a directory
// outside of outDir, and will never skip emitting a file. For this
// reason, rootDir also enforces that all files which need to be emitted
// are underneath the rootDir path.
// "rootDir": "../",
// Using rootDirs, you can inform the compiler that there are many
// “virtual” directories acting as a single root. This allows the
// compiler to resolve relative module imports within these “virtual”
// directories, as if they were merged in to one directory.
//
// This does not affect how TypeScript emits JavaScript, it only
// emulates the assumption that they will be able to work via those
// relative paths at runtime.
//
// rootDirs can be used to provide a separate “type layer” to files that
// are not TypeScript or JavaScript by providing a home for generated
// .d.ts files in another folder. This technique is useful for bundled
// applications where you use import of files that aren’t necessarily
// code.
// "rootDirs": [ // TODO make a separate test/tsconfig.json
// "test"
// ],
// Even though the setting disables type checking for d.ts files,
// TypeScript still type checks the code you specifically
// refer to in your application's source code.
"skipLibCheck": true, // Disable type checking for node_modules
"sourceMap": false,
"strict": false,
"strictNullChecks": false,
// There are actually two "targets"
// 1. The environment tsup runs in (set in this file)
// 2. The environment tsup transpiles to (set in tsconfig.tsup.json via tsup.config.ts)
"target": "ES2020", // What bundle-require inside tsup uses to load tsup.config.ts
// By default all visible ”@types” packages are included in your compilation.
// Packages in node_modules/@types of any enclosing folder are considered visible.
// For example, that means packages within ./node_modules/@types/,
// ../node_modules/@types/, ../../node_modules/@types/, and so on.
// If typeRoots is specified, only packages under typeRoots will be included.
// All paths are relative to the tsconfig.json
"typeRoots": [
// Nope, enonic-types should not be available in the node build env,
// only the build target enonic runtime env
// Thus it's set in src/main/resource/tsconfig.json instead.
// "./node_modules/@enonic-types",
"./node_modules/@types",
],
// "types": [ // TODO make a separate test/tsconfig.json
// "mocha"
// ],
},
// Specifies an array of filenames or patterns to include in the program.
// These filenames are resolved relative to the directory containing the
// tsconfig.json file.
"include": [
// Make sure default types matches Nashorn
"node_modules/typescript/lib/lib.es5.d.ts",
"src/main/resources/**/*.ts",
"src/main/resources/**/*.tsx"
],
// Specifies an array of filenames or patterns that should be skipped when
// resolving include.
// Important: exclude only changes which files are included as a result of
// the include setting. A file specified by exclude can still become part of
// your codebase due to an import statement in your code, a types inclusion,
// a /// <reference directive, or being specified in the files list.
// It is not a mechanism that prevents a file from being included in the
// codebase - it simply changes what the include setting finds.
"exclude": [
//"node_modules/@types/node/globals.global.d.ts", // Does not help
//"node_modules/semantic-ui-react/dist/commonjs/**/*", // Does not help
//"src/main/resources/lib/nashorn/global.ts", // Does not help
"**/*.d.ts",
"**/*.d.tsx",
"build/**/*",
"node_modules/**/*",
"src/main/resources/**/*.test.ts",
"../enonic-js-utils/**/*",
"../lib-explorer/**/*"
],
}