1
0
Fork 0
mirror of https://github.com/denoland/deno.git synced 2024-11-25 15:29:32 -05:00

fix(cli/tsc): allow non-standard extensions on imports (#8464)

This commit is contained in:
Nayeem Rahman 2020-11-22 23:20:32 +00:00 committed by GitHub
parent e3f73d3ec0
commit e7fc7d7151
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 17 additions and 3 deletions

View file

@ -0,0 +1,2 @@
import "./001_hello.js?a=b#c";
import "./002_hello.ts?a=b#c";

View file

@ -0,0 +1,2 @@
[WILDCARD]Hello World
Hello World

View file

@ -2418,6 +2418,11 @@ itest!(_074_worker_nested_error {
exit_code: 1,
});
itest!(_075_import_local_query_hash {
args: "run 075_import_local_query_hash.ts",
output: "075_import_local_query_hash.ts.out",
});
itest!(js_import_detect {
args: "run --quiet --reload js_import_detect.ts",
output: "js_import_detect.ts.out",

View file

@ -150,7 +150,7 @@ delete Object.prototype.__proto__;
/** An object literal of the incremental compiler host, which provides the
* specific "bindings" to the Deno environment that tsc needs to work.
*
*
* @type {ts.CompilerHost} */
const host = {
fileExists(fileName) {
@ -299,7 +299,7 @@ delete Object.prototype.__proto__;
*/
/** The API that is called by Rust when executing a request.
* @param {Request} request
* @param {Request} request
*/
function exec({ config, debug: debugFlag, rootNames }) {
setLogDebug(debugFlag, "TS");
@ -309,6 +309,11 @@ delete Object.prototype.__proto__;
const { options, errors: configFileParsingDiagnostics } = ts
.convertCompilerOptionsFromJson(config, "", "tsconfig.json");
// The `allowNonTsExtensions` is a "hidden" compiler option used in VSCode
// which is not allowed to be passed in JSON, we need it to allow special
// URLs which Deno supports. So we need to either ignore the diagnostic, or
// inject it ourselves.
Object.assign(options, { allowNonTsExtensions: true });
const program = ts.createIncrementalProgram({
rootNames,
options,
@ -338,7 +343,7 @@ delete Object.prototype.__proto__;
let hasStarted = false;
/** Startup the runtime environment, setting various flags.
* @param {{ debugFlag?: boolean; legacyFlag?: boolean; }} msg
* @param {{ debugFlag?: boolean; legacyFlag?: boolean; }} msg
*/
function startup({ debugFlag = false }) {
if (hasStarted) {