diff options
author | Kitson Kelly <me@kitsonkelly.com> | 2020-02-25 19:32:43 +1100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-02-25 03:32:43 -0500 |
commit | 805992b14a65a6dbfb857dea6d9b657477de043d (patch) | |
tree | 9fe4f36c72ac8beaf45a44170eba98966a086a21 | |
parent | 22f88b9f37b7e233fd4f15b73d5a2096224e56dc (diff) |
Fix issues with JavaScript importing JavaScript. (#4120)
Fixes #3852
Fixes #4117
-rw-r--r-- | cli/js/compiler_host.ts | 8 | ||||
-rw-r--r-- | cli/js/compiler_util.ts | 6 | ||||
-rw-r--r-- | cli/tests/038_checkjs.tsconfig.json | 1 | ||||
-rw-r--r-- | cli/tests/fix_js_import_js.ts | 3 | ||||
-rw-r--r-- | cli/tests/fix_js_import_js.ts.out | 1 | ||||
-rw-r--r-- | cli/tests/integration_tests.rs | 5 | ||||
-rw-r--r-- | cli/tests/subdir/mod6.js | 1 |
7 files changed, 20 insertions, 5 deletions
diff --git a/cli/js/compiler_host.ts b/cli/js/compiler_host.ts index d44bc7a03..78ed4889a 100644 --- a/cli/js/compiler_host.ts +++ b/cli/js/compiler_host.ts @@ -47,18 +47,18 @@ export const defaultBundlerOptions: ts.CompilerOptions = { /** Default options used by the compiler Host when compiling. */ export const defaultCompileOptions: ts.CompilerOptions = { - allowJs: true, + allowJs: false, allowNonTsExtensions: true, - strict: true, checkJs: false, esModuleInterop: true, + jsx: ts.JsxEmit.React, module: ts.ModuleKind.ESNext, outDir: OUT_DIR, resolveJsonModule: true, sourceMap: true, + strict: true, stripComments: true, - target: ts.ScriptTarget.ESNext, - jsx: ts.JsxEmit.React + target: ts.ScriptTarget.ESNext }; /** Options that need to be used when doing a runtime (non bundled) compilation */ diff --git a/cli/js/compiler_util.ts b/cli/js/compiler_util.ts index a28e2d109..6da38ab3b 100644 --- a/cli/js/compiler_util.ts +++ b/cli/js/compiler_util.ts @@ -304,7 +304,11 @@ export const ignoredDiagnostics = [ // support JSON imports. Allegedly this was fixed in // Microsoft/TypeScript#26825 but that doesn't seem to be working here, // so we will ignore complaints about this compiler setting. - 5070 + 5070, + // TS7016: Could not find a declaration file for module '...'. '...' + // implicitly has an 'any' type. This is due to `allowJs` being off by + // default but importing of a JavaScript module. + 7016 ]; /** When doing a host configuration, processing the response and logging out diff --git a/cli/tests/038_checkjs.tsconfig.json b/cli/tests/038_checkjs.tsconfig.json index 08ac60b6c..46d96db9e 100644 --- a/cli/tests/038_checkjs.tsconfig.json +++ b/cli/tests/038_checkjs.tsconfig.json @@ -1,5 +1,6 @@ { "compilerOptions": { + "allowJs": true, "checkJs": true } } diff --git a/cli/tests/fix_js_import_js.ts b/cli/tests/fix_js_import_js.ts new file mode 100644 index 000000000..c9f341748 --- /dev/null +++ b/cli/tests/fix_js_import_js.ts @@ -0,0 +1,3 @@ +import { isMod4 } from "./subdir/mod6.js"; + +console.log(isMod4); diff --git a/cli/tests/fix_js_import_js.ts.out b/cli/tests/fix_js_import_js.ts.out new file mode 100644 index 000000000..27ba77dda --- /dev/null +++ b/cli/tests/fix_js_import_js.ts.out @@ -0,0 +1 @@ +true diff --git a/cli/tests/integration_tests.rs b/cli/tests/integration_tests.rs index 1767be7c2..ccc571331 100644 --- a/cli/tests/integration_tests.rs +++ b/cli/tests/integration_tests.rs @@ -1160,6 +1160,11 @@ itest!(cafile_info { http_server: true, }); +itest!(fix_js_import_js { + args: "run --reload fix_js_import_js.ts", + output: "fix_js_import_js.ts.out", +}); + itest!(fix_js_imports { args: "run --reload fix_js_imports.ts", output: "fix_js_imports.ts.out", diff --git a/cli/tests/subdir/mod6.js b/cli/tests/subdir/mod6.js new file mode 100644 index 000000000..5e17c9ee0 --- /dev/null +++ b/cli/tests/subdir/mod6.js @@ -0,0 +1 @@ +export { isMod4 } from "./mod4.js"; |