Skip to content

Commit 42f6576

Browse files
authored
Deprecate --module amd, umd, system, none; --moduleResolution classic; change defaults (#62669)
1 parent f450c1b commit 42f6576

File tree

1,932 files changed

+42615
-12811
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

1,932 files changed

+42615
-12811
lines changed

src/compiler/commandLineParser.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -608,6 +608,7 @@ export const moduleOptionDeclaration: CommandLineOptionOfCustomType = {
608608
nodenext: ModuleKind.NodeNext,
609609
preserve: ModuleKind.Preserve,
610610
})),
611+
deprecatedKeys: new Set(["none", "amd", "system", "umd"]),
611612
affectsSourceFile: true,
612613
affectsModuleResolution: true,
613614
affectsEmit: true,
@@ -1071,13 +1072,13 @@ const commandOptionsWithoutBuild: CommandLineOption[] = [
10711072
nodenext: ModuleResolutionKind.NodeNext,
10721073
bundler: ModuleResolutionKind.Bundler,
10731074
})),
1074-
deprecatedKeys: new Set(["node"]),
1075+
deprecatedKeys: new Set(["node", "node10", "classic"]),
10751076
affectsSourceFile: true,
10761077
affectsModuleResolution: true,
10771078
paramType: Diagnostics.STRATEGY,
10781079
category: Diagnostics.Modules,
10791080
description: Diagnostics.Specify_how_TypeScript_looks_up_a_file_from_a_given_module_specifier,
1080-
defaultValueDescription: Diagnostics.module_AMD_or_UMD_or_System_or_ES6_then_Classic_Otherwise_Node,
1081+
defaultValueDescription: Diagnostics.nodenext_if_module_is_nodenext_node16_if_module_is_node16_or_node18_otherwise_bundler,
10811082
},
10821083
{
10831084
name: "baseUrl",

src/compiler/diagnosticMessages.json

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6587,10 +6587,7 @@
65876587
"category": "Message",
65886588
"code": 6903
65896589
},
6590-
"module === \"system\" or esModuleInterop": {
6591-
"category": "Message",
6592-
"code": 6904
6593-
},
6590+
65946591
"`false`, unless `strict` is set": {
65956592
"category": "Message",
65966593
"code": 6905
@@ -6611,7 +6608,7 @@
66116608
"category": "Message",
66126609
"code": 6909
66136610
},
6614-
"module === `AMD` or `UMD` or `System` or `ES6`, then `Classic`, Otherwise `Node`": {
6611+
"`nodenext` if `module` is `nodenext`; `node16` if `module` is `node16` or `node18`; otherwise, `bundler`.": {
66156612
"category": "Message",
66166613
"code": 69010
66176614
},

src/compiler/program.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4498,6 +4498,9 @@ export function createProgram(_rootNamesOrOptions: readonly string[] | CreatePro
44984498
if (options.moduleResolution === ModuleResolutionKind.Node10) {
44994499
createDeprecatedDiagnostic("moduleResolution", "node10", /*useInstead*/ undefined, Diagnostics.Visit_https_Colon_Slash_Slashaka_ms_Slashts6_for_migration_information);
45004500
}
4501+
if (options.moduleResolution === ModuleResolutionKind.Classic) {
4502+
createDeprecatedDiagnostic("moduleResolution", "classic", /*useInstead*/ undefined, /*related*/ undefined);
4503+
}
45014504
if (options.baseUrl !== undefined) {
45024505
createDeprecatedDiagnostic("baseUrl", /*value*/ undefined, /*useInstead*/ undefined, Diagnostics.Visit_https_Colon_Slash_Slashaka_ms_Slashts6_for_migration_information);
45034506
}
@@ -4507,6 +4510,9 @@ export function createProgram(_rootNamesOrOptions: readonly string[] | CreatePro
45074510
if (options.allowSyntheticDefaultImports === false) {
45084511
createDeprecatedDiagnostic("allowSyntheticDefaultImports", "false", /*useInstead*/ undefined, /*related*/ undefined);
45094512
}
4513+
if (options.module === ModuleKind.None || options.module === ModuleKind.AMD || options.module === ModuleKind.UMD || options.module === ModuleKind.System) {
4514+
createDeprecatedDiagnostic("module", ModuleKind[options.module], /*useInstead*/ undefined, /*related*/ undefined);
4515+
}
45104516
});
45114517
}
45124518

src/compiler/types.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7313,6 +7313,7 @@ export function diagnosticCategoryName(d: { category: DiagnosticCategory; }, low
73137313
}
73147314

