Skip to content

Commit

Permalink
feat(@schematics/angular): let Universal schematic use configurations…
Browse files Browse the repository at this point in the history
… from build architect
  • Loading branch information
beeman authored and alexeagle committed Sep 6, 2018
1 parent 01beb52 commit a94c826
Show file tree
Hide file tree
Showing 2 changed files with 27 additions and 0 deletions.
20 changes: 20 additions & 0 deletions packages/schematics/angular/universal/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -68,6 +68,16 @@ function getClientTargets(
return projectTargets;
}

// TODO: Add types for the Target
// tslint:disable-next-line:no-any
function getFileReplacements(target: any ) {
const configurations = target.configurations || {};
const production = configurations.production || {};
const fileReplacements = production.fileReplacements || [];

return fileReplacements;
}

function updateConfigFile(options: UniversalOptions, tsConfigDirectory: Path): Rule {
return (host: Tree) => {
const workspace = getWorkspace(host);
Expand All @@ -83,9 +93,19 @@ function updateConfigFile(options: UniversalOptions, tsConfigDirectory: Path): R
main: `${clientProject.root}src/main.server.ts`,
tsConfig: join(tsConfigDirectory, `${options.tsconfigFileName}.json`),
};

// TODO: Add types for the TargetConfiguration
// tslint:disable-next-line:no-any
const builderConfigurations: any = {
production: {
fileReplacements: getFileReplacements(projectTargets.build),
},
};

const serverTarget: JsonObject = {
builder: '@angular-devkit/build-angular:server',
options: builderOptions,
configurations: builderConfigurations,
};
projectTargets.server = serverTarget;

Expand Down
7 changes: 7 additions & 0 deletions packages/schematics/angular/universal/index_spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -130,6 +130,13 @@ describe('Universal Schematic', () => {
expect(opts.outputPath).toEqual('dist/bar-server');
expect(opts.main).toEqual('projects/bar/src/main.server.ts');
expect(opts.tsConfig).toEqual('projects/bar/tsconfig.server.json');
const configurations = targets.server.configurations;
expect(configurations.production).toBeDefined();
expect(configurations.production.fileReplacements).toBeDefined();
const fileReplacements = targets.server.configurations.production.fileReplacements;
expect(fileReplacements.length).toEqual(1);
expect(fileReplacements[0].replace).toEqual('projects/bar/src/environments/environment.ts');
expect(fileReplacements[0].with).toEqual('projects/bar/src/environments/environment.prod.ts');
});

it('should add a server transition to BrowerModule import', () => {
Expand Down

0 comments on commit a94c826

Please sign in to comment.