summaryrefslogtreecommitdiff
path: root/cli/tsc/99_main_compiler.js
diff options
context:
space:
mode:
authorBartek IwaƄczuk <biwanczuk@gmail.com>2023-01-24 15:05:54 +0100
committerGitHub <noreply@github.com>2023-01-24 09:05:54 -0500
commitfc2e00152b162280e78b06028d51274e33275629 (patch)
treeee567a99cabc6633454de231939f7d898146f1d8 /cli/tsc/99_main_compiler.js
parentcadeaae045d2489fe125286b8c2c641c6d973c3f (diff)
feat: support node built-in module imports (#17264)
Co-authored-by: David Sherret <dsherret@gmail.com>
Diffstat (limited to 'cli/tsc/99_main_compiler.js')
-rw-r--r--cli/tsc/99_main_compiler.js26
1 files changed, 5 insertions, 21 deletions
diff --git a/cli/tsc/99_main_compiler.js b/cli/tsc/99_main_compiler.js
index a0219fe13..138b24ba0 100644
--- a/cli/tsc/99_main_compiler.js
+++ b/cli/tsc/99_main_compiler.js
@@ -855,25 +855,7 @@ delete Object.prototype.__proto__;
...program.getOptionsDiagnostics(),
...program.getGlobalDiagnostics(),
...program.getSemanticDiagnostics(),
- ].filter((diagnostic) => {
- if (IGNORED_DIAGNOSTICS.includes(diagnostic.code)) {
- return false;
- } else if (
- diagnostic.code === 1259 &&
- typeof diagnostic.messageText === "string" &&
- diagnostic.messageText.startsWith(
- "Module '\"deno:///missing_dependency.d.ts\"' can only be default-imported using the 'allowSyntheticDefaultImports' flag",
- )
- ) {
- // For now, ignore diagnostics like:
- // > TS1259 [ERROR]: Module '"deno:///missing_dependency.d.ts"' can only be default-imported using the 'allowSyntheticDefaultImports' flag
- // This diagnostic has surfaced due to supporting node cjs imports because this module does `export =`.
- // See discussion in https://github.com/microsoft/TypeScript/pull/51136
- return false;
- } else {
- return true;
- }
- });
+ ].filter((diagnostic) => !IGNORED_DIAGNOSTICS.includes(diagnostic.code));
// emit the tsbuildinfo file
// @ts-ignore: emitBuildInfo is not exposed (https://github.com/microsoft/TypeScript/issues/49871)
@@ -1273,9 +1255,11 @@ delete Object.prototype.__proto__;
// A build time only op that provides some setup information that is used to
// ensure the snapshot is setup properly.
- /** @type {{ buildSpecifier: string; libs: string[] }} */
+ /** @type {{ buildSpecifier: string; libs: string[]; nodeBuiltInModuleNames: string[] }} */
+ const { buildSpecifier, libs, nodeBuiltInModuleNames } = ops.op_build_info();
+
+ ts.deno.setNodeBuiltInModuleNames(nodeBuiltInModuleNames);
- const { buildSpecifier, libs } = ops.op_build_info();
for (const lib of libs) {
const specifier = `lib.${lib}.d.ts`;
// we are using internal APIs here to "inject" our custom libraries into