From 6de5221dcddf3da57869a370abf6166993ebff2f Mon Sep 17 00:00:00 2001 From: Wesley Wigham Date: Mon, 2 Nov 2015 12:53:27 -0800 Subject: [PATCH] dont mutate --- src/compiler/declarationEmitter.ts | 2 +- src/compiler/emitter.ts | 32 +++++++++++++----------------- 2 files changed, 15 insertions(+), 19 deletions(-) diff --git a/src/compiler/declarationEmitter.ts b/src/compiler/declarationEmitter.ts index 426000f6282..cfb7c98968b 100644 --- a/src/compiler/declarationEmitter.ts +++ b/src/compiler/declarationEmitter.ts @@ -130,7 +130,7 @@ namespace ts { } else if (isExternalModule(sourceFile)) { noDeclare = true; - write(`declare module "${sourceFile.moduleName}" {`); + write(`declare module "${getModuleName(host, sourceFile)}" {`); writeLine(); increaseIndent(); emitSourceFile(sourceFile); diff --git a/src/compiler/emitter.ts b/src/compiler/emitter.ts index 1343a5c85d9..2c6e2dc621f 100644 --- a/src/compiler/emitter.ts +++ b/src/compiler/emitter.ts @@ -7,6 +7,10 @@ namespace ts { return isExternalModule(sourceFile) || isDeclarationFile(sourceFile); } + export function getModuleName(host: EmitHost, file: SourceFile): string { + return file.moduleName || getExternalModuleNameFromPath(host, file.fileName); + } + type DependencyGroup = Array; let entities: Map = { @@ -578,12 +582,9 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, Promi forEach(host.getSourceFiles(), emitEmitHelpers); } forEach(host.getSourceFiles(), sourceFile => { - if (!isExternalModuleOrDeclarationFile(sourceFile)) { + if ((!isExternalModuleOrDeclarationFile(sourceFile)) || (modulekind && isExternalModule(sourceFile))) { emitSourceFile(sourceFile); } - else if (modulekind && isExternalModule(sourceFile)) { - emitConcatenatedModule(sourceFile); - } }); } @@ -597,14 +598,6 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, Promi emit(sourceFile); } - function emitConcatenatedModule(sourceFile: SourceFile): void { - currentSourceFile = sourceFile; - exportFunctionForFile = undefined; - let canonicalName = getExternalModuleNameFromPath(host, sourceFile.fileName); - sourceFile.moduleName = sourceFile.moduleName || canonicalName; - emit(sourceFile); - } - function isUniqueName(name: string): boolean { return !resolver.hasGlobalName(name) && !hasProperty(currentSourceFile.identifiers, name) && @@ -7282,6 +7275,13 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, Promi write("}"); // execute } + function writeModuleName(node: SourceFile, resolveModuleNames?: boolean): void { + let moduleName = node.moduleName; + if (moduleName || (resolveModuleNames && (moduleName = getModuleName(host, node)))) { + write(`"${moduleName}", `); + } + } + function emitSystemModule(node: SourceFile, resolveModuleNames?: boolean): void { collectExternalModuleInfo(node); // System modules has the following shape @@ -7297,9 +7297,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, Promi exportFunctionForFile = makeUniqueName("exports"); writeLine(); write("System.register("); - if (node.moduleName) { - write(`"${node.moduleName}", `); - } + writeModuleName(node, resolveModuleNames); write("["); let groupIndices: Map = {}; @@ -7459,9 +7457,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, Promi writeLine(); write("define("); - if (node.moduleName) { - write("\"" + node.moduleName + "\", "); - } + writeModuleName(node, resolveModuleNames); emitAMDDependencies(node, /*includeNonAmdDependencies*/ true, resolveModuleNames); increaseIndent(); let startIndex = emitDirectivePrologues(node.statements, /*startWithNewLine*/ true);