@nrwl/react 13.10.0-rc.0 → 13.10.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.
Files changed (71) hide show
  1. package/executors.json +16 -0
  2. package/generators.json +14 -0
  3. package/index.d.ts +1 -0
  4. package/index.js +3 -1
  5. package/index.js.map +1 -1
  6. package/module-federation.d.ts +4 -0
  7. package/module-federation.js +10 -0
  8. package/module-federation.js.map +1 -0
  9. package/package.json +10 -9
  10. package/plugins/webpack.d.ts +2 -1
  11. package/plugins/webpack.js +2 -0
  12. package/plugins/webpack.js.map +1 -1
  13. package/src/executors/mfe-dev-server/compat.d.ts +2 -0
  14. package/src/executors/mfe-dev-server/compat.js +6 -0
  15. package/src/executors/mfe-dev-server/compat.js.map +1 -0
  16. package/src/executors/mfe-dev-server/mfe-dev-server.impl.d.ts +11 -0
  17. package/src/executors/mfe-dev-server/mfe-dev-server.impl.js +86 -0
  18. package/src/executors/mfe-dev-server/mfe-dev-server.impl.js.map +1 -0
  19. package/src/executors/mfe-dev-server/schema.json +82 -0
  20. package/src/generators/application/files/common/src/app/__fileName__.spec.tsx__tmpl__ +1 -1
  21. package/src/generators/application/lib/find-free-port.d.ts +2 -0
  22. package/src/generators/application/lib/find-free-port.js +18 -0
  23. package/src/generators/application/lib/find-free-port.js.map +1 -0
  24. package/src/generators/application/lib/normalize-options.js +3 -1
  25. package/src/generators/application/lib/normalize-options.js.map +1 -1
  26. package/src/generators/application/schema.d.ts +2 -0
  27. package/src/generators/mfe-host/files/common/src/app/__fileName__.tsx__tmpl__ +29 -0
  28. package/src/generators/mfe-host/files/mfe/mfe.config.js__tmpl__ +6 -0
  29. package/src/generators/mfe-host/files/mfe/src/main.ts__tmpl__ +1 -0
  30. package/src/generators/mfe-host/files/mfe/src/remotes.d.ts__tmpl__ +4 -0
  31. package/src/generators/mfe-host/files/mfe/webpack.config.js__tmpl__ +6 -0
  32. package/src/generators/mfe-host/files/mfe/webpack.config.prod.js__tmpl__ +26 -0
  33. package/src/generators/mfe-host/lib/add-mfe-files.d.ts +5 -0
  34. package/src/generators/mfe-host/lib/add-mfe-files.js +17 -0
  35. package/src/generators/mfe-host/lib/add-mfe-files.js.map +1 -0
  36. package/src/generators/mfe-host/lib/update-mfe-e2e-project.d.ts +3 -0
  37. package/src/generators/mfe-host/lib/update-mfe-e2e-project.js +17 -0
  38. package/src/generators/mfe-host/lib/update-mfe-e2e-project.js.map +1 -0
  39. package/src/generators/mfe-host/mfe-host.d.ts +4 -0
  40. package/src/generators/mfe-host/mfe-host.js +46 -0
  41. package/src/generators/mfe-host/mfe-host.js.map +1 -0
  42. package/src/generators/mfe-host/schema.d.ts +28 -0
  43. package/src/generators/mfe-host/schema.json +155 -0
  44. package/src/generators/mfe-remote/files/mfe/mfe.config.js__tmpl__ +6 -0
  45. package/src/generators/mfe-remote/files/mfe/src/main.ts__tmpl__ +1 -0
  46. package/src/generators/mfe-remote/files/mfe/src/remote-entry.ts__tmpl__ +1 -0
  47. package/src/generators/mfe-remote/files/mfe/webpack.config.js__tmpl__ +6 -0
  48. package/src/generators/mfe-remote/files/mfe/webpack.config.prod.js__tmpl__ +1 -0
  49. package/src/generators/mfe-remote/lib/update-host-with-remote.d.ts +2 -0
  50. package/src/generators/mfe-remote/lib/update-host-with-remote.js +49 -0
  51. package/src/generators/mfe-remote/lib/update-host-with-remote.js.map +1 -0
  52. package/src/generators/mfe-remote/mfe-remote.d.ts +6 -0
  53. package/src/generators/mfe-remote/mfe-remote.js +38 -0
  54. package/src/generators/mfe-remote/mfe-remote.js.map +1 -0
  55. package/src/generators/mfe-remote/schema.d.ts +26 -0
  56. package/src/generators/mfe-remote/schema.json +159 -0
  57. package/src/generators/storybook-configuration/schema.d.ts +1 -0
  58. package/src/generators/storybook-configuration/schema.json +4 -0
  59. package/src/mfe/mfe-ast-utils.d.ts +8 -0
  60. package/src/mfe/mfe-ast-utils.js +96 -0
  61. package/src/mfe/mfe-ast-utils.js.map +1 -0
  62. package/src/mfe/webpack-utils.d.ts +17 -0
  63. package/src/mfe/webpack-utils.js +66 -0
  64. package/src/mfe/webpack-utils.js.map +1 -0
  65. package/src/mfe/with-module-federation.d.ts +14 -0
  66. package/src/mfe/with-module-federation.js +167 -0
  67. package/src/mfe/with-module-federation.js.map +1 -0
  68. package/src/rules/update-mfe-project.d.ts +6 -0
  69. package/src/rules/update-mfe-project.js +14 -0
  70. package/src/rules/update-mfe-project.js.map +1 -0
  71. package/src/utils/versions.js +1 -1
