devextreme-schematics 1.2.23 → 1.3.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (76) hide show
  1. package/LICENSE +21 -21
  2. package/package.json +7 -7
  3. package/src/add-app-template/index.d.ts +2 -2
  4. package/src/add-app-template/index.js +26 -26
  5. package/src/add-app-template/index_spec.d.ts +1 -1
  6. package/src/add-app-template/index_spec.js +70 -69
  7. package/src/add-app-template/index_spec.js.map +1 -1
  8. package/src/add-app-template/schema.json +2 -2
  9. package/src/add-layout/files/devextreme.json +1 -1
  10. package/src/add-layout/files/src/app/shared/services/screen.service.ts +1 -1
  11. package/src/add-layout/files/src/dx-styles.scss +4 -0
  12. package/src/add-layout/index.d.ts +2 -2
  13. package/src/add-layout/index.js +277 -266
  14. package/src/add-layout/index.js.map +1 -1
  15. package/src/add-layout/index.ts +28 -30
  16. package/src/add-layout/index_spec.d.ts +1 -1
  17. package/src/add-layout/index_spec.js +251 -250
  18. package/src/add-layout/index_spec.js.map +1 -1
  19. package/src/add-layout/index_spec.ts +2 -2
  20. package/src/add-layout/schema.json +2 -2
  21. package/src/add-sample-views/index.d.ts +2 -2
  22. package/src/add-sample-views/index.js +97 -88
  23. package/src/add-sample-views/index.js.map +1 -1
  24. package/src/add-sample-views/index.ts +3 -3
  25. package/src/add-sample-views/index_spec.d.ts +1 -1
  26. package/src/add-sample-views/index_spec.js +53 -52
  27. package/src/add-sample-views/index_spec.js.map +1 -1
  28. package/src/add-sample-views/index_spec.ts +1 -1
  29. package/src/add-sample-views/schema.json +1 -1
  30. package/src/add-view/index.d.ts +3 -3
  31. package/src/add-view/index.js +125 -113
  32. package/src/add-view/index.js.map +1 -1
  33. package/src/add-view/index.ts +14 -13
  34. package/src/add-view/index_spec.d.ts +1 -1
  35. package/src/add-view/index_spec.js +109 -108
  36. package/src/add-view/index_spec.js.map +1 -1
  37. package/src/add-view/schema.json +1 -1
  38. package/src/install/index.d.ts +2 -2
  39. package/src/install/index.js +76 -63
  40. package/src/install/index.js.map +1 -1
  41. package/src/install/index.ts +4 -2
  42. package/src/install/index_spec.d.ts +1 -1
  43. package/src/install/index_spec.js +96 -95
  44. package/src/install/index_spec.js.map +1 -1
  45. package/src/install/index_spec.ts +1 -1
  46. package/src/install/schema.json +1 -1
  47. package/src/utility/array.d.ts +1 -1
  48. package/src/utility/array.js +7 -6
  49. package/src/utility/array.js.map +1 -1
  50. package/src/utility/change.d.ts +7 -7
  51. package/src/utility/change.js +49 -48
  52. package/src/utility/change.js.map +1 -1
  53. package/src/utility/latest-versions.d.ts +5 -5
  54. package/src/utility/latest-versions.js +9 -8
  55. package/src/utility/latest-versions.js.map +1 -1
  56. package/src/utility/modify-json-file.d.ts +3 -2
  57. package/src/utility/modify-json-file.js +15 -11
  58. package/src/utility/modify-json-file.js.map +1 -1
  59. package/src/utility/modify-json-file.ts +6 -3
  60. package/src/utility/project.d.ts +5 -5
  61. package/src/utility/project.js +48 -25
  62. package/src/utility/project.js.map +1 -1
  63. package/src/utility/project.ts +19 -14
  64. package/src/utility/routing.d.ts +4 -4
  65. package/src/utility/routing.js +32 -31
  66. package/src/utility/routing.js.map +1 -1
  67. package/src/utility/source.d.ts +3 -3
  68. package/src/utility/source.js +13 -12
  69. package/src/utility/source.js.map +1 -1
  70. package/src/utility/string.d.ts +1 -1
  71. package/src/utility/string.js +8 -7
  72. package/src/utility/string.js.map +1 -1
  73. package/src/utility/styles.d.ts +1 -2
  74. package/src/utility/styles.js +29 -30
  75. package/src/utility/styles.js.map +1 -1
  76. package/src/utility/styles.ts +2 -5
