diff --git a/modules/@angular/compiler-cli/integrationtest/src/module.ts b/modules/@angular/compiler-cli/integrationtest/src/module.ts index f21a493739..f0794d18f4 100644 --- a/modules/@angular/compiler-cli/integrationtest/src/module.ts +++ b/modules/@angular/compiler-cli/integrationtest/src/module.ts @@ -9,6 +9,7 @@ import {ApplicationRef, NgModule} from '@angular/core'; import {FormsModule} from '@angular/forms'; import {BrowserModule} from '@angular/platform-browser'; +import {MdButtonModule} from '@angular2-material/button'; import {AnimateCmp} from './animate'; import {BasicComp} from './basic'; @@ -25,7 +26,10 @@ import {CompWithChildQuery, CompWithDirectiveChild} from './queries'; CompWithDirectiveChild, CompUsingRootModuleDirectiveAndPipe, CompWithProviders, CompWithReferences, CompUsingPipes ], - imports: [BrowserModule, FormsModule, someLibModuleWithProviders(), ModuleUsingCustomElements], + imports: [ + BrowserModule, FormsModule, someLibModuleWithProviders(), ModuleUsingCustomElements, + MdButtonModule + ], providers: [SomeService], entryComponents: [ AnimateCmp, BasicComp, CompWithEntryComponents, CompWithAnalyzeEntryComponentsProvider, diff --git a/modules/@angular/compiler-cli/integrationtest/test/basic_spec.ts b/modules/@angular/compiler-cli/integrationtest/test/basic_spec.ts index 45a3952e28..81f8d9e2da 100644 --- a/modules/@angular/compiler-cli/integrationtest/test/basic_spec.ts +++ b/modules/@angular/compiler-cli/integrationtest/test/basic_spec.ts @@ -36,6 +36,12 @@ describe('template codegen output', () => { expect(fs.readFileSync(dtsOutput, {encoding: 'utf-8'})).toContain('Basic'); }); + it('should write .ngfactory.ts for .d.ts inputs', () => { + const factoryOutput = + path.join('node_modules', '@angular2-material', 'button', 'button.ngfactory.ts'); + expect(fs.existsSync(factoryOutput)).toBeTruthy(); + }); + it('should be able to create the basic component', () => { var compFixture = createComponent(BasicComp); expect(compFixture.componentInstance).toBeTruthy(); diff --git a/modules/@angular/compiler/src/offline_compiler.ts b/modules/@angular/compiler/src/offline_compiler.ts index ae94fcb67c..438f62f975 100644 --- a/modules/@angular/compiler/src/offline_compiler.ts +++ b/modules/@angular/compiler/src/offline_compiler.ts @@ -58,7 +58,7 @@ export class OfflineCompiler { compile( moduleUrl: string, ngModulesSummary: NgModulesSummary, components: StaticSymbol[], ngModules: StaticSymbol[]): Promise { - let fileSuffix = _splitLastSuffix(moduleUrl)[1]; + let fileSuffix = _splitTypescriptSuffix(moduleUrl)[1]; let statements: o.Statement[] = []; let exportedVars: string[] = []; let outputSourceModules: SourceModule[] = []; @@ -203,7 +203,7 @@ function _resolveStyleStatements( } function _ngfactoryModuleUrl(compUrl: string): string { - var urlWithSuffix = _splitLastSuffix(compUrl); + var urlWithSuffix = _splitTypescriptSuffix(compUrl); return `${urlWithSuffix[0]}.ngfactory${urlWithSuffix[1]}`; } @@ -221,7 +221,10 @@ function _assertComponent(meta: CompileDirectiveMetadata) { } } -function _splitLastSuffix(path: string): string[] { +function _splitTypescriptSuffix(path: string): string[] { + if (/\.d\.ts$/.test(path)) { + return [path.substring(0, path.length - 5), '.ts']; + } let lastDot = path.lastIndexOf('.'); if (lastDot !== -1) { return [path.substring(0, lastDot), path.substring(lastDot)]; diff --git a/scripts/ci-lite/offline_compiler_test.sh b/scripts/ci-lite/offline_compiler_test.sh index cf956fa539..f6c81683bb 100755 --- a/scripts/ci-lite/offline_compiler_test.sh +++ b/scripts/ci-lite/offline_compiler_test.sh @@ -13,6 +13,7 @@ PKGS=( rxjs @types/{node,jasmine} jasmine + @angular2-material/{core,button} ) TMPDIR=${TMPDIR:-.}