@bytecodealliance/jco 1.16.1 → 1.17.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,13 +1,13 @@
1
1
  /* global Buffer */
2
2
 
3
- import { extname, basename, resolve } from 'node:path';
3
+ import { extname, basename, resolve } from "node:path";
4
+ import { fileURLToPath } from "node:url";
4
5
 
5
- import { minify } from 'terser';
6
- import { fileURLToPath } from 'node:url';
6
+ import { minify } from "terser";
7
7
 
8
- import { optimizeComponent } from './opt.js';
8
+ import { optimizeComponent } from "./opt.js";
9
9
 
10
- import { $init, generate } from '../../obj/js-component-bindgen-component.js';
10
+ import { $init, generate } from "../../obj/js-component-bindgen-component.js";
11
11
  import {
12
12
  readFile,
13
13
  spawnIOTmp,
@@ -18,19 +18,19 @@ import {
18
18
  ASYNC_WASI_IMPORTS,
19
19
  ASYNC_WASI_EXPORTS,
20
20
  DEFAULT_ASYNC_MODE,
21
- } from '../common.js';
22
- import { $init as wasmToolsInit, tools } from '../../obj/wasm-tools.js';
21
+ } from "../common.js";
22
+ import { $init as wasmToolsInit, tools } from "../../obj/wasm-tools.js";
23
23
  const { componentEmbed, componentNew } = tools;
24
24
 
25
- import ora from '#ora';
25
+ import ora from "#ora";
26
26
 
27
- import { isWindows } from '../common.js';
27
+ import { isWindows } from "../common.js";
28
28
 
29
29
  // These re-exports exist to avoid breaking backwards compatibility
30
- export { types, guestTypes, typesComponent } from './types.js';
30
+ export { types, guestTypes, typesComponent } from "./types.js";
31
31
 
