This repository was archived by the owner on May 26, 2020. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathindex.ts
More file actions
86 lines (70 loc) · 2.13 KB
/
index.ts
File metadata and controls
86 lines (70 loc) · 2.13 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
import {
Rule,
Tree,
SchematicContext,
chain
} from '@angular-devkit/schematics';
import { addStylesToApp } from '../utility/styles';
import {
NodeDependencyType,
addPackageJsonDependency
} from '@schematics/angular/utility/dependencies';
import {
NodePackageInstallTask
} from '@angular-devkit/schematics/tasks';
import { latestVersions } from '../utility/latest-versions';
import { modifyJSONFile } from '../utility/modify-json-file';
export default function(options: any): Rule {
return chain([
(host: Tree) => addDevExtremeDependency(host, { dxversion: options.dxversion }),
(host: Tree) => addDevExtremeCSS(host, { project: options.project }),
(host: Tree) => reqisterJSZip(host),
(_, context: SchematicContext) => {
context.addTask(new NodePackageInstallTask());
}
]);
}
function addDevExtremeDependency(host: Tree, options: any) {
addPackageJsonDependency(host, {
type: NodeDependencyType.Default,
name: 'devextreme',
version: options.dxversion || latestVersions['devextreme']
});
addPackageJsonDependency(host, {
type: NodeDependencyType.Default,
name: 'devextreme-angular',
version: options.dxversion || latestVersions['devextreme-angular']
});
addPackageJsonDependency(host, {
type: NodeDependencyType.Dev,
name: 'devextreme-cli',
version: latestVersions['devextreme-cli']
});
addPackageJsonDependency(host, {
type: NodeDependencyType.Dev,
name: 'devextreme-themebuilder',
version: options.dxversion || latestVersions['devextreme']
});
return host;
}
function addDevExtremeCSS(host: Tree, options: any) {
modifyJSONFile(host, './angular.json', config => {
return addStylesToApp(host, options.project, config);
});
return host;
}
function reqisterJSZip(host: Tree) {
modifyJSONFile(host, './tsconfig.json', config => {
const compilerOptions = config['compilerOptions'];
let paths = compilerOptions['paths'];
if (!paths) {
paths = {};
}
if (!paths['jszip']) {
paths['jszip'] = ['node_modules/jszip/dist/jszip.min.js'];
}
compilerOptions['paths'] = paths;
return config;
});
return host;
}