73157315
export enum ModuleResolutionKind {
7316+
/** @deprecated */
73167317
Classic = 1,
73177318
/**
73187319
* @deprecated
@@ -7576,10 +7577,14 @@ export interface TypeAcquisition {
75767577
}
75777578

75787579
export enum ModuleKind {
7580+
/** @deprecated */
75797581
None = 0,
75807582
CommonJS = 1,
7583+
/** @deprecated */
75817584
AMD = 2,
7585+
/** @deprecated */
75827586
UMD = 3,
7587+
/** @deprecated */
75837588
System = 4,
75847589

75857590
// NOTE: ES module kinds should be contiguous to more easily check whether a module kind is *any* ES module kind.

src/compiler/utilities.ts

Lines changed: 18 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -9015,27 +9015,23 @@ const _computedOptions = createComputedCompilerOptions({
90159015
moduleResolution: {
90169016
dependencies: ["module", "target"],
90179017
computeValue: (compilerOptions): ModuleResolutionKind => {
9018-
let moduleResolution = compilerOptions.moduleResolution;
9019-
if (moduleResolution === undefined) {
9020-
switch (_computedOptions.module.computeValue(compilerOptions)) {
9021-
case ModuleKind.Node16:
9022-
case ModuleKind.Node18:
9023-
case ModuleKind.Node20:
9024-
moduleResolution = ModuleResolutionKind.Node16;
9025-
break;
9026-
case ModuleKind.NodeNext:
9027-
moduleResolution = ModuleResolutionKind.NodeNext;
9028-
break;
9029-
case ModuleKind.CommonJS:
9030-
case ModuleKind.Preserve:
9031-
moduleResolution = ModuleResolutionKind.Bundler;
9032-
break;
9033-
default:
9034-
moduleResolution = ModuleResolutionKind.Classic;
9035-
break;
9036-
}
9018+
if (compilerOptions.moduleResolution !== undefined) {
9019+
return compilerOptions.moduleResolution;
90379020
}
9038-
return moduleResolution;
9021+
const moduleKind = _computedOptions.module.computeValue(compilerOptions);
9022+
switch (moduleKind) {
9023+
case ModuleKind.None:
9024+
case ModuleKind.AMD:
9025+
case ModuleKind.UMD:
9026+
case ModuleKind.System:
9027+
return ModuleResolutionKind.Classic;
9028+
case ModuleKind.NodeNext:
9029+
return ModuleResolutionKind.NodeNext;
9030+
}
9031+
if (ModuleKind.Node16 <= moduleKind && moduleKind < ModuleKind.NodeNext) {
9032+
return ModuleResolutionKind.Node16;
9033+
}
9034+
return ModuleResolutionKind.Bundler;
90399035
},
90409036
},
90419037
moduleDetection: {
@@ -9075,7 +9071,7 @@ const _computedOptions = createComputedCompilerOptions({
90759071
},
90769072
},
90779073
resolvePackageJsonExports: {
9078-
dependencies: ["moduleResolution"],
9074+
dependencies: ["moduleResolution", "module", "target"],
90799075
computeValue: (compilerOptions): boolean => {
90809076
const moduleResolution = _computedOptions.moduleResolution.computeValue(compilerOptions);
90819077
if (!moduleResolutionSupportsPackageJsonExportsAndImports(moduleResolution)) {
@@ -9094,7 +9090,7 @@ const _computedOptions = createComputedCompilerOptions({
90949090
},
90959091
},
90969092
resolvePackageJsonImports: {
9097-
dependencies: ["moduleResolution", "resolvePackageJsonExports"],
9093+
dependencies: ["moduleResolution", "resolvePackageJsonExports", "module", "target"],
90989094
computeValue: (compilerOptions): boolean => {
90999095
const moduleResolution = _computedOptions.moduleResolution.computeValue(compilerOptions);
91009096
if (!moduleResolutionSupportsPackageJsonExportsAndImports(moduleResolution)) {

src/services/completions.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -481,7 +481,7 @@ export const enum SymbolOriginInfoKind {
481481
ComputedPropertyName = 1 << 9,
482482

483483
SymbolMemberNoExport = SymbolMember,
484-
SymbolMemberExport = SymbolMember | Export,
484+
SymbolMemberExport = SymbolMember | ResolvedExport,
485485
}
486486

487487
/** @internal */
@@ -535,7 +535,7 @@ function originIsExport(origin: SymbolOriginInfo | undefined): origin is SymbolO
535535
}
536536

537537
function originIsResolvedExport(origin: SymbolOriginInfo | undefined): origin is SymbolOriginInfoResolvedExport {
538-
return !!(origin && origin.kind === SymbolOriginInfoKind.ResolvedExport);
538+
return !!(origin && origin.kind & SymbolOriginInfoKind.ResolvedExport);
539539
}
540540

541541
function originIncludesSymbolName(origin: SymbolOriginInfo | undefined): origin is SymbolOriginInfoExport | SymbolOriginInfoResolvedExport | SymbolOriginInfoComputedPropertyName {
@@ -2621,12 +2621,12 @@ function isRecommendedCompletionMatch(localSymbol: Symbol, recommendedCompletion
26212621
}
26222622

26232623
function getSourceFromOrigin(origin: SymbolOriginInfo | undefined): string | undefined {
2624-
if (originIsExport(origin)) {
2625-
return stripQuotes(origin.moduleSymbol.name);
2626-
}
26272624
if (originIsResolvedExport(origin)) {
26282625
return origin.moduleSpecifier;
26292626
}
2627+
if (originIsExport(origin)) {
2628+
return stripQuotes(origin.moduleSymbol.name);
2629+
}
26302630
if (origin?.kind === SymbolOriginInfoKind.ThisType) {
26312631
return CompletionSource.ThisProperty;
26322632
}

src/testRunner/unittests/evaluation/awaitUsingDeclarations.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1445,7 +1445,7 @@ describe("unittests:: evaluation:: awaitUsingDeclarations", () => {
14451445
export const y = 2;
14461446
output.push("after export y");
14471447
`,
1448-
{ target: ts.ScriptTarget.ES2018, module: ts.ModuleKind.System },
1448+
{ target: ts.ScriptTarget.ES2018, module: ts.ModuleKind.System, ignoreDeprecations: "6.0" },
14491449
);
14501450

14511451
assert.strictEqual(x, 1);

src/testRunner/unittests/evaluation/updateExpressionInModule.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ describe("unittests:: evaluation:: updateExpressionInModule", () => {
3131
},
3232
rootFiles: ["/.src/main.ts"],
3333
main: "/.src/main.ts",
34-
}, { module: ts.ModuleKind.System });
34+
}, { module: ts.ModuleKind.System, ignoreDeprecations: "6.0" });
3535
assert.equal(result.a, 2);
3636
assert.equal(result.b, 2);
3737
});
@@ -67,7 +67,7 @@ describe("unittests:: evaluation:: updateExpressionInModule", () => {
6767
rootFiles: ["/.src/main.ts"],
6868
main: "/.src/main.ts",
6969
},
70-
{ module: ts.ModuleKind.System },
70+
{ module: ts.ModuleKind.System, ignoreDeprecations: "6.0" },
7171
{ BigInt },
7272
);
7373
assert.equal(result.a, BigInt(2));
@@ -99,7 +99,7 @@ describe("unittests:: evaluation:: updateExpressionInModule", () => {
9999
},
100100
rootFiles: ["/.src/main.ts"],
101101
main: "/.src/main.ts",
102-
}, { module: ts.ModuleKind.System });
102+
}, { module: ts.ModuleKind.System, ignoreDeprecations: "6.0" });
103103
assert.equal(result.a, 2);
104104
assert.equal(result.b, 1);
105105
});
@@ -135,7 +135,7 @@ describe("unittests:: evaluation:: updateExpressionInModule", () => {
135135
rootFiles: ["/.src/main.ts"],
136136
main: "/.src/main.ts",
137137
},
138-
{ module: ts.ModuleKind.System },
138+
{ module: ts.ModuleKind.System, ignoreDeprecations: "6.0" },
139139
{ BigInt },
140140
);
141141
assert.equal(result.a, BigInt(2));

src/testRunner/unittests/evaluation/usingDeclarations.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1594,7 +1594,7 @@ describe("unittests:: evaluation:: usingDeclarations", () => {
15941594
export const y = 2;
15951595
output.push("after export y");
15961596
`,
1597-
{ target: ts.ScriptTarget.ES2018, module: ts.ModuleKind.AMD },
1597+
{ target: ts.ScriptTarget.ES2018, module: ts.ModuleKind.AMD, ignoreDeprecations: "6.0" },
15981598
);
15991599

16001600
assert.strictEqual(x, 1);
@@ -1624,7 +1624,7 @@ describe("unittests:: evaluation:: usingDeclarations", () => {
16241624
export const y = 2;
16251625
output.push("after export y");
16261626
`,
1627-
{ target: ts.ScriptTarget.ES2018, module: ts.ModuleKind.System },
1627+
{ target: ts.ScriptTarget.ES2018, module: ts.ModuleKind.System, ignoreDeprecations: "6.0" },
16281628
);
16291629

16301630
assert.strictEqual(x, 1);

src/testRunner/unittests/tscWatch/incremental.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -130,7 +130,7 @@ describe("unittests:: tscWatch:: incremental:: emit file --incremental", () => {
130130
};
131131
const config: File = {
132132
path: configFile.path,
133-
content: jsonToReadableText({ compilerOptions: { incremental: true, module: "amd" } }),
133+
content: jsonToReadableText({ compilerOptions: { incremental: true, module: "amd", ignoreDeprecations: "6.0" } }),
134134
};
135135

136136
verifyIncrementalWatchEmit({
@@ -202,6 +202,7 @@ describe("unittests:: tscWatch:: incremental:: emit file --incremental", () => {
202202
incremental: true,
203203
module: ts.ModuleKind.AMD,
204204
configFilePath: config.path,
205+
ignoreDeprecations: "6.0",
205206
});
206207

207208
assert.equal(ts.arrayFrom(builderProgram.state.referencedMap!.keys()).length, 0);
@@ -228,7 +229,7 @@ describe("unittests:: tscWatch:: incremental:: emit file --incremental", () => {
228229
verifyIncrementalWatchEmit({
229230
files: () => [file1, file2, {
230231
path: configFile.path,
231-
content: jsonToReadableText({ compilerOptions: { incremental: true, module: "amd", outFile: "out.js" } }),
232+
content: jsonToReadableText({ compilerOptions: { incremental: true, module: "amd", outFile: "out.js", ignoreDeprecations: "6.0" } }),
232233
}],
233234
subScenario: "module compilation/with --out",
234235
});

0 commit comments

Comments
 (0)