fix(typert): close remote gateway review gaps
This commit is contained in:
@@ -1,5 +1,42 @@
|
||||
import ts from 'typescript'
|
||||
|
||||
const decoratorSyntax = /^\s*@[A-Za-z_$][\w$]*/m
|
||||
|
||||
/**
|
||||
* Worker arguments that keep process-wide Web Storage from shadowing jsdom storage.
|
||||
* Node lists the positive spelling in `allowedNodeEnvironmentFlags` for this negatable flag.
|
||||
*/
|
||||
export const vitestExecArgv = process.allowedNodeEnvironmentFlags.has('--webstorage') ? ['--no-webstorage'] : []
|
||||
|
||||
/**
|
||||
* Transform standard TypeScript decorators before Vite's default parser sees source files.
|
||||
* @returns a pre-transform Vite plugin shared by source-mode test configurations.
|
||||
*/
|
||||
export function standardDecoratorPlugin() {
|
||||
return {
|
||||
name: 'dsh-standard-decorators',
|
||||
enforce: 'pre' as const,
|
||||
transform(code: string, id: string) {
|
||||
const file = id.split('?', 1)[0]!
|
||||
if (!/\.[cm]?tsx?$/.test(file) || !decoratorSyntax.test(code)) return
|
||||
const result = ts.transpileModule(code, {
|
||||
fileName: file,
|
||||
compilerOptions: {
|
||||
target: ts.ScriptTarget.ES2024,
|
||||
module: ts.ModuleKind.ESNext,
|
||||
jsx: file.endsWith('x') ? ts.JsxEmit.ReactJSX : undefined,
|
||||
sourceMap: true,
|
||||
},
|
||||
})
|
||||
return {
|
||||
code: result.outputText
|
||||
.replace(
|
||||
/^(\s*)(__esDecorate\()/gmu,
|
||||
'$1/* v8 ignore next -- compiler-synthetic decorator accessors have no source behavior */ $2',
|
||||
)
|
||||
.replace(/\n?\/\/# sourceMappingURL=.*$/u, '\n'),
|
||||
map: result.sourceMapText,
|
||||
}
|
||||
},
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user