1
0
Fork 0
mirror of https://github.com/denoland/deno.git synced 2024-12-21 23:04:45 -05:00

fix(tsc): config resolution using relative paths (#7392)

This commit is contained in:
Bartek Iwańczuk 2020-09-09 13:37:22 +02:00 committed by GitHub
parent 79b2510617
commit c14436a424
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 22 additions and 7 deletions

View file

@ -75,6 +75,24 @@ Deno.test({
},
});
Deno.test({
name: "Deno.compile() - pass outDir in compiler options",
async fn() {
const [diagnostics, actual] = await Deno.compile(
"src/foo.ts",
{
"src/foo.ts": "console.log('Hello world')",
},
{
outDir: "./lib",
},
);
assert(diagnostics == null);
assert(actual);
assertEquals(Object.keys(actual), ["lib/foo.js.map", "lib/foo.js"]);
},
});
Deno.test({
name: "Deno.compile() - properly handles .d.ts files",
async fn() {

View file

@ -299,6 +299,7 @@ delete Object.prototype.__proto__;
// it makes sense to use the same scheme here.
const ASSETS = "asset://";
const OUT_DIR = "deno://";
const CACHE = "cache:///";
// This constant is passed to compiler settings when
// doing incremental compiles. Contents of this
// file are passed back to Rust and saved to $DENO_DIR.
@ -382,13 +383,10 @@ delete Object.prototype.__proto__;
const RESOLVED_SPECIFIER_CACHE = new Map();
function parseCompilerOptions(compilerOptions) {
// TODO(bartlomieju): using `/` and `/tsconfig.json` because
// otherwise TSC complains that some paths are relative
// and some are absolute
const { options, errors } = ts.convertCompilerOptionsFromJson(
compilerOptions,
"/",
"/tsconfig.json",
"",
"tsconfig.json",
);
return {
options,
@ -491,7 +489,7 @@ delete Object.prototype.__proto__;
}
getCurrentDirectory() {
return "";
return CACHE;
}
getDefaultLibFileName(_options) {
@ -1333,7 +1331,6 @@ delete Object.prototype.__proto__;
target,
createRuntimeCompileWriteFile(state),
);
const program = ts.createProgram({
rootNames,
options: host.getCompilationSettings(),