Skip to content

Commit 1609554

Browse files
Broccohansl
authored andcommitted
refactor(@angular/cli): consolidate config reading logic (#5023)
1 parent 211270d commit 1609554

File tree

22 files changed

+64
-117
lines changed

22 files changed

+64
-117
lines changed

packages/@angular/cli/addon/index.js

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,11 @@
11
/* jshint node: true */
22
'use strict';
33

4-
const config = require('../models/config');
54
const path = require('path');
65

76
module.exports = {
87
name: 'ng',
98

10-
config: function () {
11-
this.project.ngConfigObj = this.project.ngConfigObj || config.CliConfig.fromProject();
12-
this.project.ngConfig = this.project.ngConfig || (
13-
this.project.ngConfigObj && this.project.ngConfigObj.config);
14-
},
15-
169
blueprintsPath: function () {
1710
return path.join(__dirname, '../blueprints');
1811
},

packages/@angular/cli/blueprints/class/index.ts

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -24,9 +24,7 @@ export default Blueprint.extend({
2424
],
2525

2626
normalizeEntityName: function (entityName: string) {
27-
const cliConfig = CliConfig.fromProject();
28-
const ngConfig = cliConfig && cliConfig.config;
29-
const appConfig = getAppFromConfig(ngConfig.apps, this.options.app);
27+
const appConfig = getAppFromConfig(this.options.app);
3028
const parsedPath = dynamicPathParser(this.project, entityName.split('.')[0], appConfig);
3129

3230
this.dynamicPath = parsedPath;
@@ -44,10 +42,8 @@ export default Blueprint.extend({
4442
this.fileName += '.' + classType.toLowerCase();
4543
}
4644

47-
const cliConfig = CliConfig.fromProject();
4845
options.spec = options.spec !== undefined ?
49-
options.spec :
50-
cliConfig && cliConfig.get('defaults.class.spec');
46+
options.spec : CliConfig.getValue('defaults.class.spec');
5147

5248
return {
5349
dynamicPath: this.dynamicPath.dir,

packages/@angular/cli/blueprints/component/index.ts

Lines changed: 10 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -83,9 +83,7 @@ export default Blueprint.extend({
8383
],
8484

8585
beforeInstall: function (options: any) {
86-
const cliConfig = CliConfig.fromProject();
87-
const ngConfig = cliConfig && cliConfig.config;
88-
const appConfig = getAppFromConfig(ngConfig.apps, this.options.app);
86+
const appConfig = getAppFromConfig(this.options.app);
8987
if (options.module) {
9088
// Resolve path to module
9189
const modulePath = options.module.endsWith('.ts') ? options.module : `${options.module}.ts`;
@@ -108,9 +106,7 @@ export default Blueprint.extend({
108106
},
109107

110108
normalizeEntityName: function (entityName: string) {
111-
const cliConfig = CliConfig.fromProject();
112-
const ngConfig = cliConfig && cliConfig.config;
113-
const appConfig = getAppFromConfig(ngConfig.apps, this.options.app);
109+
const appConfig = getAppFromConfig(this.options.app);
114110
const parsedPath = dynamicPathParser(this.project, entityName, appConfig);
115111

116112
this.dynamicPath = parsedPath;
@@ -131,37 +127,25 @@ export default Blueprint.extend({
131127
},
132128

133129
locals: function (options: any) {
134-
const cliConfig = CliConfig.fromProject();
135-
const ngConfig = cliConfig && cliConfig.config;
136-
137-
this.styleExt = 'css';
138-
if (ngConfig && ngConfig.defaults && ngConfig.defaults.styleExt) {
139-
this.styleExt = ngConfig.defaults.styleExt;
140-
}
130+
this.styleExt = CliConfig.getValue('defaults.styleExt') || 'css';
141131

142132
options.inlineStyle = options.inlineStyle !== undefined ?
143-
options.inlineStyle :
144-
cliConfig && cliConfig.get('defaults.component.inlineStyle');
133+
options.inlineStyle : CliConfig.getValue('defaults.component.inlineStyle');
145134

146135
options.inlineTemplate = options.inlineTemplate !== undefined ?
147-
options.inlineTemplate :
148-
cliConfig && cliConfig.get('defaults.component.inlineTemplate');
136+
options.inlineTemplate : CliConfig.getValue('defaults.component.inlineTemplate');
149137

150138
options.flat = options.flat !== undefined ?
151-
options.flat :
152-
cliConfig && cliConfig.get('defaults.component.flat');
139+
options.flat : CliConfig.getValue('defaults.component.flat');
153140

154141
options.spec = options.spec !== undefined ?
155-
options.spec :
156-
cliConfig && cliConfig.get('defaults.component.spec');
142+
options.spec : CliConfig.getValue('defaults.component.spec');
157143

158144
options.viewEncapsulation = options.viewEncapsulation !== undefined ?
159-
options.viewEncapsulation :
160-
cliConfig && cliConfig.get('defaults.component.viewEncapsulation');
145+
options.viewEncapsulation : CliConfig.getValue('defaults.component.viewEncapsulation');
161146

162147
options.changeDetection = options.changeDetection !== undefined ?
163-
options.changeDetection :
164-
cliConfig && cliConfig.get('defaults.component.changeDetection');
148+
options.changeDetection : CliConfig.getValue('defaults.component.changeDetection');
165149

166150
return {
167151
dynamicPath: this.dynamicPath.dir.replace(this.dynamicPath.appRoot, ''),
@@ -195,9 +179,7 @@ export default Blueprint.extend({
195179
},
196180

197181
fileMapTokens: function (options: any) {
198-
const cliConfig = CliConfig.fromProject();
199-
const ngConfig = cliConfig && cliConfig.config;
200-
const appConfig = getAppFromConfig(ngConfig.apps, this.options.app);
182+
const appConfig = getAppFromConfig(this.options.app);
201183

202184
// Return custom template variables here.
203185
return {

packages/@angular/cli/blueprints/directive/index.ts

Lines changed: 4 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -58,9 +58,7 @@ export default Blueprint.extend({
5858
],
5959

6060
beforeInstall: function(options: any) {
61-
const cliConfig = CliConfig.fromProject();
62-
const ngConfig = cliConfig && cliConfig.config;
63-
const appConfig = getAppFromConfig(ngConfig.apps, this.options.app);
61+
const appConfig = getAppFromConfig(this.options.app);
6462
if (options.module) {
6563
// Resolve path to module
6664
const modulePath = options.module.endsWith('.ts') ? options.module : `${options.module}.ts`;
@@ -83,9 +81,7 @@ export default Blueprint.extend({
8381
},
8482

8583
normalizeEntityName: function (entityName: string) {
86-
const cliConfig = CliConfig.fromProject();
87-
const ngConfig = cliConfig && cliConfig.config;
88-
const appConfig = getAppFromConfig(ngConfig.apps, this.options.app);
84+
const appConfig = getAppFromConfig(this.options.app);
8985
const parsedPath = dynamicPathParser(this.project, entityName, appConfig);
9086

9187
this.dynamicPath = parsedPath;
@@ -102,15 +98,11 @@ export default Blueprint.extend({
10298
},
10399

104100
locals: function (options: any) {
105-
const cliConfig = CliConfig.fromProject();
106-
107101
options.spec = options.spec !== undefined ?
108-
options.spec :
109-
cliConfig && cliConfig.get('defaults.directive.spec');
102+
options.spec : CliConfig.getValue('defaults.directive.spec');
110103

111104
options.flat = options.flat !== undefined ?
112-
options.flat :
113-
cliConfig && cliConfig.get('defaults.directive.flat');
105+
options.flat : CliConfig.getValue('defaults.directive.flat');
114106

115107
return {
116108
dynamicPath: this.dynamicPath.dir,

packages/@angular/cli/blueprints/enum/index.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ export default Blueprint.extend({
1717
],
1818

1919
normalizeEntityName: function (entityName: string) {
20-
const appConfig = getAppFromConfig(this.project.ngConfig.apps, this.options.app);
20+
const appConfig = getAppFromConfig(this.options.app);
2121
const parsedPath = dynamicPathParser(this.project, entityName, appConfig);
2222

2323
this.dynamicPath = parsedPath;

packages/@angular/cli/blueprints/guard/index.ts

Lines changed: 4 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -35,9 +35,7 @@ export default Blueprint.extend({
3535
],
3636

3737
beforeInstall: function(options: any) {
38-
const cliConfig = CliConfig.fromProject();
39-
const ngConfig = cliConfig && cliConfig.config;
40-
const appConfig = getAppFromConfig(ngConfig.apps, this.options.app);
38+
const appConfig = getAppFromConfig(this.options.app);
4139
if (options.module) {
4240
// Resolve path to module
4341
const modulePath = options.module.endsWith('.ts') ? options.module : `${options.module}.ts`;
@@ -51,22 +49,19 @@ export default Blueprint.extend({
5149
},
5250

5351
normalizeEntityName: function (entityName: string) {
54-
const cliConfig = CliConfig.fromProject();
55-
const ngConfig = cliConfig && cliConfig.config;
56-
const appConfig = getAppFromConfig(ngConfig.apps, this.options.app);
52+
const appConfig = getAppFromConfig(this.options.app);
5753
const parsedPath = dynamicPathParser(this.project, entityName, appConfig);
5854

5955
this.dynamicPath = parsedPath;
6056
return parsedPath.name;
6157
},
6258

6359
locals: function (options: any) {
64-
const cliConfig = CliConfig.fromProject();
6560
options.flat = options.flat !== undefined ?
66-
options.flat : cliConfig.get('defaults.guard.flat');
61+
options.flat : CliConfig.getValue('defaults.guard.flat');
6762

6863
options.spec = options.spec !== undefined ?
69-
options.spec : cliConfig.get('defaults.guard.spec');
64+
options.spec : CliConfig.getValue('defaults.guard.spec');
7065

7166
return {
7267
dynamicPath: this.dynamicPath.dir,

packages/@angular/cli/blueprints/interface/index.ts

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -22,24 +22,20 @@ export default Blueprint.extend({
2222
],
2323

2424
normalizeEntityName: function (entityName: string) {
25-
const cliConfig = CliConfig.fromProject();
26-
const ngConfig = cliConfig && cliConfig.config;
27-
const appConfig = getAppFromConfig(ngConfig.apps, this.options.app);
25+
const appConfig = getAppFromConfig(this.options.app);
2826
const parsedPath = dynamicPathParser(this.project, entityName, appConfig);
2927

3028
this.dynamicPath = parsedPath;
3129
return parsedPath.name;
3230
},
3331

3432
locals: function (options: any) {
35-
const cliConfig = CliConfig.fromProject();
36-
3733
const interfaceType = options.args[2];
3834
this.fileName = stringUtils.dasherize(options.entity.name);
3935
if (interfaceType) {
4036
this.fileName += '.' + interfaceType;
4137
}
42-
const prefix = cliConfig && cliConfig.get('defaults.interface.prefix');
38+
const prefix = CliConfig.getValue('defaults.interface.prefix');
4339
return {
4440
dynamicPath: this.dynamicPath.dir,
4541
flat: options.flat,

packages/@angular/cli/blueprints/module/index.ts

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -36,24 +36,19 @@ export default Blueprint.extend({
3636

3737
normalizeEntityName: function (entityName: string) {
3838
this.entityName = entityName;
39-
const cliConfig = CliConfig.fromProject();
40-
const ngConfig = cliConfig && cliConfig.config;
41-
const appConfig = getAppFromConfig(ngConfig.apps, this.options.app);
39+
const appConfig = getAppFromConfig(this.options.app);
4240
const parsedPath = dynamicPathParser(this.project, entityName, appConfig);
4341

4442
this.dynamicPath = parsedPath;
4543
return parsedPath.name;
4644
},
4745

4846
locals: function (options: any) {
49-
const cliConfig = CliConfig.fromProject();
5047
options.flat = options.flat !== undefined ?
51-
options.flat :
52-
cliConfig && cliConfig.get('defaults.module.flat');
48+
options.flat : CliConfig.getValue('defaults.module.flat');
5349

5450
options.spec = options.spec !== undefined ?
55-
options.spec :
56-
cliConfig && cliConfig.get('defaults.module.spec');
51+
options.spec : CliConfig.getValue('defaults.module.spec');
5752

5853
return {
5954
dynamicPath: this.dynamicPath.dir,

packages/@angular/cli/blueprints/ng/index.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ export default Blueprint.extend({
1111
availableOptions: [
1212
{ name: 'source-dir', type: String, default: 'src', aliases: ['sd'] },
1313
{ name: 'prefix', type: String, default: 'app', aliases: ['p'] },
14-
{ name: 'style', type: String, default: 'css' },
14+
{ name: 'style', type: String },
1515
{ name: 'routing', type: Boolean, default: false },
1616
{ name: 'inline-style', type: Boolean, default: false, aliases: ['is'] },
1717
{ name: 'inline-template', type: Boolean, default: false, aliases: ['it'] },
@@ -27,6 +27,10 @@ export default Blueprint.extend({
2727

2828
locals: function(options: any) {
2929
this.styleExt = options.style === 'stylus' ? 'styl' : options.style;
30+
if (!options.style) {
31+
this.styleExt = CliConfig.getValue('defaults.styleExt') || 'css';
32+
}
33+
3034
this.version = require(path.resolve(__dirname, '../../package.json')).version;
3135
// set this.tests to opposite of skipTest options,
3236
// meaning if tests are being skipped then the default.spec.BLUEPRINT will be false

packages/@angular/cli/blueprints/pipe/index.ts

Lines changed: 4 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -53,9 +53,7 @@ export default Blueprint.extend({
5353
],
5454

5555
beforeInstall: function(options: any) {
56-
const cliConfig = CliConfig.fromProject();
57-
const ngConfig = cliConfig && cliConfig.config;
58-
const appConfig = getAppFromConfig(ngConfig.apps, this.options.app);
56+
const appConfig = getAppFromConfig(this.options.app);
5957
if (options.module) {
6058
// Resolve path to module
6159
const modulePath = options.module.endsWith('.ts') ? options.module : `${options.module}.ts`;
@@ -78,24 +76,19 @@ export default Blueprint.extend({
7876
},
7977

8078
normalizeEntityName: function (entityName: string) {
81-
const cliConfig = CliConfig.fromProject();
82-
const ngConfig = cliConfig && cliConfig.config;
83-
const appConfig = getAppFromConfig(ngConfig.apps, this.options.app);
79+
const appConfig = getAppFromConfig(this.options.app);
8480
const parsedPath = dynamicPathParser(this.project, entityName, appConfig);
8581

8682
this.dynamicPath = parsedPath;
8783
return parsedPath.name;
8884
},
8985

9086
locals: function (options: any) {
91-
const cliConfig = CliConfig.fromProject();
9287
options.flat = options.flat !== undefined ?
93-
options.flat :
94-
cliConfig && cliConfig.get('defaults.pipe.flat');
88+
options.flat : CliConfig.getValue('defaults.pipe.flat');
9589

9690
options.spec = options.spec !== undefined ?
97-
options.spec :
98-
cliConfig && cliConfig.get('defaults.pipe.spec');
91+
options.spec : CliConfig.getValue('defaults.pipe.spec');
9992

10093
return {
10194
dynamicPath: this.dynamicPath.dir,

packages/@angular/cli/blueprints/service/index.ts

Lines changed: 4 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -43,9 +43,7 @@ export default Blueprint.extend({
4343
if (options.module) {
4444
// Resolve path to module
4545
const modulePath = options.module.endsWith('.ts') ? options.module : `${options.module}.ts`;
46-
const cliConfig = CliConfig.fromProject();
47-
const ngConfig = cliConfig && cliConfig.config;
48-
const appConfig = getAppFromConfig(ngConfig.apps, this.options.app);
46+
const appConfig = getAppFromConfig(this.options.app);
4947
const parsedPath = dynamicPathParser(this.project, modulePath, appConfig);
5048
this.pathToModule = path.join(this.project.root, parsedPath.dir, parsedPath.base);
5149

@@ -56,24 +54,19 @@ export default Blueprint.extend({
5654
},
5755

5856
normalizeEntityName: function (entityName: string) {
59-
const cliConfig = CliConfig.fromProject();
60-
const ngConfig = cliConfig && cliConfig.config;
61-
const appConfig = getAppFromConfig(ngConfig.apps, this.options.app);
57+
const appConfig = getAppFromConfig(this.options.app);
6258
const parsedPath = dynamicPathParser(this.project, entityName, appConfig);
6359

6460
this.dynamicPath = parsedPath;
6561
return parsedPath.name;
6662
},
6763

6864
locals: function (options: any) {
69-
const cliConfig = CliConfig.fromProject();
7065
options.flat = options.flat !== undefined ?
71-
options.flat :
72-
cliConfig && cliConfig.get('defaults.service.flat');
66+
options.flat : CliConfig.getValue('defaults.service.flat');
7367

7468
options.spec = options.spec !== undefined ?
75-
options.spec :
76-
cliConfig && cliConfig.get('defaults.service.spec');
69+
options.spec : CliConfig.getValue('defaults.service.spec');
7770

7871
return {
7972
dynamicPath: this.dynamicPath.dir,

packages/@angular/cli/commands/e2e.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,6 @@ const E2eCommand = Command.extend({
8080
]),
8181
run: function (commandOptions: E2eTaskOptions) {
8282
const E2eTask = require('../tasks/e2e').E2eTask;
83-
this.project.ngConfig = this.project.ngConfig || CliConfig.fromProject();
8483

8584
const e2eTask = new E2eTask({
8685
ui: this.ui,

packages/@angular/cli/commands/generate.ts

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
import * as fs from 'fs';
22
import * as path from 'path';
33
import * as os from 'os';
4-
import {CliConfig} from '../models/config';
54

65
const chalk = require('chalk');
76
const EmberGenerateCommand = require('../ember-cli/lib/commands/generate');
@@ -26,7 +25,6 @@ const GenerateCommand = EmberGenerateCommand.extend({
2625

2726
// map the blueprint name to allow for aliases
2827
rawArgs[0] = mapBlueprintName(rawArgs[0]);
29-
this.project.ngConfig = this.project.ngConfig || CliConfig.fromProject();
3028

3129
if (rawArgs[0] !== '--help' &&
3230
!fs.existsSync(path.join(__dirname, '..', 'blueprints', rawArgs[0]))) {

packages/@angular/cli/commands/test.ts

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -113,8 +113,6 @@ const TestCommand = EmberTestCommand.extend({
113113
],
114114

115115
run: function(commandOptions: TestOptions) {
116-
this.project.ngConfig = this.project.ngConfig || CliConfig.fromProject();
117-
118116
const testTask = new TestTask({
119117
ui: this.ui,
120118
project: this.project

0 commit comments

Comments
 (0)