diff options
Diffstat (limited to 'deno_typescript/compiler_main.js')
-rw-r--r-- | deno_typescript/compiler_main.js | 17 |
1 files changed, 14 insertions, 3 deletions
diff --git a/deno_typescript/compiler_main.js b/deno_typescript/compiler_main.js index 234ed6002..31f539a27 100644 --- a/deno_typescript/compiler_main.js +++ b/deno_typescript/compiler_main.js @@ -19,14 +19,25 @@ function main(configText, rootNames) { const host = new Host(); - assert(rootNames.length > 0); - + assert(rootNames.length === 1); + // If root file is external file, ie. URL with "file://" + // then create an internal name - in case of bundling + // cli runtime this is always true. + const rootFile = rootNames[0]; + const result = externalSpecifierRegEx.exec(rootFile); + let rootSpecifier = rootFile; + if (result) { + const [, specifier] = result; + const internalSpecifier = `$deno$${specifier}`; + moduleMap.set(internalSpecifier, rootFile); + rootSpecifier = internalSpecifier; + } const { options, diagnostics } = configure(configText); handleDiagnostics(host, diagnostics); println(`>>> TS config: ${JSON.stringify(options)}`); - const program = ts.createProgram(rootNames, options, host); + const program = ts.createProgram([rootSpecifier], options, host); handleDiagnostics( host, |