Require module/moduleResolution to match when either is node16/nodenext (#54567)

This commit is contained in:
Andrew Branch
2023-06-22 14:35:52 -06:00
committed by GitHub
parent 49deff209a
commit d90eb0d731
36 changed files with 650 additions and 750 deletions

View File

@@ -4329,6 +4329,14 @@
"category": "Error",
"code": 5108
},
"Option 'moduleResolution' must be set to '{0}' (or left unspecified) when option 'module' is set to '{1}'.": {
"category": "Error",
"code": 5109
},
"Option 'module' must be set to '{0}' when option 'moduleResolution' is set to '{1}'.": {
"category": "Error",
"code": 5110
},
"Generates a sourcemap for each corresponding '.d.ts' file.": {
"category": "Message",

View File

@@ -4404,6 +4404,24 @@ export function createProgram(rootNamesOrOptions: readonly string[] | CreateProg
createOptionValueDiagnostic("moduleResolution", Diagnostics.Option_0_can_only_be_used_when_module_is_set_to_es2015_or_later, "bundler");
}
if (
ModuleKind[moduleKind] &&
(ModuleKind.Node16 <= moduleKind && moduleKind <= ModuleKind.NodeNext) &&
!(ModuleResolutionKind.Node16 <= moduleResolution && moduleResolution <= ModuleResolutionKind.NodeNext)
) {
const moduleKindName = ModuleKind[moduleKind];
createOptionValueDiagnostic("moduleResolution", Diagnostics.Option_moduleResolution_must_be_set_to_0_or_left_unspecified_when_option_module_is_set_to_1, moduleKindName, moduleKindName);
}
else if (
ModuleResolutionKind[moduleResolution] &&
(ModuleResolutionKind.Node16 <= moduleResolution && moduleResolution <= ModuleResolutionKind.NodeNext) &&
!(ModuleKind.Node16 <= moduleKind && moduleKind <= ModuleKind.NodeNext)
) {
const moduleResolutionName = ModuleResolutionKind[moduleResolution];
createOptionValueDiagnostic("module", Diagnostics.Option_module_must_be_set_to_0_when_option_moduleResolution_is_set_to_1, moduleResolutionName, moduleResolutionName);
}
// If the emit is enabled make sure that every output file is unique and not overwriting any of the input files
if (!options.noEmit && !options.suppressOutputPathCheck) {
const emitHost = getEmitHost();