32
32
  export async function transpile(witPath, opts, program) {
33
- const varIdx = program?.parent.rawArgs.indexOf('--');
33
+ const varIdx = program?.parent.rawArgs.indexOf("--");
34
34
  if (varIdx !== undefined && varIdx !== -1) {
35
35
  opts.optArgs = program.parent.rawArgs.slice(varIdx + 1);
36
36
  }
@@ -43,9 +43,9 @@ export async function transpile(witPath, opts, program) {
43
43
  component = componentNew(
44
44
  componentEmbed({
45
45
  dummy: true,
46
- witPath: (isWindows ? '//?/' : '') + resolve(witPath),
46
+ witPath: (isWindows ? "//?/" : "") + resolve(witPath),
47
47
  }),
48
- []
48
+ [],
49
49
  );
50
50
  }
51
51
 
@@ -53,14 +53,10 @@ export async function transpile(witPath, opts, program) {
53
53
  setShowSpinner(true);
54
54
  }
55
55
  if (!opts.name) {
56
- opts.name = basename(
57
- witPath.slice(0, -extname(witPath).length || Infinity)
58
- );
56
+ opts.name = basename(witPath.slice(0, -extname(witPath).length || Infinity));
59
57
  }
60
58
  if (opts.map) {
61
- opts.map = Object.fromEntries(
62
- opts.map.map((mapping) => mapping.split('='))
63
- );
59
+ opts.map = Object.fromEntries(opts.map.map((mapping) => mapping.split("=")));
64
60
  }
65
61
 
66
62
  if (opts.asyncWasiImports) {
@@ -71,10 +67,7 @@ export async function transpile(witPath, opts, program) {
71
67
  }
72
68
 
73
69
  const { files } = await transpileComponent(component, opts);
74
- await writeFiles(
75
- files,
76
- opts.quiet ? false : 'Transpiled JS Component Files'
77
- );
70
+ await writeFiles(files, opts.quiet ? false : "Transpiled JS Component Files");
78
71
  }
79
72
 
80
73
  /**
@@ -82,14 +75,12 @@ export async function transpile(witPath, opts, program) {
82
75
  * @returns {Promise<Uint8Array>}
83
76
  */
84
77
  async function wasm2Js(source) {
85
- const wasm2jsPath = fileURLToPath(
86
- import.meta.resolve('binaryen/bin/wasm2js')
87
- );
78
+ const wasm2jsPath = fileURLToPath(import.meta.resolve("binaryen/bin/wasm2js"));
88
79
 
89
80
  try {
90
- return await spawnIOTmp(wasm2jsPath, source, ['-Oz', '-o']);
81
+ return await spawnIOTmp(wasm2jsPath, source, ["-Oz", "-o"]);
91
82
  } catch (e) {
92
- if (e.toString().includes('BasicBlock requested')) {
83
+ if (e.toString().includes("BasicBlock requested")) {
93
84
  return wasm2Js(source);
94
85
  }
95
86
  throw e;
@@ -145,16 +136,15 @@ export async function transpileComponent(component, opts = {}) {
145
136
  if (opts.wasiShim !== false) {
146
137
  opts.map = Object.assign(
147
138
  {
148
- 'wasi:cli/*': '@bytecodealliance/preview2-shim/cli#*',
149
- 'wasi:clocks/*': '@bytecodealliance/preview2-shim/clocks#*',
150
- 'wasi:filesystem/*':
151
- '@bytecodealliance/preview2-shim/filesystem#*',
152
- 'wasi:http/*': '@bytecodealliance/preview2-shim/http#*',
153
- 'wasi:io/*': '@bytecodealliance/preview2-shim/io#*',
154
- 'wasi:random/*': '@bytecodealliance/preview2-shim/random#*',
155
- 'wasi:sockets/*': '@bytecodealliance/preview2-shim/sockets#*',
139
+ "wasi:cli/*": "@bytecodealliance/preview2-shim/cli#*",
140
+ "wasi:clocks/*": "@bytecodealliance/preview2-shim/clocks#*",
141
+ "wasi:filesystem/*": "@bytecodealliance/preview2-shim/filesystem#*",
142
+ "wasi:http/*": "@bytecodealliance/preview2-shim/http#*",
143
+ "wasi:io/*": "@bytecodealliance/preview2-shim/io#*",
144
+ "wasi:random/*": "@bytecodealliance/preview2-shim/random#*",
145
+ "wasi:sockets/*": "@bytecodealliance/preview2-shim/sockets#*",
156
146
  },
157
- opts.map || {}
147
+ opts.map || {},
158
148
  );
159
149
  }
160
150
 
@@ -166,7 +156,7 @@ export async function transpileComponent(component, opts = {}) {
166
156
  }
167
157
  // Otherwise, if `--js` is present, an `instantiate` function is required.
168
158
  else if (opts.js) {
169
- instantiation = { tag: 'async' };
159
+ instantiation = { tag: "async" };
170
160
  }
171
161
 
172
162
  // Get the configured async mode then transform it into what the types component expects
@@ -174,22 +164,18 @@ export async function transpileComponent(component, opts = {}) {
174
164
  let asyncImports = new Set([...(opts.asyncImports ?? [])]);
175
165
  let asyncExports = new Set([...(opts.asyncExports ?? [])]);
176
166
  let asyncMode = opts.asyncMode ?? DEFAULT_ASYNC_MODE;
177
- if (asyncMode === 'sync' && asyncExports.size > 0) {
178
- throw new Error(
179
- 'async exports cannot be specified in sync mode (consider adding --async-mode=jspi)'
180
- );
167
+ if (asyncMode === "sync" && asyncExports.size > 0) {
168
+ throw new Error("async exports cannot be specified in sync mode (consider adding --async-mode=jspi)");
181
169
  }
182
- if (asyncMode === 'sync' && asyncImports.size > 0) {
183
- throw new Error(
184
- 'async imports cannot be specified in sync mode (consider adding --async-mode=jspi)'
185
- );
170
+ if (asyncMode === "sync" && asyncImports.size > 0) {
171
+ throw new Error("async imports cannot be specified in sync mode (consider adding --async-mode=jspi)");
186
172
  }
187
173
  let asyncModeObj;
188
- if (asyncMode === 'sync') {
174
+ if (asyncMode === "sync") {
189
175
  asyncModeObj = null;
190
- } else if (asyncMode === 'jspi') {
176
+ } else if (asyncMode === "jspi") {
191
177
  asyncModeObj = {
192
- tag: 'jspi',
178
+ tag: "jspi",
193
179
  val: {
194
180
  imports: [...asyncImports],
195
181
  exports: [...asyncExports],
@@ -200,13 +186,11 @@ export async function transpileComponent(component, opts = {}) {
200
186
  }
201
187
 
202
188
  let { files, imports, exports } = generate(component, {
203
- name: opts.name ?? 'component',
189
+ name: opts.name ?? "component",
204
190
  map: Object.entries(opts.map ?? {}),
205
191
  instantiation,
206
192
  asyncMode: asyncModeObj,
207
- importBindings: opts.importBindings
208
- ? { tag: opts.importBindings }
209
- : null,
193
+ importBindings: opts.importBindings ? { tag: opts.importBindings } : null,
210
194
  validLiftingOptimization: opts.validLiftingOptimization ?? false,
211
195
  tracing: opts.tracing ?? false,
212
196
  noNodejsCompat: opts.nodejsCompat === false,
@@ -218,13 +202,13 @@ export async function transpileComponent(component, opts = {}) {
218
202
  idlImports: opts.experimentalIdlImports === true,
219
203
  });
220
204
 
221
- let outDir = (opts.outDir ?? '').replace(/\\/g, '/');
222
- if (!outDir.endsWith('/') && outDir !== '') {
223
- outDir += '/';
205
+ let outDir = (opts.outDir ?? "").replace(/\\/g, "/");
206
+ if (!outDir.endsWith("/") && outDir !== "") {
207
+ outDir += "/";
224
208
  }
225
209
  files = files.map(([name, source]) => [`${outDir}${name}`, source]);
226
210
 
227
- const jsFile = files.find(([name]) => name.endsWith('.js'));
211
+ const jsFile = files.find(([name]) => name.endsWith(".js"));
228
212
 
229
213
  // Generate code for the `--js` option.
230
214
  //
@@ -273,25 +257,19 @@ export async function transpileComponent(component, opts = {}) {
273
257
  // non-async.
274
258
  if (opts.js) {
275
259
  const withInstantiation = opts.instantiation !== undefined;
276
- const async_ = instantiation.tag == 'async' ? 'async ' : '';
277
- const await_ = instantiation.tag == 'async' ? 'await ' : '';
260
+ const async_ = instantiation.tag == "async" ? "async " : "";
261
+ const await_ = instantiation.tag == "async" ? "await " : "";
278
262
 
279
263
  // Format the previously generated code.
280
264
  const source = Buffer.from(jsFile[1])
281
- .toString('utf8')
265
+ .toString("utf8")
282
266
  // update imports manging to match emscripten asm
283
- .replace(
284
- /exports(\d+)\['([^']+)']/g,
285
- (_, i, s) => `exports${i}['${asmMangle(s)}']`
286
- )
287
- .replace(
288
- /export (async )?function instantiate/,
289
- '$1function _instantiate'
290
- );
267
+ .replace(/exports(\d+)\['([^']+)']/g, (_, i, s) => `exports${i}['${asmMangle(s)}']`)
268
+ .replace(/export (async )?function instantiate/, "$1function _instantiate");
291
269
 
292
270
  // Collect all Wasm files.
293
- const wasmFiles = files.filter(([name]) => name.endsWith('.wasm'));
294
- files = files.filter(([name]) => !name.endsWith('.wasm'));
271
+ const wasmFiles = files.filter(([name]) => name.endsWith(".wasm"));
272
+ files = files.filter(([name]) => !name.endsWith(".wasm"));
295
273
 
296
274
  // Configure the spinner.
297
275
  let completed = 0;
@@ -299,8 +277,8 @@ export async function transpileComponent(component, opts = {}) {
299
277
  `${styleText("cyan", `${completed} / ${wasmFiles.length}`)} Running Binaryen wasm2js on Wasm core modules (this takes a while)...\n`;
300
278
  if (showSpinner) {
301
279
  spinner = ora({
302
- color: 'cyan',
303
- spinner: 'bouncingBar',
280
+ color: "cyan",
281
+ spinner: "bouncingBar",
304
282
  }).start();
305
283
  spinner.text = spinnerText();
306
284
  }
@@ -309,40 +287,36 @@ export async function transpileComponent(component, opts = {}) {
309
287
  try {
310
288
  const asmFiles = await Promise.all(
311
289
  wasmFiles.map(async ([, source]) => {
312
- const output = (await wasm2Js(source)).toString('utf8');
290
+ const output = (await wasm2Js(source)).toString("utf8");
313
291
  if (spinner) {
314
292
  completed++;
315
293
  spinner.text = spinnerText();
316
294
  }
317
295
  return output;
318
- })
296
+ }),
319
297
  );
320
298
 
321
299
  const asms = asmFiles
322
300
  .map(
323
301
  (asm, nth) => `function asm${nth}(imports) {
324
302
  ${
325
- // strip and replace the asm instantiation wrapper
326
- asm
327
- .replace(/import \* as [^ ]+ from '[^']*';/g, '')
328
- .replace('function asmFunc(imports) {', '')
329
- .replace(/export var ([^ ]+) = ([^. ]+)\.([^ ]+);/g, '')
330
- .replace(/var retasmFunc = [\s\S]*$/, '')
331
- .replace(/var memasmFunc = new ArrayBuffer\(0\);/g, '')
332
- .replace('memory.grow = __wasm_memory_grow;', '')
333
- .trim()
334
- }`
303
+ // strip and replace the asm instantiation wrapper
304
+ asm
305
+ .replace(/import \* as [^ ]+ from '[^']*';/g, "")
306
+ .replace("function asmFunc(imports) {", "")
307
+ .replace(/export var ([^ ]+) = ([^. ]+)\.([^ ]+);/g, "")
308
+ .replace(/var retasmFunc = [\s\S]*$/, "")
309
+ .replace(/var memasmFunc = new ArrayBuffer\(0\);/g, "")
310
+ .replace("memory.grow = __wasm_memory_grow;", "")
311
+ .trim()
312
+ }`,
335
313
  )
336
- .join(',\n');
314
+ .join(",\n");
337
315
 
338
316
  // The `instantiate` function.
339
- const instantiateFunction = `${
340
- withInstantiation ? 'export ' : ''
341
- }${async_}function instantiate(imports) {
317
+ const instantiateFunction = `${withInstantiation ? "export " : ""}${async_}function instantiate(imports) {
342
318
  const wasm_file_to_asm_index = {
343
- ${wasmFiles
344
- .map(([path], nth) => `'${basename(path)}': ${nth}`)
345
- .join(',\n ')}
319
+ ${wasmFiles.map(([path], nth) => `'${basename(path)}': ${nth}`).join(",\n ")}
346
320
  };
347
321
 
348
322
  return ${await_}_instantiate(
@@ -353,75 +327,70 @@ export async function transpileComponent(component, opts = {}) {
353
327
  }`;
354
328
 
355
329
  // If `--js` is used without `--instantiation`.
356
- let importDirectives = '';
357
- let exportDirectives = '';
358
- let exportTrampolines = '';
359
- let autoInstantiate = '';
330
+ let importDirectives = "";
331
+ let exportDirectives = "";
332
+ let exportTrampolines = "";
333
+ let autoInstantiate = "";
360
334
 
361
335
  if (!withInstantiation) {
362
336
  importDirectives = imports
363
- .map(
364
- (import_file, nth) =>
365
- `import * as import${nth} from '${import_file}';`
366
- )
367
- .join('\n');
337
+ .map((import_file, nth) => `import * as import${nth} from '${import_file}';`)
338
+ .join("\n");
368
339
 
369
340
  if (exports.length > 0 || opts.tlaCompat) {
370
341
  exportDirectives = `export {
371
342
  ${
372
343
  // Exporting `$init` must come first to not break the transpiling tests.
373
- opts.tlaCompat ? ' $init,\n' : ''
344
+ opts.tlaCompat ? " $init,\n" : ""
374
345
  }${exports
375
- .map(([name]) => {
376
- if (name === asmMangle(name)) {
377
- return ` ${name},`;
378
- } else {
379
- return ` ${asmMangle(name)} as '${name}',`;
380
- }
381
- })
382
- .join('\n')}
346
+ .map(([name]) => {
347
+ if (name === asmMangle(name)) {
348
+ return ` ${name},`;
349
+ } else {
350
+ return ` ${asmMangle(name)} as '${name}',`;
351
+ }
352
+ })
353
+ .join("\n")}
383
354
  }`;
384
355
  }
385
356
 
386
357
  exportTrampolines = `let ${exports
387
- .filter(([, ty]) => ty === 'function')
358
+ .filter(([, ty]) => ty === "function")
388
359
  .map(([name]) => `_${asmMangle(name)}`)
389
- .join(', ')};
360
+ .join(", ")};
390
361
  ${exports
391
- .map(([name, ty]) => {
392
- if (ty === 'function') {
393
- return `\nfunction ${asmMangle(name)} () {
362
+ .map(([name, ty]) => {
363
+ if (ty === "function") {
364
+ return `\nfunction ${asmMangle(name)} () {
394
365
  return _${asmMangle(name)}.apply(this, arguments);
395
366
  }`;
396
- } else {
397
- return `\nlet ${asmMangle(name)};`;
398
- }
399
- })
400
- .join('\n')}`;
367
+ } else {
368
+ return `\nlet ${asmMangle(name)};`;
369
+ }
370
+ })
371
+ .join("\n")}`;
401
372
 
402
373
  autoInstantiate = `${async_}function $init() {
403
374
  ( {
404
375
  ${exports
405
- .map(([name, ty]) => {
406
- if (ty === 'function') {
407
- return ` '${name}': _${asmMangle(name)},`;
408
- } else if (asmMangle(name) === name) {
409
- return ` ${name},`;
410
- } else {
411
- return ` '${name}': ${asmMangle(name)},`;
412
- }
413
- })
414
- .join('\n')}
376
+ .map(([name, ty]) => {
377
+ if (ty === "function") {
378
+ return ` '${name}': _${asmMangle(name)},`;
379
+ } else if (asmMangle(name) === name) {
380
+ return ` ${name},`;
381
+ } else {
382
+ return ` '${name}': ${asmMangle(name)},`;
383
+ }
384
+ })
385
+ .join("\n")}
415
386
  } = ${await_}instantiate(
416
387
  {
417
- ${imports
418
- .map((import_file, nth) => ` '${import_file}': import${nth},`)
419
- .join('\n')}
388
+ ${imports.map((import_file, nth) => ` '${import_file}': import${nth},`).join("\n")}
420
389
  }
421
390
  ) )
422
391
  }
423
392
 
424
- ${opts.tlaCompat ? '' : `${await_}$init();`}`;
393
+ ${opts.tlaCompat ? "" : `${await_}$init();`}`;
425
394
  }
426
395
 
427
396
  // Prepare the final generated code.
@@ -450,19 +419,16 @@ ${autoInstantiate}`;
450
419
 
451
420
  if (opts.minify) {
452
421
  try {
453
- ({ code: jsFile[1] } = await minify(
454
- Buffer.from(jsFile[1]).toString('utf8'),
455
- {
456
- module: true,
457
- compress: {
458
- ecma: 9,
459
- unsafe: true,
460
- },
461
- mangle: {
462
- keep_classnames: true,
463
- },
464
- }
465
- ));
422
+ ({ code: jsFile[1] } = await minify(Buffer.from(jsFile[1]).toString("utf8"), {
423
+ module: true,
424
+ compress: {
425
+ ecma: 9,
426
+ unsafe: true,
427
+ },
428
+ mangle: {
429
+ keep_classnames: true,
430
+ },
431
+ }));
466
432
  } catch (err) {
467
433
  console.error(`error while minifying JS: ${err}`);
468
434
  throw err;
@@ -476,8 +442,8 @@ ${autoInstantiate}`;
476
442
  // for imports to match up we must do the same
477
443
  // See https://github.com/WebAssembly/binaryen/blob/main/src/asmjs/asmangle.cpp
478
444
  function asmMangle(name) {
479
- if (name === '') {
480
- return '$';
445
+ if (name === "") {
446
+ return "$";
481
447
  }
482
448
 
483
449
  let mightBeKeyword = true;
@@ -485,210 +451,181 @@ function asmMangle(name) {
485
451
 
486
452
  // Names must start with a character, $ or _
487
453
  switch (name[0]) {
488
- case '0':
489
- case '1':
490
- case '2':
491
- case '3':
492
- case '4':
493
- case '5':
494
- case '6':
495
- case '7':
496
- case '8':
497
- case '9': {
498
- name = '$' + name;
499
- i = 2;
500
- // fallthrough
501
- }
502
- case '$':
503
- case '_': {
504
- mightBeKeyword = false;
505
- break;
506
- }
507
- default: {
508
- let chNum = name.charCodeAt(0);
509
- if (
510
- !(chNum >= 97 && chNum <= 122) &&
511
- !(chNum >= 65 && chNum <= 90)
512
- ) {
513
- name = '$' + name.substr(1);
454
+ case "0":
455
+ case "1":
456
+ case "2":
457
+ case "3":
458
+ case "4":
459
+ case "5":
460
+ case "6":
461
+ case "7":
462
+ case "8":
463
+ case "9": {
464
+ name = "$" + name;
465
+ i = 2;
466
+ // fallthrough
467
+ }
468
+ case "$":
469
+ case "_": {
514
470
  mightBeKeyword = false;
471
+ break;
472
+ }
473
+ default: {
474
+ let chNum = name.charCodeAt(0);
475
+ if (!(chNum >= 97 && chNum <= 122) && !(chNum >= 65 && chNum <= 90)) {
476
+ name = "$" + name.substr(1);
477
+ mightBeKeyword = false;
478
+ }
515
479
  }
516
- }
517
480
  }
518
481
 
519
482
  // Names must contain only characters, digits, $ or _
520
483
  let len = name.length;
521
484
  for (; i < len; ++i) {
522
485
  switch (name[i]) {
523
- case '0':
524
- case '1':
525
- case '2':
526
- case '3':
527
- case '4':
528
- case '5':
529
- case '6':
530
- case '7':
531
- case '8':
532
- case '9':
533
- case '$':
534
- case '_': {
535
- mightBeKeyword = false;
536
- break;
537
- }
538
- default: {
539
- let chNum = name.charCodeAt(i);
540
- if (
541
- !(chNum >= 97 && chNum <= 122) &&
542
- !(chNum >= 65 && chNum <= 90)
543
- ) {
544
- name = name.substr(0, i) + '_' + name.substr(i + 1);
486
+ case "0":
487
+ case "1":
488
+ case "2":
489
+ case "3":
490
+ case "4":
491
+ case "5":
492
+ case "6":
493
+ case "7":
494
+ case "8":
495
+ case "9":
496
+ case "$":
497
+ case "_": {
545
498
  mightBeKeyword = false;
499
+ break;
500
+ }
501
+ default: {
502
+ let chNum = name.charCodeAt(i);
503
+ if (!(chNum >= 97 && chNum <= 122) && !(chNum >= 65 && chNum <= 90)) {
504
+ name = name.substr(0, i) + "_" + name.substr(i + 1);
505
+ mightBeKeyword = false;
506
+ }
546
507
  }
547
- }
548
508
  }
549
509
  }
550
510
 
551
511
  // Names must not collide with keywords
552
512
  if (mightBeKeyword && len >= 2 && len <= 10) {
553
513
  switch (name[0]) {
554
- case 'a': {
555
- if (name == 'arguments') {
556
- return name + '_';
514
+ case "a": {
515
+ if (name == "arguments") {
516
+ return name + "_";
517
+ }
518
+ break;
557
519
  }
558
- break;
559
- }
560
- case 'b': {
561
- if (name == 'break') {
562
- return name + '_';
520
+ case "b": {
521
+ if (name == "break") {
522
+ return name + "_";
523
+ }
524
+ break;
563
525
  }
564
- break;
565
- }
566
- case 'c': {
567
- if (
568
- name == 'case' ||
569
- name == 'continue' ||
570
- name == 'catch' ||
571
- name == 'const' ||
572
- name == 'class'
573
- ) {
574
- return name + '_';
526
+ case "c": {
527
+ if (name == "case" || name == "continue" || name == "catch" || name == "const" || name == "class") {
528
+ return name + "_";
529
+ }
530
+ break;
575
531
  }
576
- break;
577
- }
578
- case 'd': {
579
- if (name == 'do' || name == 'default' || name == 'debugger') {
580
- return name + '_';
532
+ case "d": {
533
+ if (name == "do" || name == "default" || name == "debugger") {
534
+ return name + "_";
535
+ }
536
+ break;
581
537
  }
582
- break;
583
- }
584
- case 'e': {
585
- if (
586
- name == 'else' ||
587
- name == 'enum' ||
588
- name == 'eval' || // to be sure
589
- name == 'export' ||
590
- name == 'extends'
591
- ) {
592
- return name + '_';
538
+ case "e": {
539
+ if (
540
+ name == "else" ||
541
+ name == "enum" ||
542
+ name == "eval" || // to be sure
543
+ name == "export" ||
544
+ name == "extends"
545
+ ) {
546
+ return name + "_";
547
+ }
548
+ break;
593
549
  }
594
- break;
595
- }
596
- case 'f': {
597
- if (
598
- name == 'for' ||
599
- name == 'false' ||
600
- name == 'finally' ||
601
- name == 'function'
602
- ) {
603
- return name + '_';
550
+ case "f": {
551
+ if (name == "for" || name == "false" || name == "finally" || name == "function") {
552
+ return name + "_";
553
+ }
554
+ break;
604
555
  }
605
- break;
606
- }
607
- case 'i': {
608
- if (
609
- name == 'if' ||
610
- name == 'in' ||
611
- name == 'import' ||
612
- name == 'interface' ||
613
- name == 'implements' ||
614
- name == 'instanceof'
615
- ) {
616
- return name + '_';
556
+ case "i": {
557
+ if (
558
+ name == "if" ||
559
+ name == "in" ||
560
+ name == "import" ||
561
+ name == "interface" ||
562
+ name == "implements" ||
563
+ name == "instanceof"
564
+ ) {
565
+ return name + "_";
566
+ }
567
+ break;
617
568
  }
618
- break;
619
- }
620
- case 'l': {
621
- if (name == 'let') {
622
- return name + '_';
569
+ case "l": {
570
+ if (name == "let") {
571
+ return name + "_";
572
+ }
573
+ break;
623
574
  }
624
- break;
625
- }
626
- case 'n': {
627
- if (name == 'new' || name == 'null') {
628
- return name + '_';
575
+ case "n": {
576
+ if (name == "new" || name == "null") {
577
+ return name + "_";
578
+ }
579
+ break;
629
580
  }
630
- break;
631
- }
632
- case 'p': {
633
- if (
634
- name == 'public' ||
635
- name == 'package' ||
636
- name == 'private' ||
637
- name == 'protected'
638
- ) {
639
- return name + '_';
581
+ case "p": {
582
+ if (name == "public" || name == "package" || name == "private" || name == "protected") {
583
+ return name + "_";
584
+ }
585
+ break;
640
586
  }
641
- break;
642
- }
643
- case 'r': {
644
- if (name == 'return') {
645
- return name + '_';
587
+ case "r": {
588
+ if (name == "return") {
589
+ return name + "_";
590
+ }
591
+ break;
646
592
  }
647
- break;
648
- }
649
- case 's': {
650
- if (name == 'super' || name == 'static' || name == 'switch') {
651
- return name + '_';
593
+ case "s": {
594
+ if (name == "super" || name == "static" || name == "switch") {
595
+ return name + "_";
596
+ }
597
+ break;
652
598
  }
653
- break;
654
- }
655
- case 't': {
656
- if (
657
- name == 'try' ||
658
- name == 'this' ||
659
- name == 'true' ||
660
- name == 'throw' ||
661
- name == 'typeof'
662
- ) {
663
- return name + '_';
599
+ case "t": {
600
+ if (name == "try" || name == "this" || name == "true" || name == "throw" || name == "typeof") {
601
+ return name + "_";
602
+ }
603
+ break;
664
604
  }
665
- break;
666
- }
667
- case 'v': {
668
- if (name == 'var' || name == 'void') {
669
- return name + '_';
605
+ case "v": {
606
+ if (name == "var" || name == "void") {
607
+ return name + "_";
608
+ }
609
+ break;
670
610
  }
671
- break;
672
- }
673
- case 'w': {
674
- if (name == 'with' || name == 'while') {
675
- return name + '_';
611
+ case "w": {
612
+ if (name == "with" || name == "while") {
613
+ return name + "_";
614
+ }
615
+ break;
676
616
  }
677
- break;
678
- }
679
- case 'y': {
680
- if (name == 'yield') {
681
- return name + '_';
617
+ case "y": {
618
+ if (name == "yield") {
619
+ return name + "_";
620
+ }
621
+ break;
682
622
  }
683
- break;
684
- }
685
623
  }
686
624
  }
687
625
  return name;
688
626
  }
689
627
 
690
628
  // see: https://github.com/vitest-dev/vitest/issues/6953#issuecomment-2505310022
691
- if (typeof __vite_ssr_import_meta__ !== 'undefined') {
692
- __vite_ssr_import_meta__.resolve = (path) =>
693
- 'file://' + globalCreateRequire(import.meta.url).resolve(path);
629
+ if (typeof __vite_ssr_import_meta__ !== "undefined") {
630
+ __vite_ssr_import_meta__.resolve = (path) => "file://" + globalCreateRequire(import.meta.url).resolve(path);
694
631
  }