diff --git a/src/compiler/diagnosticMessages.json b/src/compiler/diagnosticMessages.json index 0685eb44304..a222aa6a344 100644 --- a/src/compiler/diagnosticMessages.json +++ b/src/compiler/diagnosticMessages.json @@ -2302,7 +2302,7 @@ "category": "Message", "code": 6081 }, - "Only 'amd', 'umd', and 'system' modules are supported alongside --{0}.": { + "Only 'amd' and 'system' modules are supported alongside --{0}.": { "category": "Error", "code": 6082 }, diff --git a/src/compiler/emitter.ts b/src/compiler/emitter.ts index 7e4a1714d51..4ce0a39eb07 100644 --- a/src/compiler/emitter.ts +++ b/src/compiler/emitter.ts @@ -457,11 +457,11 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, Promi }; let bundleEmitDelegates: Map<(node: SourceFile, startIndex: number, resolvePath?: boolean) => void> = { - [ModuleKind.ES6]() { }, + [ModuleKind.ES6]() {}, [ModuleKind.AMD]: emitAMDModule, [ModuleKind.System]: emitSystemModule, - [ModuleKind.UMD]: emitUMDModule, - [ModuleKind.CommonJS]() { }, + [ModuleKind.UMD]() {}, + [ModuleKind.CommonJS]() {}, }; if (compilerOptions.sourceMap || compilerOptions.inlineSourceMap) { @@ -6827,11 +6827,11 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, Promi emitExportEquals(/*emitAsReturn*/ false); } - function emitUMDModule(node: SourceFile, startIndex: number, resolvePath?: boolean) { + function emitUMDModule(node: SourceFile, startIndex: number) { emitEmitHelpers(node); collectExternalModuleInfo(node); - let dependencyNames = getAMDDependencyNames(node, /*includeNonAmdDependencies*/ false, resolvePath); + let dependencyNames = getAMDDependencyNames(node, /*includeNonAmdDependencies*/ false); // Module is detected first to support Browserify users that load into a browser with an AMD loader writeLines(`(function (factory) { diff --git a/src/compiler/program.ts b/src/compiler/program.ts index 163ddfa36c1..0cdcddbb0ed 100644 --- a/src/compiler/program.ts +++ b/src/compiler/program.ts @@ -1064,8 +1064,8 @@ namespace ts { } // Cannot specify module gen that isn't amd, umd, or system with --out - if (outFile && options.module && options.module !== ModuleKind.AMD && options.module !== ModuleKind.UMD && options.module !== ModuleKind.System) { - programDiagnostics.add(createCompilerDiagnostic(Diagnostics.Only_amd_umd_and_system_modules_are_supported_alongside_0, options.out ? "out" : "outFile")); + if (outFile && options.module && options.module !== ModuleKind.AMD && options.module !== ModuleKind.System) { + programDiagnostics.add(createCompilerDiagnostic(Diagnostics.Only_amd_and_system_modules_are_supported_alongside_0, options.out ? "out" : "outFile")); } if (options.noEmit) { diff --git a/tests/cases/compiler/outModuleConcatAmd.ts b/tests/cases/compiler/outModuleConcatAmd.ts new file mode 100644 index 00000000000..411a13e72a2 --- /dev/null +++ b/tests/cases/compiler/outModuleConcatAmd.ts @@ -0,0 +1,12 @@ +// @target: ES5 +// @sourcemap: true +// @declaration: true +// @module: amd +// @outFile: all.js + +// @Filename: ref/a.ts +export class A { } + +// @Filename: b.ts +import {A} from "./ref/a"; +export class B extends A { } \ No newline at end of file diff --git a/tests/cases/compiler/outModuleConcatCommonjs.ts b/tests/cases/compiler/outModuleConcatCommonjs.ts new file mode 100644 index 00000000000..0cb57bd11e7 --- /dev/null +++ b/tests/cases/compiler/outModuleConcatCommonjs.ts @@ -0,0 +1,14 @@ +// @target: ES5 +// @sourcemap: true +// @declaration: true +// @module: commonjs +// @outFile: all.js + +// This should be an error + +// @Filename: ref/a.ts +export class A { } + +// @Filename: b.ts +import {A} from "./ref/a"; +export class B extends A { } \ No newline at end of file diff --git a/tests/cases/compiler/outModuleConcatES6.ts b/tests/cases/compiler/outModuleConcatES6.ts new file mode 100644 index 00000000000..e98514e9adc --- /dev/null +++ b/tests/cases/compiler/outModuleConcatES6.ts @@ -0,0 +1,14 @@ +// @target: ES6 +// @sourcemap: true +// @declaration: true +// @module: es6 +// @outFile: all.js + +// This should be an error + +// @Filename: ref/a.ts +export class A { } + +// @Filename: b.ts +import {A} from "./ref/a"; +export class B extends A { } \ No newline at end of file diff --git a/tests/cases/compiler/outModuleConcatSystem.ts b/tests/cases/compiler/outModuleConcatSystem.ts new file mode 100644 index 00000000000..c8d9b4e9737 --- /dev/null +++ b/tests/cases/compiler/outModuleConcatSystem.ts @@ -0,0 +1,12 @@ +// @target: ES5 +// @sourcemap: true +// @declaration: true +// @module: system +// @outFile: all.js + +// @Filename: ref/a.ts +export class A { } + +// @Filename: b.ts +import {A} from "./ref/a"; +export class B extends A { } \ No newline at end of file diff --git a/tests/cases/compiler/outModuleConcatUmd.ts b/tests/cases/compiler/outModuleConcatUmd.ts new file mode 100644 index 00000000000..fa4a4a519c6 --- /dev/null +++ b/tests/cases/compiler/outModuleConcatUmd.ts @@ -0,0 +1,14 @@ +// @target: ES5 +// @sourcemap: true +// @declaration: true +// @module: umd +// @outFile: all.js + +// This should error + +// @Filename: ref/a.ts +export class A { } + +// @Filename: b.ts +import {A} from "./ref/a"; +export class B extends A { } \ No newline at end of file