@o3r/schematics 9.6.0-alpha.40 → 9.6.0-alpha.41
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/package.json +4 -4
- package/src/rule-factories/dev-tools/devtools-registration.d.ts +5 -0
- package/src/rule-factories/dev-tools/devtools-registration.d.ts.map +1 -1
- package/src/rule-factories/dev-tools/devtools-registration.js +41 -1
- package/src/rule-factories/dev-tools/devtools-registration.js.map +1 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@o3r/schematics",
|
|
3
|
-
"version": "9.6.0-alpha.
|
|
3
|
+
"version": "9.6.0-alpha.41",
|
|
4
4
|
"description": "Schematics module of the Otter framework",
|
|
5
5
|
"main": "./src/public_api.js",
|
|
6
6
|
"typings": "./src/public_api.d.ts",
|
|
@@ -67,9 +67,9 @@
|
|
|
67
67
|
"@nx/jest": "~16.10.0",
|
|
68
68
|
"@nx/js": "~16.10.0",
|
|
69
69
|
"@nx/linter": "~16.10.0",
|
|
70
|
-
"@o3r/build-helpers": "^9.6.0-alpha.
|
|
71
|
-
"@o3r/dev-tools": "^9.6.0-alpha.
|
|
72
|
-
"@o3r/eslint-plugin": "^9.6.0-alpha.
|
|
70
|
+
"@o3r/build-helpers": "^9.6.0-alpha.41",
|
|
71
|
+
"@o3r/dev-tools": "^9.6.0-alpha.41",
|
|
72
|
+
"@o3r/eslint-plugin": "^9.6.0-alpha.41",
|
|
73
73
|
"@schematics/angular": "~16.2.0",
|
|
74
74
|
"@types/jest": "~29.5.2",
|
|
75
75
|
"@types/node": "^18.0.0",
|
|
@@ -10,6 +10,11 @@ export interface DevtoolRegisterOptions {
|
|
|
10
10
|
/** Name of the devtools service (if available) */
|
|
11
11
|
serviceName?: string;
|
|
12
12
|
}
|
|
13
|
+
/**
|
|
14
|
+
* Rule to inject a service after `bootstrapModule` or `bootstrapApplication`
|
|
15
|
+
* @param options
|
|
16
|
+
*/
|
|
17
|
+
export declare const injectServiceInMain: (options: DevtoolRegisterOptions) => Rule;
|
|
13
18
|
/**
|
|
14
19
|
* Register Devtools to the application
|
|
15
20
|
* @param tree
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"devtools-registration.d.ts","sourceRoot":"","sources":["../../../../src/rule-factories/dev-tools/devtools-registration.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,IAAI,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"devtools-registration.d.ts","sourceRoot":"","sources":["../../../../src/rule-factories/dev-tools/devtools-registration.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,IAAI,EAAE,MAAM,4BAA4B,CAAC;AAQzD,qDAAqD;AACrD,MAAM,WAAW,sBAAsB;IACrC,iCAAiC;IACjC,UAAU,EAAE,MAAM,CAAC;IACnB,sDAAsD;IACtD,WAAW,EAAE,MAAM,CAAC;IACpB,yCAAyC;IACzC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,kDAAkD;IAClD,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAqCD;;;GAGG;AACH,eAAO,MAAM,mBAAmB,YAAa,sBAAsB,KAAG,IAoDrE,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,6BAA6B,YAAa,sBAAsB,KAAG,IAsB/E,CAAC"}
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.registerDevtoolsToApplication = void 0;
|
|
3
|
+
exports.registerDevtoolsToApplication = exports.injectServiceInMain = void 0;
|
|
4
4
|
const schematics_1 = require("@angular-devkit/schematics");
|
|
5
5
|
const ts = require("typescript");
|
|
6
6
|
const ast_utils_1 = require("@schematics/angular/utility/ast-utils");
|
|
7
7
|
const utility_1 = require("../../utility");
|
|
8
8
|
const utility_2 = require("../../utility");
|
|
9
|
+
const change_1 = require("@schematics/angular/utility/change");
|
|
9
10
|
const registerModule = (options) => (tree, context) => {
|
|
10
11
|
const moduleFilePath = (0, utility_1.getAppModuleFilePath)(tree, context, options.projectName);
|
|
11
12
|
if (!moduleFilePath) {
|
|
@@ -24,6 +25,44 @@ const registerModule = (options) => (tree, context) => {
|
|
|
24
25
|
tree.commitUpdate(recorder);
|
|
25
26
|
return tree;
|
|
26
27
|
};
|
|
28
|
+
/**
|
|
29
|
+
* Rule to inject a service after `bootstrapModule` or `bootstrapApplication`
|
|
30
|
+
* @param options
|
|
31
|
+
*/
|
|
32
|
+
const injectServiceInMain = (options) => (tree, context) => {
|
|
33
|
+
if (!options.serviceName) {
|
|
34
|
+
return tree;
|
|
35
|
+
}
|
|
36
|
+
const mainFilePath = (0, utility_1.getMainFilePath)(tree, context, options.projectName);
|
|
37
|
+
if (!mainFilePath || !tree.exists(mainFilePath)) {
|
|
38
|
+
return tree;
|
|
39
|
+
}
|
|
40
|
+
const content = tree.readText(mainFilePath);
|
|
41
|
+
if (content.includes(`inject(${options.serviceName})`)) {
|
|
42
|
+
return tree;
|
|
43
|
+
}
|
|
44
|
+
const match = /bootstrap(Module|Application)\([^)]*\)/.exec(content);
|
|
45
|
+
if (!match) {
|
|
46
|
+
return tree;
|
|
47
|
+
}
|
|
48
|
+
const sourceFile = ts.createSourceFile(mainFilePath, content, ts.ScriptTarget.ES2015, true);
|
|
49
|
+
const recorder = tree.beginUpdate(mainFilePath);
|
|
50
|
+
const changes = [];
|
|
51
|
+
if (!(0, ast_utils_1.isImported)(sourceFile, options.serviceName, options.packageName)) {
|
|
52
|
+
changes.push((0, ast_utils_1.insertImport)(sourceFile, mainFilePath, options.serviceName, options.packageName));
|
|
53
|
+
}
|
|
54
|
+
if (!(0, ast_utils_1.isImported)(sourceFile, 'inject', '@angular/core')) {
|
|
55
|
+
changes.push((0, ast_utils_1.insertImport)(sourceFile, mainFilePath, 'inject', '@angular/core'));
|
|
56
|
+
}
|
|
57
|
+
if (!(0, ast_utils_1.isImported)(sourceFile, 'runInInjectionContext', '@angular/core')) {
|
|
58
|
+
changes.push((0, ast_utils_1.insertImport)(sourceFile, mainFilePath, 'runInInjectionContext', '@angular/core'));
|
|
59
|
+
}
|
|
60
|
+
changes.push(new change_1.InsertChange(mainFilePath, match.index + match[0].length, `\n .then((m) => { runInInjectionContext(m.injector, () => { inject(${options.serviceName}); }); return m; })`));
|
|
61
|
+
(0, change_1.applyToUpdateRecorder)(recorder, changes);
|
|
62
|
+
tree.commitUpdate(recorder);
|
|
63
|
+
return tree;
|
|
64
|
+
};
|
|
65
|
+
exports.injectServiceInMain = injectServiceInMain;
|
|
27
66
|
/**
|
|
28
67
|
* Register Devtools to the application
|
|
29
68
|
* @param tree
|
|
@@ -43,6 +82,7 @@ const registerDevtoolsToApplication = (options) => (tree, context) => {
|
|
|
43
82
|
}
|
|
44
83
|
return (0, schematics_1.chain)([
|
|
45
84
|
registerModule(options),
|
|
85
|
+
(0, exports.injectServiceInMain)(options),
|
|
46
86
|
(_, ctx) => ctx.logger.info(`The devtools module ${options.moduleName} has been registered and automatically activated${options.serviceName ? ', its activation can be driven via ' + options.serviceName : ''}.`)
|
|
47
87
|
])(tree, context);
|
|
48
88
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"devtools-registration.js","sourceRoot":"","sources":["../../../../src/rule-factories/dev-tools/devtools-registration.ts"],"names":[],"mappings":";;;AAAA,2DAAyD;AACzD,iCAAiC;AACjC,
|
|
1
|
+
{"version":3,"file":"devtools-registration.js","sourceRoot":"","sources":["../../../../src/rule-factories/dev-tools/devtools-registration.ts"],"names":[],"mappings":"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"}
|