Skip to content

Commit 99cf9b3

Browse files
committed
Deprecate --module amd, umd, system, none; --moduleResolution classic; change defaults (microsoft#62669)
1 parent 050a6f8 commit 99cf9b3

File tree

1,930 files changed

+51591
-8741
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,930 files changed

+51591
-8741
lines changed

src/compiler/commandLineParser.ts

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

src/compiler/diagnosticMessages.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6603,7 +6603,7 @@
66036603
"category": "Message",
66046604
"code": 6909
66056605
},
6606-
"module === `AMD` or `UMD` or `System` or `ES6`, then `Classic`, Otherwise `Node`": {
6606+
"`nodenext` if `module` is `nodenext`; `node16` if `module` is `node16` or `node18`; otherwise, `bundler`.": {
66076607
"category": "Message",
66086608
"code": 69010
66096609
},

src/compiler/program.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4528,6 +4528,12 @@ export function createProgram(_rootNamesOrOptions: readonly string[] | CreatePro
45284528
if (options.moduleResolution === ModuleResolutionKind.Node10) {
45294529
createDeprecatedDiagnostic("moduleResolution", "node10");
45304530
}
4531+
if (options.moduleResolution === ModuleResolutionKind.Classic) {
4532+
createDeprecatedDiagnostic("moduleResolution", "classic");
4533+
}
4534+
if (options.module === ModuleKind.None || options.module === ModuleKind.AMD || options.module === ModuleKind.UMD || options.module === ModuleKind.System) {
4535+
createDeprecatedDiagnostic("module", ModuleKind[options.module]);
4536+
}
45314537
});
45324538
}
45334539

src/compiler/types.ts

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

73337333
export enum ModuleResolutionKind {
7334+
/** @deprecated */
73347335
Classic = 1,
73357336
/**
73367337
* @deprecated
@@ -7593,10 +7594,14 @@ export interface TypeAcquisition {
75937594
}
75947595

75957596
export enum ModuleKind {
7597+
/** @deprecated */
75967598
None = 0,
75977599
CommonJS = 1,
7600+
/** @deprecated */
75987601
AMD = 2,
7602+
/** @deprecated */
75997603
UMD = 3,
7604+
/** @deprecated */
76007605
System = 4,
76017606

76027607
// 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
@@ -8985,27 +8985,23 @@ const _computedOptions = createComputedCompilerOptions({
89858985
moduleResolution: {
89868986
dependencies: ["module", "target"],
89878987
computeValue: (compilerOptions): ModuleResolutionKind => {
8988-
let moduleResolution = compilerOptions.moduleResolution;
8989-
if (moduleResolution === undefined) {
8990-
switch (_computedOptions.module.computeValue(compilerOptions)) {
8991-
case ModuleKind.Node16:
8992-
case ModuleKind.Node18:
8993-
case ModuleKind.Node20:
8994-
moduleResolution = ModuleResolutionKind.Node16;
8995-
break;
8996-
case ModuleKind.NodeNext:
8997-
moduleResolution = ModuleResolutionKind.NodeNext;
8998-
break;
8999-
case ModuleKind.CommonJS:
9000-
case ModuleKind.Preserve:
9001-
moduleResolution = ModuleResolutionKind.Bundler;
9002-
break;
9003-
default:
9004-
moduleResolution = ModuleResolutionKind.Classic;
9005-
break;
9006-
}
8988+
if (compilerOptions.moduleResolution !== undefined) {
8989+
return compilerOptions.moduleResolution;
90078990
}
9008-
return moduleResolution;
8991+
const moduleKind = _computedOptions.module.computeValue(compilerOptions);
8992+
switch (moduleKind) {
8993+
case ModuleKind.None:
8994+
case ModuleKind.AMD:
8995+
case ModuleKind.UMD:
8996+
case ModuleKind.System:
8997+
return ModuleResolutionKind.Classic;
8998+
case ModuleKind.NodeNext:
8999+
return ModuleResolutionKind.NodeNext;
9000+
}
9001+
if (ModuleKind.Node16 <= moduleKind && moduleKind < ModuleKind.NodeNext) {
9002+
return ModuleResolutionKind.Node16;
9003+
}
9004+
return ModuleResolutionKind.Bundler;
90099005
},
90109006
},
90119007
moduleDetection: {
@@ -9055,7 +9051,7 @@ const _computedOptions = createComputedCompilerOptions({
90559051
},
90569052
},
90579053
resolvePackageJsonExports: {
9058-
dependencies: ["moduleResolution"],
9054+
dependencies: ["moduleResolution", "module", "target"],
90599055
computeValue: (compilerOptions): boolean => {
90609056
const moduleResolution = _computedOptions.moduleResolution.computeValue(compilerOptions);
90619057
if (!moduleResolutionSupportsPackageJsonExportsAndImports(moduleResolution)) {
@@ -9074,7 +9070,7 @@ const _computedOptions = createComputedCompilerOptions({
90749070
},
90759071
},
90769072
resolvePackageJsonImports: {
9077-
dependencies: ["moduleResolution", "resolvePackageJsonExports"],
9073+
dependencies: ["moduleResolution", "resolvePackageJsonExports", "module", "target"],
90789074
computeValue: (compilerOptions): boolean => {
90799075
const moduleResolution = _computedOptions.moduleResolution.computeValue(compilerOptions);
90809076
if (!moduleResolutionSupportsPackageJsonExportsAndImports(moduleResolution)) {

src/services/completions.ts

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

484484
SymbolMemberNoExport = SymbolMember,
485-
SymbolMemberExport = SymbolMember | Export,
485+
SymbolMemberExport = SymbolMember | ResolvedExport,
486486
}
487487

488488
/** @internal */
@@ -536,7 +536,7 @@ function originIsExport(origin: SymbolOriginInfo | undefined): origin is SymbolO
536536
}
537537

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

542542
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)