0
# Runtime Configurations
1
2
TypeScript configurations for alternative JavaScript runtimes and testing frameworks. Each configuration provides optimized settings for specific runtime environments beyond traditional Node.js.
3
4
## Capabilities
5
6
### Bun Runtime Configuration
7
8
TypeScript configuration optimized for Bun, the fast all-in-one JavaScript runtime.
9
10
```typescript { .api }
11
interface BunConfiguration {
12
/** Runtime target */
13
runtime: "Bun";
14
15
/** Package name */
16
package: "@tsconfig/bun";
17
18
/** Configuration */
19
config: {
20
$schema: "https://json.schemastore.org/tsconfig";
21
display: "Bun";
22
_version: "1.0.7";
23
compilerOptions: {
24
lib: ["ES2022"];
25
target: "ES2022";
26
module: "ES2022";
27
moduleDetection: "force";
28
jsx: "react-jsx";
29
allowImportingTsExtensions: true;
30
moduleResolution: "bundler";
31
allowArbitraryExtensions: true;
32
verbatimModuleSyntax: true;
33
noEmit: true;
34
strict: true;
35
skipLibCheck: true;
36
noFallthroughCasesInSwitch: true;
37
noUnusedLocals: false;
38
noUnusedParameters: false;
39
exactOptionalPropertyTypes: true;
40
noImplicitReturns: true;
41
noImplicitOverride: true;
42
noPropertyAccessFromIndexSignature: true;
43
noUncheckedIndexedAccess: true;
44
allowUnusedLabels: false;
45
allowUnreachableCode: false;
46
types: ["bun-types"];
47
};
48
};
49
}
50
```
51
52
**Installation:**
53
```bash
54
npm install --save-dev @tsconfig/bun
55
```
56
57
**Usage:**
58
```json
59
{
60
"extends": "@tsconfig/bun/tsconfig.json"
61
}
62
```
63
64
### Deno Runtime Configuration
65
66
TypeScript configuration for Deno, the secure runtime for JavaScript and TypeScript.
67
68
```typescript { .api }
69
interface DenoConfiguration {
70
/** Runtime target */
71
runtime: "Deno";
72
73
/** Package name */
74
package: "@tsconfig/deno";
75
76
/** Configuration */
77
config: {
78
$schema: "https://json.schemastore.org/tsconfig";
79
display: "Deno";
80
_version: "1.0.3";
81
compilerOptions: {
82
allowJs: true;
83
esModuleInterop: true;
84
experimentalDecorators: true;
85
inlineSourceMap: true;
86
isolatedModules: true;
87
jsx: "react";
88
lib: ["deno.window"];
89
module: "esnext";
90
moduleDetection: "force";
91
strict: true;
92
target: "esnext";
93
useDefineForClassFields: true;
94
};
95
};
96
}
97
```
98
99
**Installation:**
100
```bash
101
npm install --save-dev @tsconfig/deno
102
```
103
104
**Usage:**
105
```json
106
{
107
"extends": "@tsconfig/deno/tsconfig.json"
108
}
109
```
110
111
### QJSEngine Configuration
112
113
TypeScript configuration for QJSEngine, a JavaScript engine based on QuickJS.
114
115
```typescript { .api }
116
interface QJSEngineConfiguration {
117
/** Runtime target */
118
runtime: "QJSEngine";
119
120
/** Package name */
121
package: "@tsconfig/qjsengine";
122
123
/** Configuration */
124
config: {
125
$schema: "https://json.schemastore.org/tsconfig";
126
display: "QJSEngine";
127
_version: "1.0.0";
128
compilerOptions: {
129
target: "ES2020";
130
module: "ES2020";
131
lib: ["ES2020"];
132
moduleResolution: "node";
133
esModuleInterop: true;
134
allowSyntheticDefaultImports: true;
135
strict: true;
136
skipLibCheck: true;
137
forceConsistentCasingInFileNames: true;
138
resolveJsonModule: true;
139
isolatedModules: true;
140
noEmit: true;
141
};
142
};
143
}
144
```
145
146
**Installation:**
147
```bash
148
npm install --save-dev @tsconfig/qjsengine
149
```
150
151
**Usage:**
152
```json
153
{
154
"extends": "@tsconfig/qjsengine/tsconfig.json"
155
}
156
```
157
158
### Testing Framework Configuration
159
160
#### Cypress
161
162
TypeScript configuration for Cypress end-to-end testing framework.
163
164
```typescript { .api }
165
interface CypressConfiguration {
166
/** Testing framework */
167
framework: "Cypress";
168
169
/** Package name */
170
package: "@tsconfig/cypress";
171
172
/** Configuration */
173
config: {
174
$schema: "https://json.schemastore.org/tsconfig";
175
display: "Cypress";
176
_version: "1.0.1";
177
compilerOptions: {
178
target: "es5";
179
lib: ["es5", "dom"];
180
types: ["cypress"];
181
};
182
};
183
}
184
```
185
186
**Installation:**
187
```bash
188
npm install --save-dev @tsconfig/cypress
189
```
190
191
**Usage:**
192
```json
193
{
194
"extends": "@tsconfig/cypress/tsconfig.json"
195
}
196
```
197
198
## Runtime Comparison
199
200
Different runtimes have varying capabilities and optimization requirements:
201
202
```typescript { .api }
203
interface RuntimeComparison {
204
/** Bun - Fast all-in-one runtime */
205
bun: {
206
strengths: ["Fast startup", "Built-in bundler", "Native TypeScript"];
207
target: "ES2022";
208
moduleSystem: "ES2022";
209
specialFeatures: ["allowImportingTsExtensions", "verbatimModuleSyntax"];
210
};
211
212
/** Deno - Secure runtime */
213
deno: {
214
strengths: ["Security model", "Built-in utilities", "ES modules"];
215
target: "esnext";
216
moduleSystem: "esnext";
217
specialFeatures: ["deno.window lib", "experimentalDecorators"];
218
};
219
220
/** QJSEngine - Lightweight engine */
221
qjsengine: {
222
strengths: ["Small footprint", "Fast execution", "Embeddable"];
223
target: "ES2020";
224
moduleSystem: "ES2020";
225
specialFeatures: ["Minimal configuration", "Node resolution"];
226
};
227
228
/** Cypress - Testing framework */
229
cypress: {
230
strengths: ["E2E testing", "Browser automation", "Time travel"];
231
target: "es5";
232
moduleSystem: "Browser compatible";
233
specialFeatures: ["cypress types", "DOM lib support"];
234
};
235
}
236
```
237
238
## Usage Patterns
239
240
### Bun Development
241
242
Optimized for Bun's fast runtime and built-in features:
243
244
```json
245
{
246
"extends": "@tsconfig/bun/tsconfig.json",
247
"compilerOptions": {
248
"outDir": "./dist",
249
"rootDir": "./src"
250
},
251
"include": ["src/**/*"],
252
"exclude": ["node_modules"]
253
}
254
```
255
256
### Deno Applications
257
258
Configured for Deno's secure-by-default approach:
259
260
```json
261
{
262
"extends": "@tsconfig/deno/tsconfig.json",
263
"compilerOptions": {
264
"allowJs": true,
265
"checkJs": true
266
},
267
"include": ["src/**/*.ts", "src/**/*.tsx"]
268
}
269
```
270
271
### QJSEngine Embedded Applications
272
273
Lightweight configuration for embedded scenarios:
274
275
```json
276
{
277
"extends": "@tsconfig/qjsengine/tsconfig.json",
278
"compilerOptions": {
279
"strict": true,
280
"noUnusedLocals": true,
281
"noUnusedParameters": true
282
}
283
}
284
```
285
286
### Cypress Testing Setup
287
288
Specific configuration for test files:
289
290
```json
291
{
292
"extends": "@tsconfig/cypress/tsconfig.json",
293
"include": [
294
"cypress/**/*.ts",
295
"cypress.config.ts"
296
],
297
"compilerOptions": {
298
"types": ["cypress", "@testing-library/cypress"]
299
}
300
}
301
```
302
303
### Multi-Runtime Support
304
305
For projects supporting multiple runtimes:
306
307
```json
308
{
309
"extends": "@tsconfig/node20/tsconfig.json",
310
"compilerOptions": {
311
"module": "esnext",
312
"moduleResolution": "bundler"
313
},
314
"ts-node": {
315
"esm": true
316
}
317
}
318
```
319
320
## Runtime-Specific Features
321
322
Each runtime provides unique TypeScript integration features:
323
324
```typescript { .api }
325
interface RuntimeFeatures {
326
/** Bun-specific features */
327
bunFeatures: {
328
/** Native TypeScript execution */
329
nativeTypeScript: true;
330
331
/** Built-in bundling */
332
bundling: true;
333
334
/** JSX support */
335
jsxSupport: "react-jsx";
336
337
/** Module extensions */
338
tsExtensions: true;
339
};
340
341
/** Deno-specific features */
342
denoFeatures: {
343
/** Built-in TypeScript compiler */
344
builtInCompiler: true;
345
346
/** Standard library typing */
347
standardLibrary: "deno.window";
348
349
/** Import maps support */
350
importMaps: true;
351
352
/** Permission system */
353
permissions: true;
354
};
355
356
/** QJSEngine-specific features */
357
qjsFeatures: {
358
/** Lightweight runtime */
359
lightweight: true;
360
361
/** Fast startup */
362
fastStartup: true;
363
364
/** Embeddable */
365
embeddable: true;
366
367
/** ES2020 compliance */
368
es2020: true;
369
};
370
371
/** Cypress-specific features */
372
cypressFeatures: {
373
/** Browser environment */
374
browserEnvironment: true;
375
376
/** Test utilities */
377
testUtilities: true;
378
379
/** DOM access */
380
domAccess: true;
381
382
/** Time travel debugging */
383
timeTravel: true;
384
};
385
}
386
```