@@ -0,0 +1,96 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.addRemoteRoute = exports.addRemoteDefinition = exports.addRemoteToMfeConfig = void 0;
4
+ const ts = require("typescript");
5
+ const devkit_1 = require("@nrwl/devkit");
6
+ const find_nodes_1 = require("@nrwl/workspace/src/utilities/typescript/find-nodes");
7
+ const ast_utils_1 = require("../utils/ast-utils");
8
+ function addRemoteToMfeConfig(source, app) {
9
+ const assignments = (0, find_nodes_1.findNodes)(source, ts.SyntaxKind.PropertyAssignment);
10
+ const remotesAssignment = assignments.find((s) => s.name.getText() === 'remotes');
11
+ if (remotesAssignment) {
12
+ const arrayExpression = remotesAssignment.initializer;
13
+ return arrayExpression.elements
14
+ ? [
15
+ {
16
+ type: devkit_1.ChangeType.Insert,
17
+ index: arrayExpression.elements[arrayExpression.elements.length - 1].end,
18
+ text: `,`,
19
+ },
20
+ {
21
+ type: devkit_1.ChangeType.Insert,
22
+ index: remotesAssignment.end - 1,
23
+ text: `'${app}',\n`,
24
+ },
25
+ ]
26
+ : [];
27
+ }
28
+ const binaryExpressions = (0, find_nodes_1.findNodes)(source, ts.SyntaxKind.BinaryExpression);
29
+ const exportExpression = binaryExpressions.find((b) => {
30
+ if (b.left.kind === ts.SyntaxKind.PropertyAccessExpression) {
31
+ const pae = b.left;
32
+ return (pae.expression.getText() === 'module' &&
33
+ pae.name.getText() === 'exports');
34
+ }
35
+ });
36
+ if ((exportExpression === null || exportExpression === void 0 ? void 0 : exportExpression.right.kind) === ts.SyntaxKind.ObjectLiteralExpression) {
37
+ const ole = exportExpression.right;
38
+ return [
39
+ {
40
+ type: devkit_1.ChangeType.Insert,
41
+ index: ole.end - 1,
42
+ text: `remotes: ['${app}']\n`,
43
+ },
44
+ ];
45
+ }
46
+ return [];
47
+ }
48
+ exports.addRemoteToMfeConfig = addRemoteToMfeConfig;
49
+ function addRemoteDefinition(source, app) {
50
+ return [
51
+ {
52
+ type: devkit_1.ChangeType.Insert,
53
+ index: source.end,
54
+ text: `\ndeclare module '${app}/Module';`,
55
+ },
56
+ ];
57
+ }
58
+ exports.addRemoteDefinition = addRemoteDefinition;
59
+ function addRemoteRoute(source, names) {
60
+ const routes = (0, ast_utils_1.findElements)(source, 'Route');
61
+ const links = (0, ast_utils_1.findElements)(source, 'Link');
62
+ if (routes.length === 0) {
63
+ return [];
64
+ }
65
+ else {
66
+ const changes = [];
67
+ const firstRoute = routes[0];
68
+ const firstLink = links[0];
69
+ changes.push(...(0, ast_utils_1.addImport)(source, `const ${names.className} = React.lazy(() => import('${names.fileName}/Module'));`));
70
+ changes.push({
71
+ type: devkit_1.ChangeType.Insert,
72
+ index: firstRoute.end,
73
+ text: `\n<Route path="/${names.fileName}" render={() => <${names.className} />} />`,
74
+ });
75
+ if (firstLink) {
76
+ const parentLi = (0, ast_utils_1.findClosestOpening)('li', firstLink);
77
+ if (parentLi) {
78
+ changes.push({
79
+ type: devkit_1.ChangeType.Insert,
80
+ index: parentLi.end,
81
+ text: `\n<li><Link to="/${names.fileName}">${names.className}</Link></li>`,
82
+ });
83
+ }
84
+ else {
85
+ changes.push({
86
+ type: devkit_1.ChangeType.Insert,
87
+ index: firstLink.parent.end,
88
+ text: `\n<Link to="/${names.fileName}">${names.className}</Link>`,
89
+ });
90
+ }
91
+ }
92
+ return changes;
93
+ }
94
+ }
95
+ exports.addRemoteRoute = addRemoteRoute;
96
+ //# sourceMappingURL=mfe-ast-utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mfe-ast-utils.js","sourceRoot":"","sources":["../../../../../packages/react/src/mfe/mfe-ast-utils.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ import { NormalModuleReplacementPlugin } from 'webpack';
2
+ export interface SharedLibraryConfig {
3
+ singleton: boolean;
4
+ strictVersion: boolean;
5
+ requiredVersion: string;
6
+ eager: boolean;
7
+ }
8
+ export declare function shareWorkspaceLibraries(libraries: string[], tsConfigPath?: string): {
9
+ getAliases: () => any[];
10
+ getLibraries: () => void;
11
+ getReplacementPlugin: () => NormalModuleReplacementPlugin;
12
+ } | {
13
+ getAliases: () => {};
14
+ getLibraries: (eager?: boolean) => Record<string, SharedLibraryConfig>;
15
+ getReplacementPlugin: () => NormalModuleReplacementPlugin;
16
+ };
17
+ export declare function sharePackages(packages: string[]): Record<string, SharedLibraryConfig>;
@@ -0,0 +1,66 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.sharePackages = exports.shareWorkspaceLibraries = void 0;
4
+ const fs_1 = require("fs");
5
+ const webpack_1 = require("webpack");
6
+ const devkit_1 = require("@nrwl/devkit");
7
+ const path_1 = require("path");
8
+ const typescript_1 = require("@nrwl/workspace/src/utilities/typescript");
9
+ function shareWorkspaceLibraries(libraries, tsConfigPath) {
10
+ var _a, _b;
11
+ if (tsConfigPath === void 0) { tsConfigPath = (_a = process.env.NX_TSCONFIG_PATH) !== null && _a !== void 0 ? _a : (0, typescript_1.getRootTsConfigPath)(); }
12
+ if (!(0, fs_1.existsSync)(tsConfigPath)) {
13
+ throw new Error(`NX MFE: TsConfig Path for workspace libraries does not exist! (${tsConfigPath})`);
14
+ }
15
+ const tsConfig = (0, typescript_1.readTsConfig)(tsConfigPath);
16
+ const tsconfigPathAliases = (_b = tsConfig.options) === null || _b === void 0 ? void 0 : _b.paths;
17
+ if (!tsconfigPathAliases) {
18
+ return {
19
+ getAliases: () => [],
20
+ getLibraries: () => { },
21
+ getReplacementPlugin: () => new webpack_1.NormalModuleReplacementPlugin(/./, () => { }),
22
+ };
23
+ }
24
+ const pathMappings = [];
25
+ for (const [key, paths] of Object.entries(tsconfigPathAliases)) {
26
+ if (libraries && libraries.includes(key)) {
27
+ const pathToLib = (0, devkit_1.normalizePath)((0, devkit_1.joinPathFragments)(devkit_1.workspaceRoot, paths[0]));
28
+ pathMappings.push({
29
+ name: key,
30
+ path: pathToLib,
31
+ });
32
+ }
33
+ }
34
+ return {
35
+ getAliases: () => pathMappings.reduce((aliases, library) => (Object.assign(Object.assign({}, aliases), { [library.name]: library.path })), {}),
36
+ getLibraries: (eager) => pathMappings.reduce((libraries, library) => (Object.assign(Object.assign({}, libraries), { [library.name]: { requiredVersion: false, eager } })), {}),
37
+ getReplacementPlugin: () => new webpack_1.NormalModuleReplacementPlugin(/./, (req) => {
38
+ if (!req.request.startsWith('.')) {
39
+ return;
40
+ }
41
+ const from = req.context;
42
+ const to = (0, devkit_1.normalizePath)((0, devkit_1.joinPathFragments)(req.context, req.request));
43
+ for (const library of pathMappings) {
44
+ const libFolder = (0, devkit_1.normalizePath)((0, path_1.dirname)(library.path));
45
+ if (!from.startsWith(libFolder) && to.startsWith(libFolder)) {
46
+ req.request = library.name;
47
+ }
48
+ }
49
+ }),
50
+ };
51
+ }
52
+ exports.shareWorkspaceLibraries = shareWorkspaceLibraries;
53
+ function sharePackages(packages) {
54
+ const pkgJsonPath = (0, devkit_1.joinPathFragments)(devkit_1.workspaceRoot, 'package.json');
55
+ if (!(0, fs_1.existsSync)(pkgJsonPath)) {
56
+ throw new Error('NX MFE: Could not find root package.json to determine dependency versions.');
57
+ }
58
+ const pkgJson = JSON.parse((0, fs_1.readFileSync)(pkgJsonPath, 'utf-8'));
59
+ return packages.reduce((shared, pkgName) => (Object.assign(Object.assign({}, shared), { [pkgName]: {
60
+ singleton: true,
61
+ strictVersion: true,
62
+ requiredVersion: pkgJson.dependencies[pkgName],
63
+ } })), {});
64
+ }
65
+ exports.sharePackages = sharePackages;
66
+ //# sourceMappingURL=webpack-utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"webpack-utils.js","sourceRoot":"","sources":["../../../../../packages/react/src/mfe/webpack-utils.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ import { SharedLibraryConfig } from './webpack-utils';
2
+ export declare type MFELibrary = {
3
+ type: string;
4
+ name: string;
5
+ };
6
+ export declare type MFERemotes = string[] | [remoteName: string, remoteUrl: string][];
7
+ export interface MFEConfig {
8
+ name: string;
9
+ remotes?: string[];
10
+ library?: MFELibrary;
11
+ exposes?: Record<string, string>;
12
+ shared?: (libraryName: string, library: SharedLibraryConfig) => undefined | false | SharedLibraryConfig;
13
+ }
14
+ export declare function withModuleFederation(options: MFEConfig): Promise<(config: any) => any>;
@@ -0,0 +1,167 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.withModuleFederation = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const webpack_utils_1 = require("./webpack-utils");
6
+ const devkit_1 = require("@nrwl/devkit");
7
+ const typescript_1 = require("@nrwl/workspace/src/utilities/typescript");
8
+ const file_utils_1 = require("nx/src/project-graph/file-utils");
9
+ const ModuleFederationPlugin = require("webpack/lib/container/ModuleFederationPlugin");
10
+ function recursivelyResolveWorkspaceDependents(projectGraph, target, seenTargets = new Set()) {
11
+ var _a;
12
+ if (seenTargets.has(target)) {
13
+ return [];
14
+ }
15
+ let dependencies = [target];
16
+ seenTargets.add(target);
17
+ const workspaceDependencies = ((_a = projectGraph.dependencies[target]) !== null && _a !== void 0 ? _a : []).filter((dep) => !dep.target.startsWith('npm:'));
18
+ if (workspaceDependencies.length > 0) {
19
+ for (const dep of workspaceDependencies) {
20
+ dependencies = [
21
+ ...dependencies,
22
+ ...recursivelyResolveWorkspaceDependents(projectGraph, dep.target, seenTargets),
23
+ ];
24
+ }
25
+ }
26
+ return dependencies;
27
+ }
28
+ function mapWorkspaceLibrariesToTsConfigImport(workspaceLibraries) {
29
+ var _a, _b;
30
+ const { projects } = new devkit_1.Workspaces(devkit_1.workspaceRoot).readWorkspaceConfiguration();
31
+ const tsConfigPath = (_a = process.env.NX_TSCONFIG_PATH) !== null && _a !== void 0 ? _a : (0, typescript_1.getRootTsConfigPath)();
32
+ const tsConfig = (0, typescript_1.readTsConfig)(tsConfigPath);
33
+ const tsconfigPathAliases = (_b = tsConfig.options) === null || _b === void 0 ? void 0 : _b.paths;
34
+ if (!tsconfigPathAliases) {
35
+ return workspaceLibraries;
36
+ }
37
+ const mappedLibraries = [];
38
+ for (const lib of workspaceLibraries) {
39
+ const sourceRoot = projects[lib].sourceRoot;
40
+ let found = false;
41
+ for (const [key, value] of Object.entries(tsconfigPathAliases)) {
42
+ if (value.find((p) => p.startsWith(sourceRoot))) {
43
+ mappedLibraries.push(key);
44
+ found = true;
45
+ break;
46
+ }
47
+ }
48
+ if (!found) {
49
+ mappedLibraries.push(lib);
50
+ }
51
+ }
52
+ return mappedLibraries;
53
+ }
54
+ function getDependentPackagesForProject(name) {
55
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
56
+ let projectGraph;
57
+ try {
58
+ projectGraph = (0, devkit_1.readCachedProjectGraph)();
59
+ }
60
+ catch (e) {
61
+ projectGraph = yield (0, devkit_1.createProjectGraphAsync)();
62
+ }
63
+ const deps = projectGraph.dependencies[name].reduce((dependencies, dependency) => {
64
+ const workspaceLibraries = new Set(dependencies.workspaceLibraries);
65
+ const npmPackages = new Set(dependencies.npmPackages);
66
+ if (dependency.target.startsWith('npm:')) {
67
+ npmPackages.add(dependency.target.replace('npm:', ''));
68
+ }
69
+ else {
70
+ workspaceLibraries.add(dependency.target);
71
+ }
72
+ return {
73
+ workspaceLibraries: [...workspaceLibraries],
74
+ npmPackages: [...npmPackages],
75
+ };
76
+ }, { workspaceLibraries: [], npmPackages: [] });
77
+ const seenWorkspaceLibraries = new Set();
78
+ deps.workspaceLibraries = deps.workspaceLibraries.reduce((workspaceLibraryDeps, workspaceLibrary) => [
79
+ ...workspaceLibraryDeps,
80
+ ...recursivelyResolveWorkspaceDependents(projectGraph, workspaceLibrary, seenWorkspaceLibraries),
81
+ ], []);
82
+ deps.workspaceLibraries = mapWorkspaceLibrariesToTsConfigImport(deps.workspaceLibraries);
83
+ return deps;
84
+ });
85
+ }
86
+ function determineRemoteUrl(remote) {
87
+ var _a, _b, _c, _d, _e, _f;
88
+ const workspace = (0, file_utils_1.readWorkspaceJson)();
89
+ const serveTarget = (_b = (_a = workspace.projects[remote]) === null || _a === void 0 ? void 0 : _a.targets) === null || _b === void 0 ? void 0 : _b.serve;
90
+ if (!serveTarget) {
91
+ throw new Error(`Cannot automatically determine URL of remote (${remote}). Looked for property "host" in the project's "serve" target.\n
92
+ You can also use the tuple syntax in your webpack config to configure your remotes. e.g. \`remotes: [['remote1', '//localhost:4201']]\``);
93
+ }
94
+ const host = (_d = (_c = serveTarget.options) === null || _c === void 0 ? void 0 : _c.host) !== null && _d !== void 0 ? _d : '//localhost';
95
+ const port = (_f = (_e = serveTarget.options) === null || _e === void 0 ? void 0 : _e.port) !== null && _f !== void 0 ? _f : 4201;
96
+ return `${remote}@${host.endsWith('/') ? host.slice(0, -1) : host}:${port}/remoteEntry.js`;
97
+ }
98
+ function mapRemotes(remotes) {
99
+ const mappedRemotes = {};
100
+ for (const remote of remotes) {
101
+ if (Array.isArray(remote)) {
102
+ let [remoteName, remoteLocation] = remote;
103
+ if (!remoteLocation.includes('@')) {
104
+ remoteLocation = `${remoteName}@${remoteLocation}`;
105
+ }
106
+ if (!remoteLocation.match(/remoteEntry\.(js|mjs)$/)) {
107
+ remoteLocation = `${remoteLocation.endsWith('/')
108
+ ? remoteLocation.slice(0, -1)
109
+ : remoteLocation}/remoteEntry.js`;
110
+ }
111
+ mappedRemotes[remoteName] = remoteLocation;
112
+ }
113
+ else if (typeof remote === 'string') {
114
+ mappedRemotes[remote] = determineRemoteUrl(remote);
115
+ }
116
+ }
117
+ return mappedRemotes;
118
+ }
119
+ function withModuleFederation(options) {
120
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
121
+ const reactWebpackConfig = require('../../plugins/webpack');
122
+ const ws = (0, file_utils_1.readWorkspaceJson)();
123
+ const project = ws.projects[options.name];
124
+ if (!project) {
125
+ throw Error(`Cannot find project "${options.name}". Check that the name is correct in mfe.config.js`);
126
+ }
127
+ const dependencies = yield getDependentPackagesForProject(options.name);
128
+ const sharedLibraries = (0, webpack_utils_1.shareWorkspaceLibraries)(dependencies.workspaceLibraries);
129
+ const npmPackages = (0, webpack_utils_1.sharePackages)(dependencies.npmPackages);
130
+ const sharedDependencies = Object.assign(Object.assign({}, sharedLibraries.getLibraries()), npmPackages);
131
+ if (options.shared) {
132
+ for (const [libraryName, library] of Object.entries(sharedDependencies)) {
133
+ const mappedDependency = options.shared(libraryName, library);
134
+ if (mappedDependency === false) {
135
+ delete sharedDependencies[libraryName];
136
+ continue;
137
+ }
138
+ else if (!mappedDependency) {
139
+ continue;
140
+ }
141
+ sharedDependencies[libraryName] = mappedDependency;
142
+ }
143
+ }
144
+ return (config) => {
145
+ config = reactWebpackConfig(config);
146
+ config.output.uniqueName = options.name;
147
+ config.output.publicPath = 'auto';
148
+ config.optimization = {
149
+ runtimeChunk: false,
150
+ minimize: false,
151
+ };
152
+ const mappedRemotes = !options.remotes || options.remotes.length === 0
153
+ ? {}
154
+ : mapRemotes(options.remotes);
155
+ config.plugins.push(new ModuleFederationPlugin({
156
+ name: options.name,
157
+ filename: 'remoteEntry.js',
158
+ exposes: options.exposes,
159
+ remotes: mappedRemotes,
160
+ shared: Object.assign({}, sharedDependencies),
161
+ }), sharedLibraries.getReplacementPlugin());
162
+ return config;
163
+ };
164
+ });
165
+ }
166
+ exports.withModuleFederation = withModuleFederation;
167
+ //# sourceMappingURL=with-module-federation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"with-module-federation.js","sourceRoot":"","sources":["../../../../../packages/react/src/mfe/with-module-federation.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import { Tree } from 'nx/src/shared/tree';
2
+ export declare function updateMfeProject(host: Tree, options: {
3
+ name: string;
4
+ appProjectRoot: string;
5
+ devServerPort?: number;
6
+ }): void;
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.updateMfeProject = void 0;
4
+ const devkit_1 = require("@nrwl/devkit");
5
+ function updateMfeProject(host, options) {
6
+ let projectConfig = (0, devkit_1.readProjectConfiguration)(host, options.name);
7
+ projectConfig.targets.build.options = Object.assign(Object.assign({}, projectConfig.targets.build.options), { main: `${options.appProjectRoot}/src/main.ts`, webpackConfig: `${options.appProjectRoot}/webpack.config.js` });
8
+ projectConfig.targets.build.configurations.production = Object.assign(Object.assign({}, projectConfig.targets.build.configurations.production), { webpackConfig: `${options.appProjectRoot}/webpack.config.prod.js` });
9
+ projectConfig.targets.serve.executor = '@nrwl/react:mfe-dev-server';
10
+ projectConfig.targets.serve.options.port = options.devServerPort;
11
+ (0, devkit_1.updateProjectConfiguration)(host, options.name, projectConfig);
12
+ }
13
+ exports.updateMfeProject = updateMfeProject;
14
+ //# sourceMappingURL=update-mfe-project.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update-mfe-project.js","sourceRoot":"","sources":["../../../../../packages/react/src/rules/update-mfe-project.ts"],"names":[],"mappings":";;;AACA,yCAGsB;AAEtB,SAAgB,gBAAgB,CAC9B,IAAU,EACV,OAAyE;IAEzE,IAAI,aAAa,GAAG,IAAA,iCAAwB,EAAC,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IACjE,aAAa,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,mCAC9B,aAAa,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,KACtC,IAAI,EAAE,GAAG,OAAO,CAAC,cAAc,cAAc,EAC7C,aAAa,EAAE,GAAG,OAAO,CAAC,cAAc,oBAAoB,GAC7D,CAAC;IACF,aAAa,CAAC,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC,UAAU,mCAChD,aAAa,CAAC,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC,UAAU,KACxD,aAAa,EAAE,GAAG,OAAO,CAAC,cAAc,yBAAyB,GAClE,CAAC;IACF,aAAa,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,GAAG,4BAA4B,CAAC;IACpE,aAAa,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,GAAG,OAAO,CAAC,aAAa,CAAC;IACjE,IAAA,mCAA0B,EAAC,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;AAChE,CAAC;AAjBD,4CAiBC"}
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.babelPluginStyledComponentsVersion = exports.eslintPluginReactHooksVersion = exports.eslintPluginReactVersion = exports.eslintPluginJsxA11yVersion = exports.eslintPluginImportVersion = exports.reactTestRendererVersion = exports.reactReduxVersion = exports.reduxjsToolkitVersion = exports.testingLibraryReactHooksVersion = exports.testingLibraryReactVersion = exports.typesReactRouterDomVersion = exports.reactRouterDomVersion = exports.styledJsxVersion = exports.emotionBabelPlugin = exports.emotionReactVersion = exports.emotionStyledVersion = exports.typesStyledComponentsVersion = exports.styledComponentsVersion = exports.typesReactIsVersion = exports.typesReactDomVersion = exports.typesReactVersion = exports.reactIsVersion = exports.reactDomVersion = exports.reactVersion = exports.nxVersion = void 0;
4
- exports.nxVersion = '13.10.0-rc.0';
4
+ exports.nxVersion = '13.10.0';
5
5
  exports.reactVersion = '18.0.0';
6
6
  exports.reactDomVersion = '18.0.0';
7
7
  exports.reactIsVersion = '18.0.0';