Skip to content

Commit e1ede37

Browse files
authored
Add name to amd definition in umd module if present (microsoft#18479)
1 parent 0747b33 commit e1ede37

File tree

5 files changed

+37
-0
lines changed

5 files changed

+37
-0
lines changed

src/compiler/transformers/module/module.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -200,6 +200,7 @@ namespace ts {
200200
*/
201201
function transformUMDModule(node: SourceFile) {
202202
const { aliasedModuleNames, unaliasedModuleNames, importAliasNames } = collectAsynchronousDependencies(node, /*includeNonAmdDependencies*/ false);
203+
const moduleName = tryGetModuleNameFromFile(node, host, compilerOptions);
203204
const umdHeader = createFunctionExpression(
204205
/*modifiers*/ undefined,
205206
/*asteriskToken*/ undefined,
@@ -260,6 +261,8 @@ namespace ts {
260261
createIdentifier("define"),
261262
/*typeArguments*/ undefined,
262263
[
264+
// Add the module name (if provided).
265+
...(moduleName ? [moduleName] : []),
263266
createArrayLiteral([
264267
createLiteral("require"),
265268
createLiteral("exports"),
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
//// [main.ts]
2+
/// <amd-module name="a"/>
3+
export const a = 1;
4+
5+
//// [main.js]
6+
(function (factory) {
7+
if (typeof module === "object" && typeof module.exports === "object") {
8+
var v = factory(require, exports);
9+
if (v !== undefined) module.exports = v;
10+
}
11+
else if (typeof define === "function" && define.amd) {
12+
define("a", ["require", "exports"], factory);
13+
}
14+
})(function (require, exports) {
15+
"use strict";
16+
exports.__esModule = true;
17+
/// <amd-module name="a"/>
18+
exports.a = 1;
19+
});
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
=== tests/cases/compiler/main.ts ===
2+
/// <amd-module name="a"/>
3+
export const a = 1;
4+
>a : Symbol(a, Decl(main.ts, 1, 12))
5+
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
=== tests/cases/compiler/main.ts ===
2+
/// <amd-module name="a"/>
3+
export const a = 1;
4+
>a : 1
5+
>1 : 1
6+
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
// @module: umd
2+
// @filename: main.ts
3+
/// <amd-module name="a"/>
4+
export const a = 1;

0 commit comments

Comments
 (0)