Add name to amd definition in umd module if present (#18479)

This commit is contained in:
Wesley Wigham 2017-09-14 14:41:56 -07:00 committed by GitHub
parent 0747b33038
commit e1ede37ec7
5 changed files with 37 additions and 0 deletions

View File

@ -200,6 +200,7 @@ namespace ts {
*/
function transformUMDModule(node: SourceFile) {
const { aliasedModuleNames, unaliasedModuleNames, importAliasNames } = collectAsynchronousDependencies(node, /*includeNonAmdDependencies*/ false);
const moduleName = tryGetModuleNameFromFile(node, host, compilerOptions);
const umdHeader = createFunctionExpression(
/*modifiers*/ undefined,
/*asteriskToken*/ undefined,
@ -260,6 +261,8 @@ namespace ts {
createIdentifier("define"),
/*typeArguments*/ undefined,
[
// Add the module name (if provided).
...(moduleName ? [moduleName] : []),
createArrayLiteral([
createLiteral("require"),
createLiteral("exports"),

View File

@ -0,0 +1,19 @@
//// [main.ts]
/// <amd-module name="a"/>
export const a = 1;
//// [main.js]
(function (factory) {
if (typeof module === "object" && typeof module.exports === "object") {
var v = factory(require, exports);
if (v !== undefined) module.exports = v;
}
else if (typeof define === "function" && define.amd) {
define("a", ["require", "exports"], factory);
}
})(function (require, exports) {
"use strict";
exports.__esModule = true;
/// <amd-module name="a"/>
exports.a = 1;
});

View File

@ -0,0 +1,5 @@
=== tests/cases/compiler/main.ts ===
/// <amd-module name="a"/>
export const a = 1;
>a : Symbol(a, Decl(main.ts, 1, 12))

View File

@ -0,0 +1,6 @@
=== tests/cases/compiler/main.ts ===
/// <amd-module name="a"/>
export const a = 1;
>a : 1
>1 : 1

View File

@ -0,0 +1,4 @@
// @module: umd
// @filename: main.ts
/// <amd-module name="a"/>
export const a = 1;