@@ -1,267 +1,278 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const schematics_1 = require("@angular-devkit/schematics");
4
- const rxjs_1 = require("rxjs");
5
- const core_1 = require("@angular-devkit/core");
6
- const path_1 = require("path");
7
- const project_1 = require("../utility/project");
8
- const string_1 = require("../utility/string");
9
- const styles_1 = require("../utility/styles");
10
- const modify_json_file_1 = require("../utility/modify-json-file");
11
- const dependencies_1 = require("@schematics/angular/utility/dependencies");
12
- const tasks_1 = require("@angular-devkit/schematics/tasks");
13
- const source_1 = require("../utility/source");
14
- const change_1 = require("../utility/change");
15
- const routing_1 = require("../utility/routing");
16
- const ast_utils_1 = require("@schematics/angular/utility/ast-utils");
17
- const config_1 = require("@schematics/angular/utility/config");
18
- const projectFilesSource = './files/src';
19
- const workspaceFilesSource = './files';
20
- function addScriptSafe(scripts, name, value) {
21
- const currentValue = scripts[name];
22
- if (!currentValue) {
23
- scripts[name] = value;
24
- return;
25
- }
26
- const alterName = `origin-${name}`;
27
- const safeValue = `npm run ${alterName} && ${value}`;
28
- if (currentValue === value || currentValue === safeValue) {
29
- return;
30
- }
31
- scripts[alterName] = currentValue;
32
- scripts[name] = safeValue;
33
- }
34
- function addBuildThemeScript() {
35
- return (host) => {
36
- modify_json_file_1.modifyJSONFile(host, './package.json', config => {
37
- const scripts = config['scripts'];
38
- addScriptSafe(scripts, 'build-themes', 'devextreme build');
39
- addScriptSafe(scripts, 'postinstall', 'npm run build-themes');
40
- return config;
41
- });
42
- return host;
43
- };
44
- }
45
- function addCustomThemeStyles(options, sourcePath) {
46
- return (host) => {
47
- modify_json_file_1.modifyJSONFile(host, './angular.json', config => {
48
- const stylesList = [
49
- `${sourcePath}/dx-styles.scss`,
50
- `${sourcePath}/themes/generated/theme.additional.css`,
51
- `${sourcePath}/themes/generated/theme.base.css`,
52
- 'node_modules/devextreme/dist/css/dx.common.css'
53
- ];
54
- return styles_1.addStylesToApp(host, options.project, config, stylesList);
55
- });
56
- return host;
57
- };
58
- }
59
- function updateBudgets(options) {
60
- return (host) => {
61
- modify_json_file_1.modifyJSONFile(host, './angular.json', config => {
62
- const projectName = project_1.getProjectName(host, options.project);
63
- const budgets = config.projects[projectName].architect.build.configurations.production.budgets;
64
- const budget = budgets.find((item) => item.type === 'initial');
65
- if (budget) {
66
- budget.maximumWarning = '4mb';
67
- budget.maximumError = '7mb';
68
- }
69
- return config;
70
- });
71
- return host;
72
- };
73
- }
74
- function addViewportToBody(sourcePath) {
75
- return (host) => {
76
- const indexPath = path_1.join(sourcePath, 'index.html');
77
- let indexContent = host.read(indexPath).toString();
78
- indexContent = indexContent.replace(/<body>/, '<body class="dx-viewport">');
79
- host.overwrite(indexPath, indexContent);
80
- return host;
81
- };
82
- }
83
- function modifyFileRule(path, callback) {
84
- return (host) => {
85
- const source = source_1.getSourceFile(host, path);
86
- if (!source) {
87
- return host;
88
- }
89
- const changes = callback(source);
90
- return change_1.applyChanges(host, changes, path);
91
- };
92
- }
93
- function updateAppModule(host, sourcePath) {
94
- const appModulePath = sourcePath + 'app.module.ts';
95
- const importSetter = (importName, path) => {
96
- return (source) => {
97
- return ast_utils_1.addImportToModule(source, appModulePath, importName, path);
98
- };
99
- };
100
- const providerSetter = (importName, path) => {
101
- return (source) => {
102
- return ast_utils_1.addProviderToModule(source, appModulePath, importName, path);
103
- };
104
- };
105
- const rules = [
106
- modifyFileRule(appModulePath, importSetter('SideNavOuterToolbarModule', './layouts')),
107
- modifyFileRule(appModulePath, importSetter('SideNavInnerToolbarModule', './layouts')),
108
- modifyFileRule(appModulePath, importSetter('SingleCardModule', './layouts')),
109
- modifyFileRule(appModulePath, importSetter('FooterModule', './shared/components')),
110
- modifyFileRule(appModulePath, importSetter('ResetPasswordFormModule', './shared/components')),
111
- modifyFileRule(appModulePath, importSetter('CreateAccountFormModule', './shared/components')),
112
- modifyFileRule(appModulePath, importSetter('ChangePasswordFormModule', './shared/components')),
113
- modifyFileRule(appModulePath, importSetter('LoginFormModule', './shared/components')),
114
- modifyFileRule(appModulePath, providerSetter('AuthService', './shared/services')),
115
- modifyFileRule(appModulePath, providerSetter('ScreenService', './shared/services')),
116
- modifyFileRule(appModulePath, providerSetter('AppInfoService', './shared/services')),
117
- modifyFileRule(appModulePath, importSetter('UnauthenticatedContentModule', './unauthenticated-content')),
118
- ];
119
- if (!hasRoutingModule(host, sourcePath)) {
120
- rules.push(modifyFileRule(appModulePath, importSetter('AppRoutingModule', './app-routing.module')));
121
- }
122
- return schematics_1.chain(rules);
123
- }
124
- function getComponentName(host, sourcePath) {
125
- let name = '';
126
- const index = 1;
127
- if (!host.exists(sourcePath + 'app.component.ts')) {
128
- name = 'app';
129
- }
130
- while (!name) {
131
- const componentName = `app${index}`;
132
- if (!host.exists(`${sourcePath}${componentName}.component.ts`)) {
133
- name = componentName;
134
- }
135
- }
136
- return name;
137
- }
138
- function hasRoutingModule(host, sourcePath) {
139
- return host.exists(sourcePath + 'app-routing.module.ts');
140
- }
141
- function addPackagesToDependency(globalNgCliVersion) {
142
- return (host) => {
143
- dependencies_1.addPackageJsonDependency(host, {
144
- type: dependencies_1.NodeDependencyType.Default,
145
- name: '@angular/cdk',
146
- version: globalNgCliVersion
147
- });
148
- return host;
149
- };
150
- }
151
- function modifyContentByTemplate(sourcePath, templateSourcePath, filePath, templateOptions = {}, modifyContent) {
152
- return (host, context) => {
153
- const modifyIfExists = (fileEntry) => {
154
- const fileEntryPath = path_1.join(sourcePath, fileEntry.path.toString());
155
- if (!host.exists(fileEntryPath)) {
156
- return fileEntry;
157
- }
158
- const templateContent = fileEntry.content.toString();
159
- let modifiedContent = templateContent;
160
- const currentContent = host.read(fileEntryPath).toString();
161
- if (modifyContent) {
162
- modifiedContent = modifyContent(templateContent, currentContent, fileEntryPath);
163
- }
164
- // NOTE: Workaround for https://github.com/angular/angular-cli/issues/11337
165
- if (modifiedContent !== currentContent) {
166
- host.overwrite(fileEntryPath, modifiedContent);
167
- }
168
- return null;
169
- };
170
- const rules = [
171
- schematics_1.filter(path => {
172
- return !filePath || path_1.join('./', path) === path_1.join('./', filePath);
173
- }),
174
- schematics_1.template(templateOptions),
175
- schematics_1.forEach(modifyIfExists),
176
- schematics_1.move(sourcePath)
177
- ];
178
- const modifiedSource = schematics_1.apply(schematics_1.url(templateSourcePath), rules);
179
- const resultRule = schematics_1.mergeWith(modifiedSource);
180
- return schematics_1.callRule(resultRule, rxjs_1.of(host), context);
181
- };
182
- }
183
- function updateDevextremeConfig(sourcePath) {
184
- const devextremeConfigPath = '/devextreme.json';
185
- const templateOptions = {
186
- engine: 'angular',
187
- sourcePath
188
- };
189
- const modifyConfig = (templateContent, currentContent) => {
190
- const oldConfig = JSON.parse(currentContent);
191
- const newConfig = JSON.parse(templateContent);
192
- [].push.apply(oldConfig.build.commands, newConfig.build.commands);
193
- return JSON.stringify(oldConfig, null, ' ');
194
- };
195
- return modifyContentByTemplate('./', workspaceFilesSource, devextremeConfigPath, templateOptions, modifyConfig);
196
- }
197
- const modifyRoutingModule = (host, routingModulePath) => {
198
- // TODO: Try to use the isolated host to generate the result string
199
- let source = source_1.getSourceFile(host, routingModulePath);
200
- const importChange = ast_utils_1.insertImport(source, routingModulePath, 'LoginFormComponent', './shared/components');
201
- const providerChanges = ast_utils_1.addProviderToModule(source, routingModulePath, 'AuthGuardService', './shared/services');
202
- change_1.applyChanges(host, [importChange, ...providerChanges], routingModulePath);
203
- source = source_1.getSourceFile(host, routingModulePath);
204
- const routes = routing_1.findRoutesInSource(source);
205
- if (!routing_1.hasComponentInRoutes(routes, 'login-form')) {
206
- const loginFormRoute = routing_1.getRoute('login-form');
207
- change_1.insertItemToArray(host, routingModulePath, routes, loginFormRoute);
208
- }
209
- };
210
- function default_1(options) {
211
- return (host) => {
212
- const project = project_1.getProjectName(host, options.project);
213
- const workspace = config_1.getWorkspace(host);
214
- const prefix = workspace.projects[project].prefix;
215
- const title = string_1.humanize(project);
216
- const appPath = project_1.getApplicationPath(host, project);
217
- const sourcePath = project_1.getSourceRootPath(host, project);
218
- const layout = options.layout;
219
- const override = options.resolveConflicts === 'override';
220
- const componentName = override ? 'app' : getComponentName(host, appPath);
221
- const pathToCss = sourcePath.replace(/\/?(\w)+\/?/g, '../');
222
- const templateOptions = {
223
- name: componentName,
224
- layout,
225
- title,
226
- strings: core_1.strings,
227
- path: pathToCss,
228
- prefix
229
- };
230
- const modifyContent = (templateContent, currentContent, filePath) => {
231
- if (path_1.basename(filePath) === 'styles.scss') {
232
- return `${currentContent}\n${templateContent}`;
233
- }
234
- if (path_1.basename(filePath) === 'app-routing.module.ts' && hasRoutingModule(host, appPath)) {
235
- modifyRoutingModule(host, filePath);
236
- return currentContent;
237
- }
238
- return templateContent;
239
- };
240
- const rules = [
241
- modifyContentByTemplate(sourcePath, projectFilesSource, null, templateOptions, modifyContent),
242
- updateDevextremeConfig(sourcePath),
243
- updateAppModule(host, appPath),
244
- addBuildThemeScript(),
245
- addCustomThemeStyles(options, sourcePath),
246
- addViewportToBody(sourcePath),
247
- addPackagesToDependency(options.globalNgCliVersion)
248
- ];
249
- if (options.updateBudgets) {
250
- rules.push(updateBudgets(options));
251
- }
252
- if (!options.skipInstall) {
253
- rules.push((_, context) => {
254
- context.addTask(new tasks_1.NodePackageInstallTask());
255
- });
256
- }
257
- if (override) {
258
- if (project === workspace.defaultProject) {
259
- rules.push(modifyContentByTemplate('./', workspaceFilesSource, 'e2e/src/app.e2e-spec.ts', { title }));
260
- rules.push(modifyContentByTemplate('./', workspaceFilesSource, 'e2e/src/app.po.ts'));
261
- }
262
- }
263
- return schematics_1.chain(rules);
264
- };
265
- }
266
- exports.default = default_1;
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ const schematics_1 = require("@angular-devkit/schematics");
13
+ const core_1 = require("@angular-devkit/core");
14
+ const path_1 = require("path");
15
+ const project_1 = require("../utility/project");
16
+ const string_1 = require("../utility/string");
17
+ const styles_1 = require("../utility/styles");
18
+ const modify_json_file_1 = require("../utility/modify-json-file");
19
+ const dependencies_1 = require("@schematics/angular/utility/dependencies");
20
+ const tasks_1 = require("@angular-devkit/schematics/tasks");
21
+ const source_1 = require("../utility/source");
22
+ const change_1 = require("../utility/change");
23
+ const routing_1 = require("../utility/routing");
24
+ const ast_utils_1 = require("@schematics/angular/utility/ast-utils");
25
+ const workspace_1 = require("@schematics/angular/utility/workspace");
26
+ const projectFilesSource = './files/src';
27
+ const workspaceFilesSource = './files';
28
+ function addScriptSafe(scripts, name, value) {
29
+ const currentValue = scripts[name];
30
+ if (!currentValue) {
31
+ scripts[name] = value;
32
+ return;
33
+ }
34
+ const alterName = `origin-${name}`;
35
+ const safeValue = `npm run ${alterName} && ${value}`;
36
+ if (currentValue === value || currentValue === safeValue) {
37
+ return;
38
+ }
39
+ scripts[alterName] = currentValue;
40
+ scripts[name] = safeValue;
41
+ }
42
+ function addBuildThemeScript() {
43
+ return (host) => {
44
+ modify_json_file_1.modifyJSONFile(host, './package.json', config => {
45
+ const scripts = config['scripts'];
46
+ addScriptSafe(scripts, 'build-themes', 'devextreme build');
47
+ addScriptSafe(scripts, 'postinstall', 'npm run build-themes');
48
+ return config;
49
+ });
50
+ return host;
51
+ };
52
+ }
53
+ function addCustomThemeStyles(host, options, sourcePath = '') {
54
+ return __awaiter(this, void 0, void 0, function* () {
55
+ const projectName = yield project_1.getProjectName(host, options.project);
56
+ modify_json_file_1.modifyJSONFile(host, './angular.json', config => {
57
+ const stylesList = [
58
+ `${sourcePath}/dx-styles.scss`,
59
+ `${sourcePath}/themes/generated/theme.additional.css`,
60
+ `${sourcePath}/themes/generated/theme.base.css`,
61
+ 'node_modules/devextreme/dist/css/dx.common.css'
62
+ ];
63
+ return styles_1.addStylesToApp(projectName, config, stylesList);
64
+ });
65
+ return host;
66
+ });
67
+ }
68
+ function updateBudgets(host, options) {
69
+ return __awaiter(this, void 0, void 0, function* () {
70
+ const projectName = yield project_1.getProjectName(host, options.project);
71
+ modify_json_file_1.modifyJSONFile(host, './angular.json', config => {
72
+ const budgets = config.projects[projectName].architect.build.configurations.production.budgets;
73
+ const budget = budgets.find((item) => item.type === 'initial');
74
+ if (budget) {
75
+ budget.maximumWarning = '4mb';
76
+ budget.maximumError = '7mb';
77
+ }
78
+ return config;
79
+ });
80
+ return host;
81
+ });
82
+ }
83
+ function addViewportToBody(sourcePath = '') {
84
+ return (host) => {
85
+ const indexPath = path_1.join(sourcePath, 'index.html');
86
+ let indexContent = host.read(indexPath).toString();
87
+ indexContent = indexContent.replace(/<body>/, '<body class="dx-viewport">');
88
+ host.overwrite(indexPath, indexContent);
89
+ return host;
90
+ };
91
+ }
92
+ function modifyFileRule(path, callback) {
93
+ return (host) => {
94
+ const source = source_1.getSourceFile(host, path);
95
+ if (!source) {
96
+ return host;
97
+ }
98
+ const changes = callback(source);
99
+ return change_1.applyChanges(host, changes, path);
100
+ };
101
+ }
102
+ function updateAppModule(host, sourcePath) {
103
+ const appModulePath = sourcePath + 'app.module.ts';
104
+ const importSetter = (importName, path) => {
105
+ return (source) => {
106
+ return ast_utils_1.addImportToModule(source, appModulePath, importName, path);
107
+ };
108
+ };
109
+ const providerSetter = (importName, path) => {
110
+ return (source) => {
111
+ return ast_utils_1.addProviderToModule(source, appModulePath, importName, path);
112
+ };
113
+ };
114
+ const rules = [
115
+ modifyFileRule(appModulePath, importSetter('SideNavOuterToolbarModule', './layouts')),
116
+ modifyFileRule(appModulePath, importSetter('SideNavInnerToolbarModule', './layouts')),
117
+ modifyFileRule(appModulePath, importSetter('SingleCardModule', './layouts')),
118
+ modifyFileRule(appModulePath, importSetter('FooterModule', './shared/components')),
119
+ modifyFileRule(appModulePath, importSetter('ResetPasswordFormModule', './shared/components')),
120
+ modifyFileRule(appModulePath, importSetter('CreateAccountFormModule', './shared/components')),
121
+ modifyFileRule(appModulePath, importSetter('ChangePasswordFormModule', './shared/components')),
122
+ modifyFileRule(appModulePath, importSetter('LoginFormModule', './shared/components')),
123
+ modifyFileRule(appModulePath, providerSetter('AuthService', './shared/services')),
124
+ modifyFileRule(appModulePath, providerSetter('ScreenService', './shared/services')),
125
+ modifyFileRule(appModulePath, providerSetter('AppInfoService', './shared/services')),
126
+ modifyFileRule(appModulePath, importSetter('UnauthenticatedContentModule', './unauthenticated-content')),
127
+ ];
128
+ if (!hasRoutingModule(host, sourcePath)) {
129
+ rules.push(modifyFileRule(appModulePath, importSetter('AppRoutingModule', './app-routing.module')));
130
+ }
131
+ return schematics_1.chain(rules);
132
+ }
133
+ function getComponentName(host, sourcePath) {
134
+ let name = '';
135
+ const index = 1;
136
+ if (!host.exists(sourcePath + 'app.component.ts')) {
137
+ name = 'app';
138
+ }
139
+ while (!name) {
140
+ const componentName = `app${index}`;
141
+ if (!host.exists(`${sourcePath}${componentName}.component.ts`)) {
142
+ name = componentName;
143
+ }
144
+ }
145
+ return name;
146
+ }
147
+ function hasRoutingModule(host, sourcePath) {
148
+ return host.exists(sourcePath + 'app-routing.module.ts');
149
+ }
150
+ function addPackagesToDependency(globalNgCliVersion) {
151
+ return (host) => {
152
+ dependencies_1.addPackageJsonDependency(host, {
153
+ type: dependencies_1.NodeDependencyType.Default,
154
+ name: '@angular/cdk',
155
+ version: globalNgCliVersion
156
+ });
157
+ return host;
158
+ };
159
+ }
160
+ function modifyContentByTemplate(sourcePath = '', templateSourcePath, filePath, templateOptions = {}, modifyContent) {
161
+ return (host, context) => {
162
+ const modifyIfExists = (fileEntry) => {
163
+ const fileEntryPath = path_1.join(sourcePath, fileEntry.path.toString());
164
+ if (!host.exists(fileEntryPath)) {
165
+ return fileEntry;
166
+ }
167
+ const templateContent = fileEntry.content.toString();
168
+ let modifiedContent = templateContent;
169
+ const currentContent = host.read(fileEntryPath).toString();
170
+ if (modifyContent) {
171
+ modifiedContent = modifyContent(templateContent, currentContent, fileEntryPath);
172
+ }
173
+ // NOTE: Workaround for https://github.com/angular/angular-cli/issues/11337
174
+ if (modifiedContent !== currentContent) {
175
+ host.overwrite(fileEntryPath, modifiedContent);
176
+ }
177
+ return null;
178
+ };
179
+ const rules = [
180
+ schematics_1.filter(path => {
181
+ return !filePath || path_1.join('./', path) === path_1.join('./', filePath);
182
+ }),
183
+ schematics_1.template(templateOptions),
184
+ schematics_1.forEach(modifyIfExists),
185
+ schematics_1.move(sourcePath)
186
+ ];
187
+ const modifiedSource = schematics_1.apply(schematics_1.url(templateSourcePath), rules);
188
+ const resultRule = schematics_1.mergeWith(modifiedSource);
189
+ return schematics_1.callRule(resultRule, host, context);
190
+ };
191
+ }
192
+ function updateDevextremeConfig(sourcePath = '') {
193
+ const devextremeConfigPath = '/devextreme.json';
194
+ const templateOptions = {
195
+ sourcePath
196
+ };
197
+ const modifyConfig = (templateContent, currentContent) => {
198
+ const oldConfig = JSON.parse(currentContent);
199
+ const newConfig = JSON.parse(templateContent);
200
+ [].push.apply(oldConfig.build.commands, newConfig.build.commands);
201
+ return JSON.stringify(oldConfig, null, ' ');
202
+ };
203
+ return modifyContentByTemplate('./', workspaceFilesSource, devextremeConfigPath, templateOptions, modifyConfig);
204
+ }
205
+ const modifyRoutingModule = (host, routingModulePath) => {
206
+ // TODO: Try to use the isolated host to generate the result string
207
+ let source = source_1.getSourceFile(host, routingModulePath);
208
+ const importChange = ast_utils_1.insertImport(source, routingModulePath, 'LoginFormComponent', './shared/components');
209
+ const providerChanges = ast_utils_1.addProviderToModule(source, routingModulePath, 'AuthGuardService', './shared/services');
210
+ change_1.applyChanges(host, [importChange, ...providerChanges], routingModulePath);
211
+ source = source_1.getSourceFile(host, routingModulePath);
212
+ const routes = routing_1.findRoutesInSource(source);
213
+ if (!routing_1.hasComponentInRoutes(routes, 'login-form')) {
214
+ const loginFormRoute = routing_1.getRoute('login-form');
215
+ change_1.insertItemToArray(host, routingModulePath, routes, loginFormRoute);
216
+ }
217
+ };
218
+ function default_1(options) {
219
+ return (host) => __awaiter(this, void 0, void 0, function* () {
220
+ const ngConfig = host.read('./angular.json').toString();
221
+ const defaultProjectName = modify_json_file_1.parseJson(ngConfig).defaultProject;
222
+ const project = yield project_1.getProjectName(host, options.project);
223
+ const workspace = yield workspace_1.getWorkspace(host);
224
+ const ngProject = workspace.projects.get(project);
225
+ const prefix = ngProject === null || ngProject === void 0 ? void 0 : ngProject.prefix;
226
+ const title = string_1.humanize(project);
227
+ const appPath = yield project_1.getApplicationPath(host, project);
228
+ const sourcePath = yield project_1.getSourceRootPath(host, project);
229
+ const layout = options.layout;
230
+ const override = options.resolveConflicts === 'override';
231
+ const componentName = override ? 'app' : getComponentName(host, appPath);
232
+ const pathToCss = sourcePath === null || sourcePath === void 0 ? void 0 : sourcePath.replace(/\/?(\w)+\/?/g, '../');
233
+ const templateOptions = {
234
+ name: componentName,
235
+ layout,
236
+ title,
237
+ strings: core_1.strings,
238
+ path: pathToCss,
239
+ prefix
240
+ };
241
+ const modifyContent = (templateContent, currentContent, filePath) => {
242
+ if (path_1.basename(filePath) === 'styles.scss') {
243
+ return `${currentContent}\n${templateContent}`;
244
+ }
245
+ if (path_1.basename(filePath) === 'app-routing.module.ts' && hasRoutingModule(host, appPath)) {
246
+ modifyRoutingModule(host, filePath);
247
+ return currentContent;
248
+ }
249
+ return templateContent;
250
+ };
251
+ const rules = [
252
+ modifyContentByTemplate(sourcePath, projectFilesSource, null, templateOptions, modifyContent),
253
+ updateDevextremeConfig(sourcePath),
254
+ updateAppModule(host, appPath),
255
+ addBuildThemeScript(),
256
+ () => addCustomThemeStyles(host, options, sourcePath),
257
+ addViewportToBody(sourcePath),
258
+ addPackagesToDependency(options.globalNgCliVersion)
259
+ ];
260
+ if (options.updateBudgets) {
261
+ rules.push(() => updateBudgets(host, options));
262
+ }
263
+ if (!options.skipInstall) {
264
+ rules.push((_, context) => {
265
+ context.addTask(new tasks_1.NodePackageInstallTask());
266
+ });
267
+ }
268
+ if (override) {
269
+ if (project === defaultProjectName) {
270
+ rules.push(modifyContentByTemplate('./', workspaceFilesSource, 'e2e/src/app.e2e-spec.ts', { title }));
271
+ rules.push(modifyContentByTemplate('./', workspaceFilesSource, 'e2e/src/app.po.ts'));
272
+ }
273
+ }
274
+ return schematics_1.chain(rules);
275
+ });
276
+ }
277
+ exports.default = default_1;
267
278
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":"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"}