@ihk-gfi/lux-components-update 11.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +198 -0
- package/README.md +55 -0
- package/package.json +54 -0
- package/src/add-lux-components/files/app/app-routing.module.ts +19 -0
- package/src/add-lux-components/files/app/app.component.html +27 -0
- package/src/add-lux-components/files/app/app.component.spec.ts +19 -0
- package/src/add-lux-components/files/app/app.component.ts +13 -0
- package/src/add-lux-components/files/app/app.module.ts +56 -0
- package/src/add-lux-components/files/app/error/error.component.html +10 -0
- package/src/add-lux-components/files/app/error/error.component.scss +3 -0
- package/src/add-lux-components/files/app/error/error.component.spec.ts +49 -0
- package/src/add-lux-components/files/app/error/error.component.ts +17 -0
- package/src/add-lux-components/files/app/home/home.component.html +7 -0
- package/src/add-lux-components/files/app/home/home.component.scss +0 -0
- package/src/add-lux-components/files/app/home/home.component.ts +13 -0
- package/src/add-lux-components/files/app/profil/profil.component.html +1 -0
- package/src/add-lux-components/files/app/profil/profil.component.scss +0 -0
- package/src/add-lux-components/files/app/profil/profil.component.spec.ts +24 -0
- package/src/add-lux-components/files/app/profil/profil.component.ts +11 -0
- package/src/add-lux-components/files/environments/environment.prod.ts +4 -0
- package/src/add-lux-components/files/environments/environment.ts +17 -0
- package/src/add-lux-components/files/locale/messages.en.xlf +948 -0
- package/src/add-lux-components/files/locale/messages.xlf +822 -0
- package/src/add-lux-components/files/scripts/.browserslistrc +17 -0
- package/src/add-lux-components/files/src/polyfills.ts +68 -0
- package/src/add-lux-components/index.d.ts +10 -0
- package/src/add-lux-components/index.js +143 -0
- package/src/add-lux-components/index.js.map +1 -0
- package/src/add-lux-components/index.ts +183 -0
- package/src/add-lux-components/index_spec.d.ts +1 -0
- package/src/add-lux-components/index_spec.js +51 -0
- package/src/add-lux-components/index_spec.js.map +1 -0
- package/src/add-lux-components/index_spec.ts +55 -0
- package/src/add-lux-components/schema.json +23 -0
- package/src/collection.json +55 -0
- package/src/migrate-to-eslint/files/.eslintrc.json +68 -0
- package/src/migrate-to-eslint/files/.prettierrc +25 -0
- package/src/migrate-to-eslint/index.d.ts +6 -0
- package/src/migrate-to-eslint/index.js +149 -0
- package/src/migrate-to-eslint/index.js.map +1 -0
- package/src/migrate-to-eslint/index.ts +181 -0
- package/src/migrate-to-eslint/index_spec.d.ts +1 -0
- package/src/migrate-to-eslint/index_spec.js +129 -0
- package/src/migrate-to-eslint/index_spec.js.map +1 -0
- package/src/migrate-to-eslint/index_spec.ts +152 -0
- package/src/migrate-to-eslint/schema.json +23 -0
- package/src/migrate-to-webcomponent/index.d.ts +10 -0
- package/src/migrate-to-webcomponent/index.js +278 -0
- package/src/migrate-to-webcomponent/index.js.map +1 -0
- package/src/migrate-to-webcomponent/index.ts +331 -0
- package/src/migrate-to-webcomponent/index_spec.d.ts +1 -0
- package/src/migrate-to-webcomponent/index_spec.js +580 -0
- package/src/migrate-to-webcomponent/index_spec.js.map +1 -0
- package/src/migrate-to-webcomponent/index_spec.ts +703 -0
- package/src/migrate-to-webcomponent/schema.json +23 -0
- package/src/update/files/locale/messages.en.xlf +940 -0
- package/src/update/files/locale/messages.xlf +815 -0
- package/src/update/files/scripts/move-de-files.js +15 -0
- package/src/update/index.d.ts +23 -0
- package/src/update/index.js +635 -0
- package/src/update/index.js.map +1 -0
- package/src/update/index.ts +712 -0
- package/src/update/index_spec.d.ts +1 -0
- package/src/update/index_spec.js +990 -0
- package/src/update/index_spec.js.map +1 -0
- package/src/update/index_spec.ts +1145 -0
- package/src/update/schema.json +23 -0
- package/src/update-dependencies/index.d.ts +5 -0
- package/src/update-dependencies/index.js +113 -0
- package/src/update-dependencies/index.js.map +1 -0
- package/src/update-dependencies/index.ts +114 -0
- package/src/update-dependencies/schema.json +23 -0
- package/src/update110001/index.d.ts +2 -0
- package/src/update110001/index.js +42 -0
- package/src/update110001/index.js.map +1 -0
- package/src/update110001/index.ts +40 -0
- package/src/update110001/index_spec.d.ts +1 -0
- package/src/update110001/index_spec.js +67 -0
- package/src/update110001/index_spec.js.map +1 -0
- package/src/update110001/index_spec.ts +72 -0
- package/src/update110001/schema.json +23 -0
- package/src/update110100/index.d.ts +2 -0
- package/src/update110100/index.js +27 -0
- package/src/update110100/index.js.map +1 -0
- package/src/update110100/index.ts +24 -0
- package/src/update110100/index_spec.d.ts +1 -0
- package/src/update110100/index_spec.js +69 -0
- package/src/update110100/index_spec.js.map +1 -0
- package/src/update110100/index_spec.ts +73 -0
- package/src/update110100/schema.json +23 -0
- package/src/update110101/index.d.ts +2 -0
- package/src/update110101/index.js +24 -0
- package/src/update110101/index.js.map +1 -0
- package/src/update110101/index.ts +21 -0
- package/src/update110101/index_spec.d.ts +1 -0
- package/src/update110101/index_spec.js +65 -0
- package/src/update110101/index_spec.js.map +1 -0
- package/src/update110101/index_spec.ts +69 -0
- package/src/update110101/schema.json +23 -0
- package/src/update110200/index.d.ts +2 -0
- package/src/update110200/index.js +24 -0
- package/src/update110200/index.js.map +1 -0
- package/src/update110200/index.ts +21 -0
- package/src/update110200/index_spec.d.ts +1 -0
- package/src/update110200/index_spec.js +65 -0
- package/src/update110200/index_spec.js.map +1 -0
- package/src/update110200/index_spec.ts +69 -0
- package/src/update110200/schema.json +23 -0
- package/src/update110300/index.d.ts +2 -0
- package/src/update110300/index.js +133 -0
- package/src/update110300/index.js.map +1 -0
- package/src/update110300/index.ts +148 -0
- package/src/update110300/index_spec.d.ts +1 -0
- package/src/update110300/index_spec.js +121 -0
- package/src/update110300/index_spec.js.map +1 -0
- package/src/update110300/index_spec.ts +139 -0
- package/src/update110300/schema.json +23 -0
- package/src/utility/dependencies.d.ts +39 -0
- package/src/utility/dependencies.js +96 -0
- package/src/utility/dependencies.js.map +1 -0
- package/src/utility/dependencies.ts +116 -0
- package/src/utility/files.d.ts +60 -0
- package/src/utility/files.js +299 -0
- package/src/utility/files.js.map +1 -0
- package/src/utility/files.ts +355 -0
- package/src/utility/html.d.ts +49 -0
- package/src/utility/html.js +183 -0
- package/src/utility/html.js.map +1 -0
- package/src/utility/html.ts +212 -0
- package/src/utility/json.d.ts +34 -0
- package/src/utility/json.js +70 -0
- package/src/utility/json.js.map +1 -0
- package/src/utility/json.ts +70 -0
- package/src/utility/logging.d.ts +32 -0
- package/src/utility/logging.js +82 -0
- package/src/utility/logging.js.map +1 -0
- package/src/utility/logging.ts +80 -0
- package/src/utility/test.d.ts +10 -0
- package/src/utility/test.js +24 -0
- package/src/utility/test.js.map +1 -0
- package/src/utility/test.ts +24 -0
- package/src/utility/typescript.d.ts +22 -0
- package/src/utility/typescript.js +521 -0
- package/src/utility/typescript.js.map +1 -0
- package/src/utility/typescript.ts +598 -0
- package/src/utility/typescript_spec.d.ts +1 -0
- package/src/utility/typescript_spec.js +1006 -0
- package/src/utility/typescript_spec.js.map +1 -0
- package/src/utility/typescript_spec.ts +1267 -0
- package/src/utility/util.d.ts +33 -0
- package/src/utility/util.js +139 -0
- package/src/utility/util.js.map +1 -0
- package/src/utility/util.ts +140 -0
- package/src/utility/validation.d.ts +11 -0
- package/src/utility/validation.js +44 -0
- package/src/utility/validation.js.map +1 -0
- package/src/utility/validation.ts +49 -0
- package/tsconfig.json +37 -0
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { Rule, Tree } from '@angular-devkit/schematics';
|
|
2
|
+
import { Observable } from 'rxjs';
|
|
3
|
+
/**
|
|
4
|
+
* Konfig-Objekt für einige Util-Methoden.
|
|
5
|
+
* Ermöglicht z.B. die Standard-Dauer des waitForTreeCallback-Aufrufs zu ändern
|
|
6
|
+
*/
|
|
7
|
+
export declare const UtilConfig: {
|
|
8
|
+
defaultWaitMS: number;
|
|
9
|
+
};
|
|
10
|
+
export declare function escapeRegExp(str: any): any;
|
|
11
|
+
export declare function replaceAll(str: any, find: any, replace: any): any;
|
|
12
|
+
/**
|
|
13
|
+
* Wartet die übergebene Zeitspanne und ruft dann den Callback auf.
|
|
14
|
+
* Gibt anschließend den Tree über ein Observable zurück.
|
|
15
|
+
* @param tree
|
|
16
|
+
* @param callback
|
|
17
|
+
* @param waitMS
|
|
18
|
+
*/
|
|
19
|
+
export declare const waitForTreeCallback: (tree: any, callback: any, waitMS?: number) => Observable<import("@angular-devkit/schematics/src/tree/interface").Tree>;
|
|
20
|
+
/**
|
|
21
|
+
* Führt npm install aus und wartet auf den Abschluss des Prozess für diese Schematic.
|
|
22
|
+
* Wenn dieses eintritt, werden die Hinweise und ToDos ausgegeben.
|
|
23
|
+
* @param context
|
|
24
|
+
* @param messages
|
|
25
|
+
*/
|
|
26
|
+
export declare const runInstallAndLogToDos: (context: any, messages: any) => void;
|
|
27
|
+
export declare function updateI18nFile(tree: Tree, language: string, insertTransUnitId: string, translations: string): void;
|
|
28
|
+
export declare function applyRuleIf(minVersion: string, rule: Rule): Rule;
|
|
29
|
+
export declare function messageDebugRule(message: any, options: any): Rule;
|
|
30
|
+
export declare function messageInfoRule(message: any): Rule;
|
|
31
|
+
export declare function messageInfoInternRule(message: any): Rule;
|
|
32
|
+
export declare function messageSuccessRule(message: any): Rule;
|
|
33
|
+
export declare function finish(...messages: string[]): Rule;
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.finish = exports.messageSuccessRule = exports.messageInfoInternRule = exports.messageInfoRule = exports.messageDebugRule = exports.applyRuleIf = exports.updateI18nFile = exports.runInstallAndLogToDos = exports.waitForTreeCallback = exports.replaceAll = exports.escapeRegExp = exports.UtilConfig = void 0;
|
|
4
|
+
const tasks_1 = require("@angular-devkit/schematics/tasks");
|
|
5
|
+
const rxjs_1 = require("rxjs");
|
|
6
|
+
const operators_1 = require("rxjs/operators");
|
|
7
|
+
const semver = require("semver");
|
|
8
|
+
const dependencies_1 = require("./dependencies");
|
|
9
|
+
const logging_1 = require("./logging");
|
|
10
|
+
/**
|
|
11
|
+
* Konfig-Objekt für einige Util-Methoden.
|
|
12
|
+
* Ermöglicht z.B. die Standard-Dauer des waitForTreeCallback-Aufrufs zu ändern
|
|
13
|
+
*/
|
|
14
|
+
exports.UtilConfig = {
|
|
15
|
+
defaultWaitMS: 4000
|
|
16
|
+
};
|
|
17
|
+
function escapeRegExp(str) {
|
|
18
|
+
return str.replace(/([.*+?^=!:${}()|\[\]\/\\])/g, '\\$1');
|
|
19
|
+
}
|
|
20
|
+
exports.escapeRegExp = escapeRegExp;
|
|
21
|
+
function replaceAll(str, find, replace) {
|
|
22
|
+
return str.replace(new RegExp(escapeRegExp(find), 'g'), replace);
|
|
23
|
+
}
|
|
24
|
+
exports.replaceAll = replaceAll;
|
|
25
|
+
/**
|
|
26
|
+
* Wartet die übergebene Zeitspanne und ruft dann den Callback auf.
|
|
27
|
+
* Gibt anschließend den Tree über ein Observable zurück.
|
|
28
|
+
* @param tree
|
|
29
|
+
* @param callback
|
|
30
|
+
* @param waitMS
|
|
31
|
+
*/
|
|
32
|
+
const waitForTreeCallback = (tree, callback, waitMS = exports.UtilConfig.defaultWaitMS) => {
|
|
33
|
+
return new rxjs_1.Observable((subscriber) => {
|
|
34
|
+
rxjs_1.of(callback())
|
|
35
|
+
.pipe(operators_1.delay(waitMS))
|
|
36
|
+
.subscribe((callbackResult) => {
|
|
37
|
+
if (callbackResult instanceof rxjs_1.Observable) {
|
|
38
|
+
callbackResult.subscribe((result) => {
|
|
39
|
+
subscriber.next(result);
|
|
40
|
+
subscriber.complete();
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
else {
|
|
44
|
+
subscriber.next(callbackResult);
|
|
45
|
+
subscriber.complete();
|
|
46
|
+
}
|
|
47
|
+
}, (error) => {
|
|
48
|
+
subscriber.error(error.message);
|
|
49
|
+
});
|
|
50
|
+
});
|
|
51
|
+
};
|
|
52
|
+
exports.waitForTreeCallback = waitForTreeCallback;
|
|
53
|
+
/**
|
|
54
|
+
* Führt npm install aus und wartet auf den Abschluss des Prozess für diese Schematic.
|
|
55
|
+
* Wenn dieses eintritt, werden die Hinweise und ToDos ausgegeben.
|
|
56
|
+
* @param context
|
|
57
|
+
* @param messages
|
|
58
|
+
*/
|
|
59
|
+
const runInstallAndLogToDos = (context, messages) => {
|
|
60
|
+
// diese log-Ausgaben werden erst ganz zum Schluss ausgeführt (nach Update und npm-install logs)
|
|
61
|
+
process.addListener('exit', () => {
|
|
62
|
+
if (messages) {
|
|
63
|
+
messages.forEach((message) => {
|
|
64
|
+
logging_1.logInfo(message);
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
});
|
|
68
|
+
// npm install starten
|
|
69
|
+
context.addTask(new tasks_1.NodePackageInstallTask());
|
|
70
|
+
};
|
|
71
|
+
exports.runInstallAndLogToDos = runInstallAndLogToDos;
|
|
72
|
+
function updateI18nFile(tree, language, insertTransUnitId, translations) {
|
|
73
|
+
let filePath;
|
|
74
|
+
if (language === 'en') {
|
|
75
|
+
filePath = '/src/locale/messages.en.xlf';
|
|
76
|
+
}
|
|
77
|
+
else if (language === 'fr') {
|
|
78
|
+
filePath = '/src/locale/messages.fr.xlf';
|
|
79
|
+
}
|
|
80
|
+
else {
|
|
81
|
+
filePath = '/src/locale/messages.xlf';
|
|
82
|
+
}
|
|
83
|
+
if (tree.exists(filePath)) {
|
|
84
|
+
let insertTranslation = `<trans-unit id="${insertTransUnitId}" datatype="html">`;
|
|
85
|
+
let content = tree.read(filePath).toString();
|
|
86
|
+
let modifiedContent = replaceAll(content, insertTranslation, translations + '\n ' + insertTranslation);
|
|
87
|
+
if (content !== modifiedContent) {
|
|
88
|
+
tree.overwrite(filePath, modifiedContent);
|
|
89
|
+
logging_1.logInfo(`Sprachdatei ${filePath} angepasst.`);
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
exports.updateI18nFile = updateI18nFile;
|
|
94
|
+
function applyRuleIf(minVersion, rule) {
|
|
95
|
+
return (tree, _context) => {
|
|
96
|
+
let version = dependencies_1.getPackageJsonDependency(tree, '@ihk-gfi/lux-components').version;
|
|
97
|
+
if (semver.satisfies(minVersion, version)) {
|
|
98
|
+
return rule;
|
|
99
|
+
}
|
|
100
|
+
else {
|
|
101
|
+
return tree;
|
|
102
|
+
}
|
|
103
|
+
};
|
|
104
|
+
}
|
|
105
|
+
exports.applyRuleIf = applyRuleIf;
|
|
106
|
+
function messageDebugRule(message, options) {
|
|
107
|
+
return (tree, _context) => {
|
|
108
|
+
if (options && options.verbose) {
|
|
109
|
+
logging_1.logInfo(message);
|
|
110
|
+
}
|
|
111
|
+
};
|
|
112
|
+
}
|
|
113
|
+
exports.messageDebugRule = messageDebugRule;
|
|
114
|
+
function messageInfoRule(message) {
|
|
115
|
+
return (tree, _context) => {
|
|
116
|
+
logging_1.logInfoWithDescriptor(message);
|
|
117
|
+
};
|
|
118
|
+
}
|
|
119
|
+
exports.messageInfoRule = messageInfoRule;
|
|
120
|
+
function messageInfoInternRule(message) {
|
|
121
|
+
return (tree, _context) => {
|
|
122
|
+
logging_1.logInfo(message);
|
|
123
|
+
};
|
|
124
|
+
}
|
|
125
|
+
exports.messageInfoInternRule = messageInfoInternRule;
|
|
126
|
+
function messageSuccessRule(message) {
|
|
127
|
+
return (tree, _context) => {
|
|
128
|
+
logging_1.logSuccess(message);
|
|
129
|
+
};
|
|
130
|
+
}
|
|
131
|
+
exports.messageSuccessRule = messageSuccessRule;
|
|
132
|
+
function finish(...messages) {
|
|
133
|
+
return (tree, context) => {
|
|
134
|
+
exports.runInstallAndLogToDos(context, messages);
|
|
135
|
+
return tree;
|
|
136
|
+
};
|
|
137
|
+
}
|
|
138
|
+
exports.finish = finish;
|
|
139
|
+
//# sourceMappingURL=util.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"util.js","sourceRoot":"","sources":["util.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
import { Rule, SchematicContext, Tree } from '@angular-devkit/schematics';
|
|
2
|
+
import { NodePackageInstallTask } from '@angular-devkit/schematics/tasks';
|
|
3
|
+
import { Observable, of } from 'rxjs';
|
|
4
|
+
import { delay } from 'rxjs/operators';
|
|
5
|
+
import * as semver from 'semver';
|
|
6
|
+
import { getPackageJsonDependency } from './dependencies';
|
|
7
|
+
import { logInfo, logInfoWithDescriptor, logSuccess } from './logging';
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* Konfig-Objekt für einige Util-Methoden.
|
|
11
|
+
* Ermöglicht z.B. die Standard-Dauer des waitForTreeCallback-Aufrufs zu ändern
|
|
12
|
+
*/
|
|
13
|
+
export const UtilConfig = {
|
|
14
|
+
defaultWaitMS: 4000
|
|
15
|
+
};
|
|
16
|
+
|
|
17
|
+
export function escapeRegExp(str) {
|
|
18
|
+
return str.replace(/([.*+?^=!:${}()|\[\]\/\\])/g, '\\$1');
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
export function replaceAll(str, find, replace) {
|
|
22
|
+
return str.replace(new RegExp(escapeRegExp(find), 'g'), replace);
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* Wartet die übergebene Zeitspanne und ruft dann den Callback auf.
|
|
27
|
+
* Gibt anschließend den Tree über ein Observable zurück.
|
|
28
|
+
* @param tree
|
|
29
|
+
* @param callback
|
|
30
|
+
* @param waitMS
|
|
31
|
+
*/
|
|
32
|
+
export const waitForTreeCallback = (tree, callback, waitMS: number = UtilConfig.defaultWaitMS) => {
|
|
33
|
+
return new Observable<Tree>((subscriber) => {
|
|
34
|
+
of(callback())
|
|
35
|
+
.pipe(delay(waitMS))
|
|
36
|
+
.subscribe(
|
|
37
|
+
(callbackResult) => {
|
|
38
|
+
if (callbackResult instanceof Observable) {
|
|
39
|
+
callbackResult.subscribe((result: Tree) => {
|
|
40
|
+
subscriber.next(result);
|
|
41
|
+
subscriber.complete();
|
|
42
|
+
});
|
|
43
|
+
} else {
|
|
44
|
+
subscriber.next(<Tree>callbackResult);
|
|
45
|
+
subscriber.complete();
|
|
46
|
+
}
|
|
47
|
+
},
|
|
48
|
+
(error) => {
|
|
49
|
+
subscriber.error(error.message);
|
|
50
|
+
}
|
|
51
|
+
);
|
|
52
|
+
});
|
|
53
|
+
};
|
|
54
|
+
|
|
55
|
+
/**
|
|
56
|
+
* Führt npm install aus und wartet auf den Abschluss des Prozess für diese Schematic.
|
|
57
|
+
* Wenn dieses eintritt, werden die Hinweise und ToDos ausgegeben.
|
|
58
|
+
* @param context
|
|
59
|
+
* @param messages
|
|
60
|
+
*/
|
|
61
|
+
export const runInstallAndLogToDos: (context, messages) => void = (context: SchematicContext, messages) => {
|
|
62
|
+
// diese log-Ausgaben werden erst ganz zum Schluss ausgeführt (nach Update und npm-install logs)
|
|
63
|
+
process.addListener('exit', () => {
|
|
64
|
+
if (messages) {
|
|
65
|
+
messages.forEach((message: string) => {
|
|
66
|
+
logInfo(message);
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
});
|
|
70
|
+
|
|
71
|
+
// npm install starten
|
|
72
|
+
context.addTask(new NodePackageInstallTask());
|
|
73
|
+
};
|
|
74
|
+
|
|
75
|
+
export function updateI18nFile(tree: Tree, language: string, insertTransUnitId: string, translations: string) {
|
|
76
|
+
let filePath: string;
|
|
77
|
+
if (language === 'en') {
|
|
78
|
+
filePath = '/src/locale/messages.en.xlf';
|
|
79
|
+
} else if (language === 'fr') {
|
|
80
|
+
filePath = '/src/locale/messages.fr.xlf';
|
|
81
|
+
} else {
|
|
82
|
+
filePath = '/src/locale/messages.xlf';
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
if (tree.exists(filePath)) {
|
|
86
|
+
let insertTranslation = `<trans-unit id="${ insertTransUnitId }" datatype="html">`;
|
|
87
|
+
let content = (tree.read(filePath) as Buffer).toString();
|
|
88
|
+
let modifiedContent = replaceAll(content, insertTranslation, translations + '\n ' + insertTranslation);
|
|
89
|
+
|
|
90
|
+
if (content !== modifiedContent) {
|
|
91
|
+
tree.overwrite(filePath, modifiedContent);
|
|
92
|
+
logInfo(`Sprachdatei ${ filePath } angepasst.`);
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
export function applyRuleIf(minVersion: string, rule: Rule): Rule {
|
|
98
|
+
return (tree: Tree, _context: SchematicContext) => {
|
|
99
|
+
let version = getPackageJsonDependency(tree, '@ihk-gfi/lux-components').version;
|
|
100
|
+
|
|
101
|
+
if (semver.satisfies(minVersion, version)) {
|
|
102
|
+
return rule;
|
|
103
|
+
} else {
|
|
104
|
+
return tree;
|
|
105
|
+
}
|
|
106
|
+
};
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
export function messageDebugRule(message: any, options: any): Rule {
|
|
110
|
+
return (tree: Tree, _context: SchematicContext) => {
|
|
111
|
+
if (options && options.verbose) {
|
|
112
|
+
logInfo(message);
|
|
113
|
+
}
|
|
114
|
+
};
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
export function messageInfoRule(message: any): Rule {
|
|
118
|
+
return (tree: Tree, _context: SchematicContext) => {
|
|
119
|
+
logInfoWithDescriptor(message);
|
|
120
|
+
};
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
export function messageInfoInternRule(message: any): Rule {
|
|
124
|
+
return (tree: Tree, _context: SchematicContext) => {
|
|
125
|
+
logInfo(message);
|
|
126
|
+
};
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
export function messageSuccessRule(message: any): Rule {
|
|
130
|
+
return (tree: Tree, _context: SchematicContext) => {
|
|
131
|
+
logSuccess(message);
|
|
132
|
+
};
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
export function finish(...messages: string[]): Rule {
|
|
136
|
+
return (tree: Tree, context: SchematicContext) => {
|
|
137
|
+
runInstallAndLogToDos(context, messages);
|
|
138
|
+
return tree;
|
|
139
|
+
};
|
|
140
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { SchematicContext, Tree } from '@angular-devkit/schematics';
|
|
2
|
+
export declare function validateNodeVersion(context: SchematicContext, minimumVersion: string): void;
|
|
3
|
+
/**
|
|
4
|
+
* Prüft die Angular Version der aufrufenden Applikation und wirft eine SchematicsException, wenn
|
|
5
|
+
* die Version nicht der erforderlichen entspricht.
|
|
6
|
+
* @param tree
|
|
7
|
+
* @param context
|
|
8
|
+
* @param angularVersion
|
|
9
|
+
*/
|
|
10
|
+
export declare function validateAngularVersion(tree: Tree, context: SchematicContext, angularVersion: string): void;
|
|
11
|
+
export declare function validateLuxComponentsVersion(tree: Tree, versionRange: string): void;
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.validateLuxComponentsVersion = exports.validateAngularVersion = exports.validateNodeVersion = void 0;
|
|
4
|
+
const chalk = require("chalk");
|
|
5
|
+
const semver = require("semver");
|
|
6
|
+
const dependencies_1 = require("./dependencies");
|
|
7
|
+
const logging_1 = require("./logging");
|
|
8
|
+
function validateNodeVersion(context, minimumVersion) {
|
|
9
|
+
if (semver.lt(process.versions.node, minimumVersion)) {
|
|
10
|
+
logging_1.logInfo(`Nodeversion ${process.versions.node} -> ${chalk.redBright('fail')}`);
|
|
11
|
+
throw logging_1.formattedSchematicsException(`Ihre Node.js Version ist ${process.versions.node}.\n` +
|
|
12
|
+
`LUX benötigt allerdings die Version ${minimumVersion}.\n` +
|
|
13
|
+
`Bitte aktualisieren Sie Node.js.`);
|
|
14
|
+
}
|
|
15
|
+
logging_1.logInfo(`Nodeversion ${process.versions.node} -> ok`);
|
|
16
|
+
}
|
|
17
|
+
exports.validateNodeVersion = validateNodeVersion;
|
|
18
|
+
/**
|
|
19
|
+
* Prüft die Angular Version der aufrufenden Applikation und wirft eine SchematicsException, wenn
|
|
20
|
+
* die Version nicht der erforderlichen entspricht.
|
|
21
|
+
* @param tree
|
|
22
|
+
* @param context
|
|
23
|
+
* @param angularVersion
|
|
24
|
+
*/
|
|
25
|
+
function validateAngularVersion(tree, context, angularVersion) {
|
|
26
|
+
const currentVersion = dependencies_1.getPackageJsonDependency(tree, '@angular/common').version.replace(/([\^~])/g, '');
|
|
27
|
+
if (!semver.satisfies(currentVersion, angularVersion)) {
|
|
28
|
+
logging_1.logInfo(`Angularversion ${currentVersion} -> ${chalk.redBright('fail')}`);
|
|
29
|
+
throw logging_1.formattedSchematicsException(`Sie nutzen die Angular Version ${currentVersion}.`, `Dieser Generator benötigt allerdings eine ${angularVersion}.`, `Bitte nutzen Sie eine neuere Schematic für Ihr Update.`);
|
|
30
|
+
}
|
|
31
|
+
logging_1.logInfo(`Angularversion ${currentVersion} -> ok`);
|
|
32
|
+
}
|
|
33
|
+
exports.validateAngularVersion = validateAngularVersion;
|
|
34
|
+
function validateLuxComponentsVersion(tree, versionRange) {
|
|
35
|
+
const version = dependencies_1.getPackageJsonDependency(tree, '@ihk-gfi/lux-components').version.replace(/([\^~])/g, '');
|
|
36
|
+
if (!semver.satisfies(version, versionRange)) {
|
|
37
|
+
logging_1.logInfo(`LUX-Componentsversion ${version} -> ${chalk.redBright('fail')}`);
|
|
38
|
+
throw logging_1.formattedSchematicsException(`Die LUX-Componentsversion ${version} wird nicht unterstützt. ` +
|
|
39
|
+
`Dieser Updater unterstützt die Versionen ${versionRange}.`);
|
|
40
|
+
}
|
|
41
|
+
logging_1.logInfo(`LUX-Componentsversion ${version} -> ok`);
|
|
42
|
+
}
|
|
43
|
+
exports.validateLuxComponentsVersion = validateLuxComponentsVersion;
|
|
44
|
+
//# sourceMappingURL=validation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validation.js","sourceRoot":"","sources":["validation.ts"],"names":[],"mappings":";;;AACA,+BAA+B;AAC/B,iCAAiC;AACjC,iDAA0D;AAC1D,uCAAkE;AAElE,SAAgB,mBAAmB,CAAC,OAAyB,EAAE,cAAsB;IACnF,IAAI,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC,EAAE;QACpD,iBAAO,CAAC,eAAe,OAAO,CAAC,QAAQ,CAAC,IAAI,OAAO,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAC9E,MAAM,sCAA4B,CAChC,4BAA4B,OAAO,CAAC,QAAQ,CAAC,IAAI,KAAK;YACpD,uCAAuC,cAAc,KAAK;YAC1D,kCAAkC,CACrC,CAAC;KACH;IACD,iBAAO,CAAC,eAAe,OAAO,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,CAAC;AACxD,CAAC;AAVD,kDAUC;AAED;;;;;;GAMG;AACH,SAAgB,sBAAsB,CAAC,IAAU,EAAE,OAAyB,EAAE,cAAsB;IAClG,MAAM,cAAc,GAAG,uCAAwB,CAAC,IAAI,EAAE,iBAAiB,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;IACzG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,EAAE,cAAc,CAAC,EAAE;QACrD,iBAAO,CAAC,kBAAkB,cAAc,OAAO,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAC1E,MAAM,sCAA4B,CAChC,kCAAkC,cAAc,GAAG,EACnD,6CAA6C,cAAc,GAAG,EAC9D,wDAAwD,CACzD,CAAC;KACH;IACD,iBAAO,CAAC,kBAAkB,cAAc,QAAQ,CAAC,CAAC;AACpD,CAAC;AAXD,wDAWC;AAED,SAAgB,4BAA4B,CAAC,IAAU,EAAE,YAAoB;IAC3E,MAAM,OAAO,GAAG,uCAAwB,CAAC,IAAI,EAAE,yBAAyB,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;IAC1G,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,EAAE,YAAY,CAAC,EAAE;QAC5C,iBAAO,CAAC,yBAAyB,OAAO,OAAO,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAC1E,MAAM,sCAA4B,CAChC,6BAA6B,OAAO,2BAA2B;YAC7D,4CAA4C,YAAY,GAAG,CAC9D,CAAC;KACH;IACD,iBAAO,CAAC,yBAAyB,OAAO,QAAQ,CAAC,CAAC;AACpD,CAAC;AAVD,oEAUC"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { SchematicContext, Tree } from '@angular-devkit/schematics';
|
|
2
|
+
import * as chalk from 'chalk';
|
|
3
|
+
import * as semver from 'semver';
|
|
4
|
+
import { getPackageJsonDependency } from './dependencies';
|
|
5
|
+
import { formattedSchematicsException, logInfo } from './logging';
|
|
6
|
+
|
|
7
|
+
export function validateNodeVersion(context: SchematicContext, minimumVersion: string) {
|
|
8
|
+
if (semver.lt(process.versions.node, minimumVersion)) {
|
|
9
|
+
logInfo(`Nodeversion ${process.versions.node} -> ${chalk.redBright('fail')}`);
|
|
10
|
+
throw formattedSchematicsException(
|
|
11
|
+
`Ihre Node.js Version ist ${process.versions.node}.\n` +
|
|
12
|
+
`LUX benötigt allerdings die Version ${minimumVersion}.\n` +
|
|
13
|
+
`Bitte aktualisieren Sie Node.js.`
|
|
14
|
+
);
|
|
15
|
+
}
|
|
16
|
+
logInfo(`Nodeversion ${process.versions.node} -> ok`);
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* Prüft die Angular Version der aufrufenden Applikation und wirft eine SchematicsException, wenn
|
|
21
|
+
* die Version nicht der erforderlichen entspricht.
|
|
22
|
+
* @param tree
|
|
23
|
+
* @param context
|
|
24
|
+
* @param angularVersion
|
|
25
|
+
*/
|
|
26
|
+
export function validateAngularVersion(tree: Tree, context: SchematicContext, angularVersion: string) {
|
|
27
|
+
const currentVersion = getPackageJsonDependency(tree, '@angular/common').version.replace(/([\^~])/g, '');
|
|
28
|
+
if (!semver.satisfies(currentVersion, angularVersion)) {
|
|
29
|
+
logInfo(`Angularversion ${currentVersion} -> ${chalk.redBright('fail')}`);
|
|
30
|
+
throw formattedSchematicsException(
|
|
31
|
+
`Sie nutzen die Angular Version ${currentVersion}.`,
|
|
32
|
+
`Dieser Generator benötigt allerdings eine ${angularVersion}.`,
|
|
33
|
+
`Bitte nutzen Sie eine neuere Schematic für Ihr Update.`
|
|
34
|
+
);
|
|
35
|
+
}
|
|
36
|
+
logInfo(`Angularversion ${currentVersion} -> ok`);
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
export function validateLuxComponentsVersion(tree: Tree, versionRange: string) {
|
|
40
|
+
const version = getPackageJsonDependency(tree, '@ihk-gfi/lux-components').version.replace(/([\^~])/g, '');
|
|
41
|
+
if (!semver.satisfies(version, versionRange)) {
|
|
42
|
+
logInfo(`LUX-Componentsversion ${version} -> ${chalk.redBright('fail')}`);
|
|
43
|
+
throw formattedSchematicsException(
|
|
44
|
+
`Die LUX-Componentsversion ${version} wird nicht unterstützt. ` +
|
|
45
|
+
`Dieser Updater unterstützt die Versionen ${versionRange}.`
|
|
46
|
+
);
|
|
47
|
+
}
|
|
48
|
+
logInfo(`LUX-Componentsversion ${version} -> ok`);
|
|
49
|
+
}
|
package/tsconfig.json
ADDED
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
{
|
|
2
|
+
"compilerOptions": {
|
|
3
|
+
"baseUrl": "tslint.json",
|
|
4
|
+
"lib": [
|
|
5
|
+
"es2018",
|
|
6
|
+
"dom"
|
|
7
|
+
],
|
|
8
|
+
"declaration": true,
|
|
9
|
+
"module": "commonjs",
|
|
10
|
+
"moduleResolution": "node",
|
|
11
|
+
"noEmitOnError": true,
|
|
12
|
+
"noFallthroughCasesInSwitch": true,
|
|
13
|
+
"noImplicitAny": false,
|
|
14
|
+
"noImplicitThis": true,
|
|
15
|
+
"noUnusedParameters": false,
|
|
16
|
+
"noUnusedLocals": false,
|
|
17
|
+
"rootDir": "src/",
|
|
18
|
+
"skipDefaultLibCheck": true,
|
|
19
|
+
"skipLibCheck": true,
|
|
20
|
+
"sourceMap": true,
|
|
21
|
+
"strictNullChecks": true,
|
|
22
|
+
"target": "es6",
|
|
23
|
+
"types": [
|
|
24
|
+
"jasmine",
|
|
25
|
+
"node"
|
|
26
|
+
],
|
|
27
|
+
"allowUnusedLabels": true
|
|
28
|
+
},
|
|
29
|
+
"include": [
|
|
30
|
+
"src/**/*"
|
|
31
|
+
],
|
|
32
|
+
"exclude": [
|
|
33
|
+
"src/**/files/**/*",
|
|
34
|
+
"node_modules",
|
|
35
|
+
"**/*.spec.ts"
|
|
36
|
+
]
|
|
37
|
+
}
|