@nrwl/angular 14.0.0-beta.0 → 14.0.0-beta.3
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/.eslintrc.json +26 -0
- package/executors.json +20 -0
- package/generators.d.ts +2 -2
- package/generators.js +2 -2
- package/generators.js.map +1 -1
- package/generators.json +16 -20
- package/migrations.json +6 -0
- package/ng-package.json +2 -0
- package/package.json +9 -6
- package/src/builders/module-federation-dev-server/module-federation-dev-server.impl.d.ts +6 -0
- package/src/builders/module-federation-dev-server/module-federation-dev-server.impl.js +44 -0
- package/src/builders/module-federation-dev-server/module-federation-dev-server.impl.js.map +1 -0
- package/src/builders/module-federation-dev-server/schema.d.ts +21 -0
- package/src/builders/module-federation-dev-server/schema.json +115 -0
- package/src/executors/file-server/compat.d.ts +2 -0
- package/src/executors/file-server/compat.js +6 -0
- package/src/executors/file-server/compat.js.map +1 -0
- package/src/executors/file-server/file-server.impl.d.ts +8 -0
- package/src/executors/file-server/file-server.impl.js +161 -0
- package/src/executors/file-server/file-server.impl.js.map +1 -0
- package/src/executors/file-server/schema.d.ts +14 -0
- package/src/executors/file-server/schema.json +67 -0
- package/src/generators/application/files/tsconfig.editor.json__tpl__ +1 -7
- package/src/generators/application/lib/update-editor-tsconfig.d.ts +1 -1
- package/src/generators/application/lib/update-editor-tsconfig.js +14 -2
- package/src/generators/application/lib/update-editor-tsconfig.js.map +1 -1
- package/src/generators/application/schema.json +5 -5
- package/src/generators/convert-to-with-mf/convert-to-with-mf.js +4 -4
- package/src/generators/convert-to-with-mf/convert-to-with-mf.js.map +1 -1
- package/src/generators/convert-to-with-mf/lib/write-new-webpack-config.js +1 -1
- package/src/generators/{mfe-host/mfe-host.compat.d.ts → host/host.compat.d.ts} +0 -0
- package/src/generators/host/host.compat.js +6 -0
- package/src/generators/host/host.compat.js.map +1 -0
- package/src/generators/host/host.d.ts +3 -0
- package/src/generators/host/host.js +34 -0
- package/src/generators/host/host.js.map +1 -0
- package/src/generators/{mfe-host → host}/schema.d.ts +0 -0
- package/src/generators/{mfe-host → host}/schema.json +5 -5
- package/src/generators/karma/karma.js +1 -0
- package/src/generators/karma/karma.js.map +1 -1
- package/src/generators/library/library.js +2 -7
- package/src/generators/library/library.js.map +1 -1
- package/src/generators/ng-add/migrate-from-angular-cli.js +9 -6
- package/src/generators/ng-add/migrate-from-angular-cli.js.map +1 -1
- package/src/generators/ng-add/schema.d.ts +0 -1
- package/src/generators/ng-add/schema.json +0 -7
- package/src/generators/ng-add/utilities/app.migrator.d.ts +1 -3
- package/src/generators/ng-add/utilities/app.migrator.js +27 -58
- package/src/generators/ng-add/utilities/app.migrator.js.map +1 -1
- package/src/generators/ng-add/utilities/{e2e-project.migrator.d.ts → e2e.migrator.d.ts} +0 -0
- package/src/generators/ng-add/utilities/{e2e-project.migrator.js → e2e.migrator.js} +32 -11
- package/src/generators/ng-add/utilities/e2e.migrator.js.map +1 -0
- package/src/generators/ng-add/utilities/lib.migrator.d.ts +26 -0
- package/src/generators/ng-add/utilities/lib.migrator.js +351 -0
- package/src/generators/ng-add/utilities/lib.migrator.js.map +1 -0
- package/src/generators/ng-add/utilities/normalize-options.js +5 -2
- package/src/generators/ng-add/utilities/normalize-options.js.map +1 -1
- package/src/generators/ng-add/utilities/project.migrator.d.ts +11 -2
- package/src/generators/ng-add/utilities/project.migrator.js +82 -4
- package/src/generators/ng-add/utilities/project.migrator.js.map +1 -1
- package/src/generators/ng-add/utilities/types.d.ts +9 -1
- package/src/generators/ng-add/utilities/validate-projects.d.ts +2 -0
- package/src/generators/ng-add/utilities/validate-projects.js +46 -0
- package/src/generators/ng-add/utilities/validate-projects.js.map +1 -0
- package/src/generators/ng-add/utilities/validation-logging.d.ts +2 -0
- package/src/generators/ng-add/utilities/validation-logging.js +20 -0
- package/src/generators/ng-add/utilities/validation-logging.js.map +1 -0
- package/src/generators/ng-add/utilities/workspace.d.ts +1 -1
- package/src/generators/ng-add/utilities/workspace.js +13 -17
- package/src/generators/ng-add/utilities/workspace.js.map +1 -1
- package/src/generators/{mfe-remote/mfe-remote.compat.d.ts → remote/remote.compat.d.ts} +0 -0
- package/src/generators/remote/remote.compat.js +6 -0
- package/src/generators/remote/remote.compat.js.map +1 -0
- package/src/generators/remote/remote.d.ts +3 -0
- package/src/generators/remote/remote.js +76 -0
- package/src/generators/remote/remote.js.map +1 -0
- package/src/generators/{mfe-remote → remote}/schema.d.ts +0 -0
- package/src/generators/{mfe-remote → remote}/schema.json +5 -5
- package/src/generators/setup-mfe/files/webpack/{mfe.config.js__tmpl__ → module-federation.config.js__tmpl__} +0 -0
- package/src/generators/setup-mfe/files/webpack/webpack.config.js__tmpl__ +1 -1
- package/src/generators/setup-mfe/files/webpack/webpack.prod.config.js__tmpl__ +1 -1
- package/src/generators/setup-mfe/lib/add-remote-to-host.js +10 -10
- package/src/generators/setup-mfe/lib/add-remote-to-host.js.map +1 -1
- package/src/generators/setup-mfe/lib/fix-bootstrap.js +3 -3
- package/src/generators/setup-mfe/lib/fix-bootstrap.js.map +1 -1
- package/src/generators/setup-mfe/lib/generate-config.js +1 -1
- package/src/generators/setup-mfe/lib/generate-config.js.map +1 -1
- package/src/generators/setup-mfe/lib/setup-host-if-dynamic.js +3 -3
- package/src/generators/setup-mfe/lib/setup-host-if-dynamic.js.map +1 -1
- package/src/generators/setup-mfe/lib/setup-serve-target.js +18 -19
- package/src/generators/setup-mfe/lib/setup-serve-target.js.map +1 -1
- package/src/generators/utils/dependencies.d.ts +2 -0
- package/src/generators/utils/dependencies.js +15 -0
- package/src/generators/utils/dependencies.js.map +1 -0
- package/src/migrations/update-13-8-1/add-cypress-mfe-workaround.js +2 -2
- package/src/migrations/update-13-8-1/add-cypress-mfe-workaround.js.map +1 -1
- package/src/migrations/update-14-0-0/rename-mf-config.d.ts +2 -0
- package/src/migrations/update-14-0-0/rename-mf-config.js +27 -0
- package/src/migrations/update-14-0-0/rename-mf-config.js.map +1 -0
- package/src/utils/{get-mfe-projects.d.ts → get-mf-projects.d.ts} +1 -1
- package/src/utils/{get-mfe-projects.js → get-mf-projects.js} +4 -4
- package/src/utils/get-mf-projects.js.map +1 -0
- package/src/utils/mfe/mfe-webpack.js +45 -8
- package/src/utils/mfe/mfe-webpack.js.map +1 -1
- package/src/utils/versions.js +1 -1
- package/src/generators/mfe-host/mfe-host.compat.js +0 -6
- package/src/generators/mfe-host/mfe-host.compat.js.map +0 -1
- package/src/generators/mfe-host/mfe-host.d.ts +0 -3
- package/src/generators/mfe-host/mfe-host.js +0 -22
- package/src/generators/mfe-host/mfe-host.js.map +0 -1
- package/src/generators/mfe-remote/mfe-remote.compat.js +0 -6
- package/src/generators/mfe-remote/mfe-remote.compat.js.map +0 -1
- package/src/generators/mfe-remote/mfe-remote.d.ts +0 -3
- package/src/generators/mfe-remote/mfe-remote.js +0 -31
- package/src/generators/mfe-remote/mfe-remote.js.map +0 -1
- package/src/generators/ng-add/utilities/e2e-project.migrator.js.map +0 -1
- package/src/utils/get-mfe-projects.js.map +0 -1
|
@@ -5,7 +5,7 @@ const devkit_1 = require("@nrwl/devkit");
|
|
|
5
5
|
const path_1 = require("path");
|
|
6
6
|
const logger_1 = require("./logger");
|
|
7
7
|
class ProjectMigrator {
|
|
8
|
-
constructor(tree, options, project, rootDir) {
|
|
8
|
+
constructor(tree, options, project, rootDir, logger) {
|
|
9
9
|
var _a, _b, _c;
|
|
10
10
|
this.tree = tree;
|
|
11
11
|
this.options = options;
|
|
@@ -17,7 +17,76 @@ class ProjectMigrator {
|
|
|
17
17
|
newRoot: `${rootDir}/${project.name}`,
|
|
18
18
|
newSourceRoot: `${rootDir}/${project.name}/src`,
|
|
19
19
|
};
|
|
20
|
-
this.logger = new logger_1.Logger(this.project.name);
|
|
20
|
+
this.logger = logger !== null && logger !== void 0 ? logger : new logger_1.Logger(this.project.name);
|
|
21
|
+
}
|
|
22
|
+
get projectName() {
|
|
23
|
+
return this.project.name;
|
|
24
|
+
}
|
|
25
|
+
convertAsset(asset) {
|
|
26
|
+
if (typeof asset === 'string') {
|
|
27
|
+
return this.convertSourceRootPath(asset);
|
|
28
|
+
}
|
|
29
|
+
else {
|
|
30
|
+
return Object.assign(Object.assign({}, asset), { input: this.convertSourceRootPath(asset.input) });
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
convertEsLintConfigExtendToNewPath(eslintConfigPath, extendPath) {
|
|
34
|
+
if (!extendPath.startsWith('..')) {
|
|
35
|
+
// we only need to adjust paths that are on a different directory, files
|
|
36
|
+
// in the same directory are moved together so their relative paths are
|
|
37
|
+
// not changed
|
|
38
|
+
return extendPath;
|
|
39
|
+
}
|
|
40
|
+
return (0, devkit_1.joinPathFragments)((0, devkit_1.offsetFromRoot)(this.project.newRoot), (0, path_1.dirname)(eslintConfigPath), extendPath);
|
|
41
|
+
}
|
|
42
|
+
convertSourceRootPath(originalPath) {
|
|
43
|
+
return (originalPath === null || originalPath === void 0 ? void 0 : originalPath.startsWith(this.project.oldSourceRoot))
|
|
44
|
+
? (0, devkit_1.joinPathFragments)(this.project.newSourceRoot, originalPath.replace(this.project.oldSourceRoot, ''))
|
|
45
|
+
: originalPath;
|
|
46
|
+
}
|
|
47
|
+
convertRootPath(originalPath) {
|
|
48
|
+
return (originalPath === null || originalPath === void 0 ? void 0 : originalPath.startsWith(this.project.oldRoot))
|
|
49
|
+
? (0, devkit_1.joinPathFragments)(this.project.newRoot, originalPath.replace(this.project.oldRoot, ''))
|
|
50
|
+
: originalPath;
|
|
51
|
+
}
|
|
52
|
+
convertPath(originalPath) {
|
|
53
|
+
if (originalPath === null || originalPath === void 0 ? void 0 : originalPath.startsWith(this.project.oldSourceRoot)) {
|
|
54
|
+
return (0, devkit_1.joinPathFragments)(this.project.newSourceRoot, originalPath.replace(this.project.oldSourceRoot, ''));
|
|
55
|
+
}
|
|
56
|
+
if (this.project.oldRoot !== '' &&
|
|
57
|
+
(originalPath === null || originalPath === void 0 ? void 0 : originalPath.startsWith(this.project.oldRoot))) {
|
|
58
|
+
return (0, devkit_1.joinPathFragments)(this.project.newRoot, originalPath.replace(this.project.oldRoot, ''));
|
|
59
|
+
}
|
|
60
|
+
return originalPath;
|
|
61
|
+
}
|
|
62
|
+
getTargetValuesForOption(target, optionPath) {
|
|
63
|
+
const values = new Set();
|
|
64
|
+
const value = this.getValueForOption(target.options, optionPath);
|
|
65
|
+
if (value) {
|
|
66
|
+
values.add(value);
|
|
67
|
+
}
|
|
68
|
+
if (target.configurations) {
|
|
69
|
+
for (const configuration of Object.values(target.configurations)) {
|
|
70
|
+
const value = this.getValueForOption(configuration, optionPath);
|
|
71
|
+
if (value) {
|
|
72
|
+
values.add(value);
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
return Array.from(values);
|
|
77
|
+
}
|
|
78
|
+
getValueForOption(options, optionPath) {
|
|
79
|
+
const segments = optionPath.split('.');
|
|
80
|
+
let value = options;
|
|
81
|
+
for (const segment of segments) {
|
|
82
|
+
if (value && value[segment]) {
|
|
83
|
+
value = value[segment];
|
|
84
|
+
}
|
|
85
|
+
else {
|
|
86
|
+
return null;
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
return value;
|
|
21
90
|
}
|
|
22
91
|
moveProjectRootFile(filePath, isRequired = true) {
|
|
23
92
|
if (!filePath) {
|
|
@@ -36,12 +105,12 @@ class ProjectMigrator {
|
|
|
36
105
|
moveFile(from, to, required = true) {
|
|
37
106
|
if (!this.tree.exists(from)) {
|
|
38
107
|
if (required) {
|
|
39
|
-
|
|
108
|
+
this.logger.warn(`The path "${from}" does not exist. Skipping.`);
|
|
40
109
|
}
|
|
41
110
|
}
|
|
42
111
|
else if (this.tree.exists(to)) {
|
|
43
112
|
if (required) {
|
|
44
|
-
|
|
113
|
+
this.logger.warn(`The path "${to}" already exists. Skipping.`);
|
|
45
114
|
}
|
|
46
115
|
}
|
|
47
116
|
else {
|
|
@@ -50,6 +119,15 @@ class ProjectMigrator {
|
|
|
50
119
|
this.tree.delete(from);
|
|
51
120
|
}
|
|
52
121
|
}
|
|
122
|
+
updateTsConfigFile(tsConfigPath, rootTsConfigFile, projectOffsetFromRoot) {
|
|
123
|
+
(0, devkit_1.updateJson)(this.tree, tsConfigPath, (json) => {
|
|
124
|
+
var _a;
|
|
125
|
+
json.extends = `${projectOffsetFromRoot}${rootTsConfigFile}`;
|
|
126
|
+
json.compilerOptions = (_a = json.compilerOptions) !== null && _a !== void 0 ? _a : {};
|
|
127
|
+
json.compilerOptions.outDir = `${projectOffsetFromRoot}dist/out-tsc`;
|
|
128
|
+
return json;
|
|
129
|
+
});
|
|
130
|
+
}
|
|
53
131
|
}
|
|
54
132
|
exports.ProjectMigrator = ProjectMigrator;
|
|
55
133
|
//# sourceMappingURL=project.migrator.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"project.migrator.js","sourceRoot":"","sources":["../../../../../../../packages/angular/src/generators/ng-add/utilities/project.migrator.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"project.migrator.js","sourceRoot":"","sources":["../../../../../../../packages/angular/src/generators/ng-add/utilities/project.migrator.ts"],"names":[],"mappings":"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"}
|
|
@@ -11,4 +11,12 @@ export declare type WorkspaceCapabilities = {
|
|
|
11
11
|
karma: boolean;
|
|
12
12
|
eslint: boolean;
|
|
13
13
|
};
|
|
14
|
-
export declare type
|
|
14
|
+
export declare type ValidationError = {
|
|
15
|
+
message?: string;
|
|
16
|
+
messageGroup?: {
|
|
17
|
+
title: string;
|
|
18
|
+
messages: string[];
|
|
19
|
+
};
|
|
20
|
+
hint?: string;
|
|
21
|
+
};
|
|
22
|
+
export declare type ValidationResult = ValidationError[] | null;
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.validateProjects = void 0;
|
|
4
|
+
const chalk = require("chalk");
|
|
5
|
+
const validation_logging_1 = require("./validation-logging");
|
|
6
|
+
function validateProjects(migrators) {
|
|
7
|
+
const erroredProjects = {};
|
|
8
|
+
for (const migrator of migrators) {
|
|
9
|
+
const result = migrator.validate();
|
|
10
|
+
if (result) {
|
|
11
|
+
erroredProjects[migrator.projectName] = result;
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
if (!Object.keys(erroredProjects).length) {
|
|
15
|
+
return;
|
|
16
|
+
}
|
|
17
|
+
throw new Error(`${validation_logging_1.workspaceMigrationErrorHeading}
|
|
18
|
+
|
|
19
|
+
${Object.entries(erroredProjects)
|
|
20
|
+
.map(([project, errors]) => getProjectValidationErrorsText(project, errors))
|
|
21
|
+
.join('\n\n')}`);
|
|
22
|
+
}
|
|
23
|
+
exports.validateProjects = validateProjects;
|
|
24
|
+
function getProjectValidationErrorsText(project, errors) {
|
|
25
|
+
return `${getProjectHeading(project)}
|
|
26
|
+
|
|
27
|
+
${errors.map((error) => getValidationErrorText(error)).join('\n\n ')}`;
|
|
28
|
+
}
|
|
29
|
+
function getValidationErrorText({ message, messageGroup, hint, }) {
|
|
30
|
+
let lines = message
|
|
31
|
+
? [`- ${message}`, ...(hint ? [chalk.dim(chalk.italic(` ${hint}`))] : [])]
|
|
32
|
+
: [
|
|
33
|
+
`- ${messageGroup.title}:`,
|
|
34
|
+
' - Errors:',
|
|
35
|
+
...messageGroup.messages.map((message) => ` - ${message}`),
|
|
36
|
+
...(hint ? [chalk.dim(chalk.italic(` - ${hint}`))] : []),
|
|
37
|
+
];
|
|
38
|
+
return lines.join('\n ');
|
|
39
|
+
}
|
|
40
|
+
function getProjectHeading(project) {
|
|
41
|
+
const line = '-'.repeat(project.length + 4);
|
|
42
|
+
return chalk.bold(`${line}
|
|
43
|
+
${project}
|
|
44
|
+
${line}`);
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=validate-projects.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validate-projects.js","sourceRoot":"","sources":["../../../../../../../packages/angular/src/generators/ng-add/utilities/validate-projects.ts"],"names":[],"mappings":";;;AAAA,+BAA+B;AAG/B,6DAAsE;AAEtE,SAAgB,gBAAgB,CAAC,SAA4B;IAC3D,MAAM,eAAe,GAAsC,EAAE,CAAC;IAC9D,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE;QAChC,MAAM,MAAM,GAAG,QAAQ,CAAC,QAAQ,EAAE,CAAC;QACnC,IAAI,MAAM,EAAE;YACV,eAAe,CAAC,QAAQ,CAAC,WAAW,CAAC,GAAG,MAAM,CAAC;SAChD;KACF;IAED,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,MAAM,EAAE;QACxC,OAAO;KACR;IAED,MAAM,IAAI,KAAK,CACb,GAAG,mDAA8B;;EAEnC,MAAM,CAAC,OAAO,CAAC,eAAe,CAAC;SAC9B,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,8BAA8B,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;SAC3E,IAAI,CAAC,MAAM,CAAC,EAAE,CACd,CAAC;AACJ,CAAC;AApBD,4CAoBC;AAED,SAAS,8BAA8B,CACrC,OAAe,EACf,MAAyB;IAEzB,OAAO,GAAG,iBAAiB,CAAC,OAAO,CAAC;;IAElC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;AAC1E,CAAC;AAED,SAAS,sBAAsB,CAAC,EAC9B,OAAO,EACP,YAAY,EACZ,IAAI,GACY;IAChB,IAAI,KAAK,GAAG,OAAO;QACjB,CAAC,CAAC,CAAC,KAAK,OAAO,EAAE,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAC3E,CAAC,CAAC;YACE,KAAK,YAAY,CAAC,KAAK,GAAG;YAC1B,aAAa;YACb,GAAG,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,SAAS,OAAO,EAAE,CAAC;YAC7D,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;SAC1D,CAAC;IAEN,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAC5B,CAAC;AAED,SAAS,iBAAiB,CAAC,OAAe;IACxC,MAAM,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAE5C,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI;IACvB,OAAO;EACT,IAAI,EAAE,CAAC,CAAC;AACV,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.arrayToString = exports.workspaceMigrationErrorHeading = void 0;
|
|
4
|
+
exports.workspaceMigrationErrorHeading = 'The workspace cannot be migrated because of the following issues:';
|
|
5
|
+
function arrayToString(array) {
|
|
6
|
+
if (array.length === 0) {
|
|
7
|
+
return '';
|
|
8
|
+
}
|
|
9
|
+
if (array.length === 1) {
|
|
10
|
+
return quote(array[0]);
|
|
11
|
+
}
|
|
12
|
+
const last = array[array.length - 1];
|
|
13
|
+
const rest = array.slice(0, array.length - 1);
|
|
14
|
+
return `${rest.map(quote).join(', ')} and ${quote(last)}`;
|
|
15
|
+
}
|
|
16
|
+
exports.arrayToString = arrayToString;
|
|
17
|
+
function quote(str) {
|
|
18
|
+
return `"${str}"`;
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=validation-logging.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validation-logging.js","sourceRoot":"","sources":["../../../../../../../packages/angular/src/generators/ng-add/utilities/validation-logging.ts"],"names":[],"mappings":";;;AAAa,QAAA,8BAA8B,GACzC,mEAAmE,CAAC;AAEtE,SAAgB,aAAa,CAAC,KAAe;IAC3C,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;QACtB,OAAO,EAAE,CAAC;KACX;IAED,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;QACtB,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;KACxB;IAED,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACrC,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC9C,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;AAC5D,CAAC;AAZD,sCAYC;AAED,SAAS,KAAK,CAAC,GAAW;IACxB,OAAO,IAAI,GAAG,GAAG,CAAC;AACpB,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Tree } from '@nrwl/devkit';
|
|
2
2
|
import { GeneratorOptions } from '../schema';
|
|
3
3
|
import { WorkspaceCapabilities, WorkspaceProjects } from './types';
|
|
4
|
-
export declare function validateWorkspace(tree: Tree
|
|
4
|
+
export declare function validateWorkspace(tree: Tree): void;
|
|
5
5
|
export declare function createNxJson(tree: Tree, options: GeneratorOptions, setWorkspaceLayoutAsNewProjectRoot?: boolean): void;
|
|
6
6
|
export declare function decorateAngularCli(tree: Tree): void;
|
|
7
7
|
export declare function updateWorkspaceConfigDefaults(tree: Tree): void;
|
|
@@ -12,25 +12,21 @@ const versions_1 = require("@nrwl/workspace/src/utils/versions");
|
|
|
12
12
|
const fs_1 = require("fs");
|
|
13
13
|
const path_1 = require("path");
|
|
14
14
|
const versions_2 = require("../../../utils/versions");
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
if (!tree.exists('angular.json')) {
|
|
21
|
-
throw new Error('Cannot find angular.json');
|
|
22
|
-
}
|
|
23
|
-
// TODO: this restrictions will be removed when support for multiple
|
|
24
|
-
// projects is added
|
|
25
|
-
if (projects.apps.length > 2 || projects.libs.length > 0) {
|
|
26
|
-
throw new Error('Can only convert projects with one app');
|
|
27
|
-
}
|
|
15
|
+
const validation_logging_1 = require("./validation-logging");
|
|
16
|
+
function validateWorkspace(tree) {
|
|
17
|
+
const errors = [];
|
|
18
|
+
if (!tree.exists('package.json')) {
|
|
19
|
+
errors.push('The "package.json" file could not be found.');
|
|
28
20
|
}
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
21
|
+
if (!tree.exists('angular.json')) {
|
|
22
|
+
errors.push('The "angular.json" file could not be found.');
|
|
23
|
+
}
|
|
24
|
+
if (!errors.length) {
|
|
25
|
+
return;
|
|
33
26
|
}
|
|
27
|
+
throw new Error(`${validation_logging_1.workspaceMigrationErrorHeading}
|
|
28
|
+
|
|
29
|
+
- ${errors.join('\n ')}`);
|
|
34
30
|
}
|
|
35
31
|
exports.validateWorkspace = validateWorkspace;
|
|
36
32
|
function createNxJson(tree, options, setWorkspaceLayoutAsNewProjectRoot = false) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workspace.js","sourceRoot":"","sources":["../../../../../../../packages/angular/src/generators/ng-add/utilities/workspace.ts"],"names":[],"mappings":";;;;AAAA,yCAUsB;AACtB,yCAAyD;AACzD,kFAAkG;AAClG,6EAA+E;AAC/E,qEAA2F;AAC3F,yEAAqF;AACrF,iEAAqE;AACrE,2BAAkC;AAClC,+BAAqC;AACrC,sDAA0E;
|
|
1
|
+
{"version":3,"file":"workspace.js","sourceRoot":"","sources":["../../../../../../../packages/angular/src/generators/ng-add/utilities/workspace.ts"],"names":[],"mappings":"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"}
|
|
File without changes
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const devkit_1 = require("@nrwl/devkit");
|
|
4
|
+
const remote_1 = require("./remote");
|
|
5
|
+
exports.default = (0, devkit_1.convertNxGenerator)(remote_1.default);
|
|
6
|
+
//# sourceMappingURL=remote.compat.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"remote.compat.js","sourceRoot":"","sources":["../../../../../../packages/angular/src/generators/remote/remote.compat.ts"],"names":[],"mappings":";;AAAA,yCAAkD;AAClD,qCAA8B;AAE9B,kBAAe,IAAA,2BAAkB,EAAC,gBAAM,CAAC,CAAC"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const tslib_1 = require("tslib");
|
|
4
|
+
const devkit_1 = require("@nrwl/devkit");
|
|
5
|
+
const devkit_2 = require("@nrwl/devkit");
|
|
6
|
+
const application_1 = require("../application/application");
|
|
7
|
+
const get_mf_projects_1 = require("../../utils/get-mf-projects");
|
|
8
|
+
function findNextAvailablePort(tree) {
|
|
9
|
+
var _a, _b, _c;
|
|
10
|
+
const mfeProjects = (0, get_mf_projects_1.getMFProjects)(tree);
|
|
11
|
+
const ports = new Set([4200]);
|
|
12
|
+
for (const mfeProject of mfeProjects) {
|
|
13
|
+
const { targets } = (0, devkit_2.readProjectConfiguration)(tree, mfeProject);
|
|
14
|
+
const port = (_c = (_b = (_a = targets === null || targets === void 0 ? void 0 : targets.serve) === null || _a === void 0 ? void 0 : _a.options) === null || _b === void 0 ? void 0 : _b.port) !== null && _c !== void 0 ? _c : 4200;
|
|
15
|
+
ports.add(port);
|
|
16
|
+
}
|
|
17
|
+
const nextAvailablePort = Math.max(...ports) + 1;
|
|
18
|
+
return nextAvailablePort;
|
|
19
|
+
}
|
|
20
|
+
function remote(tree, options) {
|
|
21
|
+
var _a;
|
|
22
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
23
|
+
const projects = (0, devkit_2.getProjects)(tree);
|
|
24
|
+
if (options.host && !projects.has(options.host)) {
|
|
25
|
+
throw new Error(`The name of the application to be used as the host app does not exist. (${options.host})`);
|
|
26
|
+
}
|
|
27
|
+
const installTask = yield (0, application_1.default)(tree, Object.assign(Object.assign({}, options), { mfe: true, mfeType: 'remote', routing: true, host: options.host, port: (_a = options.port) !== null && _a !== void 0 ? _a : findNextAvailablePort(tree) }));
|
|
28
|
+
removeDeadCode(tree, options);
|
|
29
|
+
return installTask;
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
exports.default = remote;
|
|
33
|
+
function removeDeadCode(tree, options) {
|
|
34
|
+
const project = (0, devkit_2.readProjectConfiguration)(tree, options.name);
|
|
35
|
+
['css', 'less', 'scss', 'sass'].forEach((style) => {
|
|
36
|
+
const pathToComponentStyle = (0, devkit_1.joinPathFragments)(project.sourceRoot, `app/app.component.${style}`);
|
|
37
|
+
if (tree.exists(pathToComponentStyle)) {
|
|
38
|
+
tree.delete(pathToComponentStyle);
|
|
39
|
+
}
|
|
40
|
+
});
|
|
41
|
+
tree.delete((0, devkit_1.joinPathFragments)(project.sourceRoot, 'app/nx-welcome.component.ts'));
|
|
42
|
+
tree.delete((0, devkit_1.joinPathFragments)(project.sourceRoot, 'app/app.component.spec.ts'));
|
|
43
|
+
tree.delete((0, devkit_1.joinPathFragments)(project.sourceRoot, 'app/app.component.html'));
|
|
44
|
+
const pathToComponent = (0, devkit_1.joinPathFragments)(project.sourceRoot, 'app/app.component.ts');
|
|
45
|
+
const component = tree.read(pathToComponent, 'utf-8').split('templateUrl')[0] +
|
|
46
|
+
`template: '<router-outlet></router-outlet>'
|
|
47
|
+
})
|
|
48
|
+
export class AppComponent {}`;
|
|
49
|
+
tree.write(pathToComponent, component);
|
|
50
|
+
tree.write((0, devkit_1.joinPathFragments)(project.sourceRoot, 'app/app.module.ts'), `/*
|
|
51
|
+
* This RemoteEntryModule is imported here to allow TS to find the Module during
|
|
52
|
+
* compilation, allowing it to be included in the built bundle. This is required
|
|
53
|
+
* for the Module Federation Plugin to expose the Module correctly.
|
|
54
|
+
* */
|
|
55
|
+
import { RemoteEntryModule } from './remote-entry/entry.module';
|
|
56
|
+
import { NgModule } from '@angular/core';
|
|
57
|
+
import { BrowserModule } from '@angular/platform-browser';
|
|
58
|
+
|
|
59
|
+
import { AppComponent } from './app.component';
|
|
60
|
+
import { RouterModule } from '@angular/router';
|
|
61
|
+
|
|
62
|
+
@NgModule({
|
|
63
|
+
declarations: [AppComponent],
|
|
64
|
+
imports: [
|
|
65
|
+
BrowserModule,
|
|
66
|
+
RouterModule.forRoot([{
|
|
67
|
+
path: '',
|
|
68
|
+
loadChildren: () => import('./remote-entry/entry.module').then(m => m.RemoteEntryModule)
|
|
69
|
+
}], { initialNavigation: 'enabledBlocking' }),
|
|
70
|
+
],
|
|
71
|
+
providers: [],
|
|
72
|
+
bootstrap: [AppComponent],
|
|
73
|
+
})
|
|
74
|
+
export class AppModule {}`);
|
|
75
|
+
}
|
|
76
|
+
//# sourceMappingURL=remote.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"remote.js","sourceRoot":"","sources":["../../../../../../packages/angular/src/generators/remote/remote.ts"],"names":[],"mappings":"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"}
|
|
File without changes
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "http://json-schema.org/schema",
|
|
3
|
-
"$id": "
|
|
3
|
+
"$id": "NxMFRemote",
|
|
4
4
|
"cli": "nx",
|
|
5
|
-
"title": "Nx
|
|
6
|
-
"description": "Create an Angular Remote
|
|
5
|
+
"title": "Nx Module Federation Remote App",
|
|
6
|
+
"description": "Create an Angular Remote Module Federation Application.",
|
|
7
7
|
"type": "object",
|
|
8
8
|
"examples": [
|
|
9
9
|
{
|
|
10
|
-
"command": "nx g @nrwl/angular:
|
|
11
|
-
"description": "Create an Angular app with configuration in place for
|
|
10
|
+
"command": "nx g @nrwl/angular:remote appName --host=host --port=4201",
|
|
11
|
+
"description": "Create an Angular app with configuration in place for Module Federation. If host is provided, attach this remote app to host app's configuration."
|
|
12
12
|
}
|
|
13
13
|
],
|
|
14
14
|
"properties": {
|
|
File without changes
|
|
@@ -19,13 +19,13 @@ exports.checkIsCommaNeeded = checkIsCommaNeeded;
|
|
|
19
19
|
function addRemoteToHost(tree, options) {
|
|
20
20
|
if (options.mfeType === 'remote' && options.host) {
|
|
21
21
|
const hostProject = (0, devkit_2.readProjectConfiguration)(tree, options.host);
|
|
22
|
-
const
|
|
23
|
-
const hostFederationType = determineHostFederationType(tree,
|
|
22
|
+
const pathToMFManifest = (0, devkit_2.joinPathFragments)(hostProject.sourceRoot, 'assets/module-federation.manifest.json');
|
|
23
|
+
const hostFederationType = determineHostFederationType(tree, pathToMFManifest);
|
|
24
24
|
if (hostFederationType === 'static') {
|
|
25
25
|
addRemoteToStaticHost(tree, options, hostProject);
|
|
26
26
|
}
|
|
27
27
|
else if (hostFederationType === 'dynamic') {
|
|
28
|
-
addRemoteToDynamicHost(tree, options,
|
|
28
|
+
addRemoteToDynamicHost(tree, options, pathToMFManifest);
|
|
29
29
|
}
|
|
30
30
|
const declarationFilePath = (0, devkit_2.joinPathFragments)(hostProject.sourceRoot, 'decl.d.ts');
|
|
31
31
|
const declarationFileContent = (tree.exists(declarationFilePath)
|
|
@@ -40,17 +40,17 @@ function determineHostFederationType(tree, pathToMfeManifest) {
|
|
|
40
40
|
return tree.exists(pathToMfeManifest) ? 'dynamic' : 'static';
|
|
41
41
|
}
|
|
42
42
|
function addRemoteToStaticHost(tree, options, hostProject) {
|
|
43
|
-
const
|
|
44
|
-
if (!
|
|
45
|
-
throw new Error(`The selected host application, ${options.host}, does not contain a
|
|
43
|
+
const hostMFConfigPath = (0, devkit_2.joinPathFragments)(hostProject.root, 'module-federation.config.js');
|
|
44
|
+
if (!hostMFConfigPath || !tree.exists(hostMFConfigPath)) {
|
|
45
|
+
throw new Error(`The selected host application, ${options.host}, does not contain a module-federation.config.js or module-federation.manifest.json file. Are you sure it has been set up as a host application?`);
|
|
46
46
|
}
|
|
47
|
-
const
|
|
48
|
-
const webpackAst = tsquery_1.tsquery.ast(
|
|
47
|
+
const hostMFConfig = tree.read(hostMFConfigPath, 'utf-8');
|
|
48
|
+
const webpackAst = tsquery_1.tsquery.ast(hostMFConfig);
|
|
49
49
|
const mfRemotesNode = (0, tsquery_1.tsquery)(webpackAst, 'Identifier[name=remotes] ~ ArrayLiteralExpression', { visitAllChildren: true })[0];
|
|
50
50
|
const endOfPropertiesPos = mfRemotesNode.getEnd() - 1;
|
|
51
51
|
const isCommaNeeded = checkIsCommaNeeded(mfRemotesNode.getText());
|
|
52
|
-
const updatedConfig = `${
|
|
53
|
-
tree.write(
|
|
52
|
+
const updatedConfig = `${hostMFConfig.slice(0, endOfPropertiesPos)}${isCommaNeeded ? ',' : ''}'${options.appName}',${hostMFConfig.slice(endOfPropertiesPos)}`;
|
|
53
|
+
tree.write(hostMFConfigPath, updatedConfig);
|
|
54
54
|
}
|
|
55
55
|
function addRemoteToDynamicHost(tree, options, pathToMfeManifest) {
|
|
56
56
|
(0, devkit_1.updateJson)(tree, pathToMfeManifest, (manifest) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"add-remote-to-host.js","sourceRoot":"","sources":["../../../../../../../packages/angular/src/generators/setup-mfe/lib/add-remote-to-host.ts"],"names":[],"mappings":";;;AAAA,yCAAsE;AAGtE,yCAA2E;AAC3E,uDAAoD;AAEpD,kEAG4C;AAE5C,iCAAiC;AACjC,uEAAuE;AAEvE,SAAgB,kBAAkB,CAAC,aAAqB;IACtD,MAAM,UAAU,GAAG,aAAa,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IACrD,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC;QAC/B,CAAC,CAAC,UAAU,KAAK,IAAI;YACnB,CAAC,CAAC,KAAK;YACP,CAAC,CAAC,IAAI;QACR,CAAC,CAAC,KAAK,CAAC;AACZ,CAAC;AAPD,gDAOC;AAED,SAAgB,eAAe,CAAC,IAAU,EAAE,OAAe;IACzD,IAAI,OAAO,CAAC,OAAO,KAAK,QAAQ,IAAI,OAAO,CAAC,IAAI,EAAE;QAChD,MAAM,WAAW,GAAG,IAAA,iCAAwB,EAAC,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;QACjE,MAAM,
|
|
1
|
+
{"version":3,"file":"add-remote-to-host.js","sourceRoot":"","sources":["../../../../../../../packages/angular/src/generators/setup-mfe/lib/add-remote-to-host.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,14 +7,14 @@ function fixBootstrap(tree, appRoot, options) {
|
|
|
7
7
|
const bootstrapCode = tree.read(mainFilePath, 'utf-8');
|
|
8
8
|
tree.write((0, devkit_1.joinPathFragments)(appRoot, 'src/bootstrap.ts'), bootstrapCode);
|
|
9
9
|
const bootstrapImportCode = `import('./bootstrap').catch(err => console.error(err))`;
|
|
10
|
-
const
|
|
10
|
+
const fetchMFManifestCode = `import { setRemoteDefinitions } from '@nrwl/angular/mfe';
|
|
11
11
|
|
|
12
|
-
fetch('/assets/
|
|
12
|
+
fetch('/assets/module-federation.manifest.json')
|
|
13
13
|
.then((res) => res.json())
|
|
14
14
|
.then(definitions => setRemoteDefinitions(definitions))
|
|
15
15
|
.then(() => ${bootstrapImportCode})`;
|
|
16
16
|
tree.write(mainFilePath, options.mfeType === 'host' && options.federationType === 'dynamic'
|
|
17
|
-
?
|
|
17
|
+
? fetchMFManifestCode
|
|
18
18
|
: bootstrapImportCode);
|
|
19
19
|
}
|
|
20
20
|
exports.fixBootstrap = fixBootstrap;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fix-bootstrap.js","sourceRoot":"","sources":["../../../../../../../packages/angular/src/generators/setup-mfe/lib/fix-bootstrap.ts"],"names":[],"mappings":";;;AAGA,yCAAiD;AAEjD,SAAgB,YAAY,CAAC,IAAU,EAAE,OAAe,EAAE,OAAe;IACvE,MAAM,YAAY,GAAG,IAAA,0BAAiB,EAAC,OAAO,EAAE,aAAa,CAAC,CAAC;IAC/D,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;IACvD,IAAI,CAAC,KAAK,CAAC,IAAA,0BAAiB,EAAC,OAAO,EAAE,kBAAkB,CAAC,EAAE,aAAa,CAAC,CAAC;IAE1E,MAAM,mBAAmB,GAAG,wDAAwD,CAAC;IAErF,MAAM,
|
|
1
|
+
{"version":3,"file":"fix-bootstrap.js","sourceRoot":"","sources":["../../../../../../../packages/angular/src/generators/setup-mfe/lib/fix-bootstrap.ts"],"names":[],"mappings":";;;AAGA,yCAAiD;AAEjD,SAAgB,YAAY,CAAC,IAAU,EAAE,OAAe,EAAE,OAAe;IACvE,MAAM,YAAY,GAAG,IAAA,0BAAiB,EAAC,OAAO,EAAE,aAAa,CAAC,CAAC;IAC/D,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;IACvD,IAAI,CAAC,KAAK,CAAC,IAAA,0BAAiB,EAAC,OAAO,EAAE,kBAAkB,CAAC,EAAE,aAAa,CAAC,CAAC;IAE1E,MAAM,mBAAmB,GAAG,wDAAwD,CAAC;IAErF,MAAM,mBAAmB,GAAG;;;;;gBAKd,mBAAmB,GAAG,CAAC;IAErC,IAAI,CAAC,KAAK,CACR,YAAY,EACZ,OAAO,CAAC,OAAO,KAAK,MAAM,IAAI,OAAO,CAAC,cAAc,KAAK,SAAS;QAChE,CAAC,CAAC,mBAAmB;QACrB,CAAC,CAAC,mBAAmB,CACxB,CAAC;AACJ,CAAC;AApBD,oCAoBC"}
|
|
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.generateWebpackConfig = void 0;
|
|
4
4
|
const devkit_1 = require("@nrwl/devkit");
|
|
5
5
|
function generateWebpackConfig(host, options, appRoot, remotesWithPorts) {
|
|
6
|
-
if (host.exists(`${appRoot}/
|
|
6
|
+
if (host.exists(`${appRoot}/module-federation.config.js`) ||
|
|
7
7
|
host.exists(`${appRoot}/webpack.config.js`) ||
|
|
8
8
|
host.exists(`${appRoot}/webpack.prod.config.js`)) {
|
|
9
9
|
devkit_1.logger.warn(`NOTE: We encountered an existing webpack config for the app ${options.appName}. We have overwritten this file with the Module Federation Config.\n
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate-config.js","sourceRoot":"","sources":["../../../../../../../packages/angular/src/generators/setup-mfe/lib/generate-config.ts"],"names":[],"mappings":";;;AACA,yCAAwE;AAGxE,SAAgB,qBAAqB,CACnC,IAAU,EACV,OAAe,EACf,OAAe,EACf,gBAAwD;IAExD,IACE,IAAI,CAAC,MAAM,CAAC,GAAG,OAAO,
|
|
1
|
+
{"version":3,"file":"generate-config.js","sourceRoot":"","sources":["../../../../../../../packages/angular/src/generators/setup-mfe/lib/generate-config.ts"],"names":[],"mappings":";;;AACA,yCAAwE;AAGxE,SAAgB,qBAAqB,CACnC,IAAU,EACV,OAAe,EACf,OAAe,EACf,gBAAwD;IAExD,IACE,IAAI,CAAC,MAAM,CAAC,GAAG,OAAO,8BAA8B,CAAC;QACrD,IAAI,CAAC,MAAM,CAAC,GAAG,OAAO,oBAAoB,CAAC;QAC3C,IAAI,CAAC,MAAM,CAAC,GAAG,OAAO,yBAAyB,CAAC,EAChD;QACA,eAAM,CAAC,IAAI,CACT,+DAA+D,OAAO,CAAC,OAAO;qKACiF,CAChK,CAAC;KACH;IAED,IAAA,sBAAa,EACX,IAAI,EACJ,IAAA,0BAAiB,EAAC,SAAS,EAAE,kBAAkB,CAAC,EAChD,OAAO,EACP;QACE,IAAI,EAAE,EAAE;QACR,IAAI,EAAE,OAAO,CAAC,OAAO;QACrB,IAAI,EAAE,OAAO,CAAC,OAAO;QACrB,OAAO,EAAE,gBAAgB,aAAhB,gBAAgB,cAAhB,gBAAgB,GAAI,EAAE;QAC/B,WAAW,EAAE,OAAO;KACrB,CACF,CAAC;AACJ,CAAC;AA7BD,sDA6BC"}
|
|
@@ -6,9 +6,9 @@ function setupHostIfDynamic(tree, options) {
|
|
|
6
6
|
if (options.federationType === 'static' || options.mfeType === 'remote') {
|
|
7
7
|
return;
|
|
8
8
|
}
|
|
9
|
-
const
|
|
10
|
-
if (!tree.exists(
|
|
11
|
-
tree.write(
|
|
9
|
+
const pathToMFManifest = (0, devkit_1.joinPathFragments)((0, devkit_1.readProjectConfiguration)(tree, options.appName).sourceRoot, 'assets/module-federation.manifest.json');
|
|
10
|
+
if (!tree.exists(pathToMFManifest)) {
|
|
11
|
+
tree.write(pathToMFManifest, '{}');
|
|
12
12
|
}
|
|
13
13
|
}
|
|
14
14
|
exports.setupHostIfDynamic = setupHostIfDynamic;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setup-host-if-dynamic.js","sourceRoot":"","sources":["../../../../../../../packages/angular/src/generators/setup-mfe/lib/setup-host-if-dynamic.ts"],"names":[],"mappings":";;;AAGA,yCAA2E;AAE3E,SAAgB,kBAAkB,CAAC,IAAU,EAAE,OAAe;IAC5D,IAAI,OAAO,CAAC,cAAc,KAAK,QAAQ,IAAI,OAAO,CAAC,OAAO,KAAK,QAAQ,EAAE;QACvE,OAAO;KACR;IAED,MAAM,
|
|
1
|
+
{"version":3,"file":"setup-host-if-dynamic.js","sourceRoot":"","sources":["../../../../../../../packages/angular/src/generators/setup-mfe/lib/setup-host-if-dynamic.ts"],"names":[],"mappings":";;;AAGA,yCAA2E;AAE3E,SAAgB,kBAAkB,CAAC,IAAU,EAAE,OAAe;IAC5D,IAAI,OAAO,CAAC,cAAc,KAAK,QAAQ,IAAI,OAAO,CAAC,OAAO,KAAK,QAAQ,EAAE;QACvE,OAAO;KACR;IAED,MAAM,gBAAgB,GAAG,IAAA,0BAAiB,EACxC,IAAA,iCAAwB,EAAC,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC,UAAU,EAC1D,wCAAwC,CACzC,CAAC;IAEF,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,EAAE;QAClC,IAAI,CAAC,KAAK,CAAC,gBAAgB,EAAE,IAAI,CAAC,CAAC;KACpC;AACH,CAAC;AAbD,gDAaC"}
|