mirror of
https://github.com/denoland/deno.git
synced 2025-07-24 05:35:33 +00:00
refactor(cli): rewrite Deno.transpileOnly() to use SWC (#8090)
Co-authored-by: Kitson Kelly <me@kitsonkelly.com>
This commit is contained in:
parent
aebbdd5cc2
commit
57cad53945
8 changed files with 178 additions and 131 deletions
|
@ -599,7 +599,6 @@ delete Object.prototype.__proto__;
|
|||
const CompilerRequestType = {
|
||||
RuntimeCompile: 2,
|
||||
RuntimeBundle: 3,
|
||||
RuntimeTranspile: 4,
|
||||
};
|
||||
|
||||
function createBundleWriteFile(state) {
|
||||
|
@ -999,31 +998,6 @@ delete Object.prototype.__proto__;
|
|||
};
|
||||
}
|
||||
|
||||
function runtimeTranspile(request) {
|
||||
const result = {};
|
||||
const { sources, compilerOptions } = request;
|
||||
|
||||
const parseResult = parseCompilerOptions(
|
||||
compilerOptions,
|
||||
);
|
||||
const options = parseResult.options;
|
||||
// TODO(bartlomieju): this options is excluded by `ts.convertCompilerOptionsFromJson`
|
||||
// however stuff breaks if it's not passed (type_directives_js_main.js, compiler_js_error.ts)
|
||||
options.allowNonTsExtensions = true;
|
||||
|
||||
for (const [fileName, inputText] of Object.entries(sources)) {
|
||||
const { outputText: source, sourceMapText: map } = ts.transpileModule(
|
||||
inputText,
|
||||
{
|
||||
fileName,
|
||||
compilerOptions: options,
|
||||
},
|
||||
);
|
||||
result[fileName] = { source, map };
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
function opCompilerRespond(msg) {
|
||||
core.jsonOpSync("op_compiler_respond", msg);
|
||||
}
|
||||
|
@ -1041,11 +1015,6 @@ delete Object.prototype.__proto__;
|
|||
opCompilerRespond(result);
|
||||
break;
|
||||
}
|
||||
case CompilerRequestType.RuntimeTranspile: {
|
||||
const result = runtimeTranspile(request);
|
||||
opCompilerRespond(result);
|
||||
break;
|
||||
}
|
||||
default:
|
||||
throw new Error(
|
||||
`!!! unhandled CompilerRequestType: ${request.type} (${
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue