@rxap/plugin-angular 20.0.1-dev.1 → 20.0.1-dev.11
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/.eslintignore +6 -0
- package/.eslintrc.json +44 -0
- package/CHANGELOG.md +43 -0
- package/LICENSE +621 -0
- package/README.md.handlebars +115 -0
- package/jest.config.ts +11 -0
- package/package.json +11 -24
- package/project.json +68 -0
- package/schematics.yaml +6 -0
- package/src/application.ts +124 -0
- package/src/executors/check-ng-package/executor.ts +33 -0
- package/src/executors/config/executor.ts +74 -0
- package/src/executors/i18n/executor.ts +198 -0
- package/src/executors/tailwind/executor.ts +34 -0
- package/src/generators/convert-to-buildable-library/generator.ts +110 -0
- package/src/generators/fix-schematic/generator.ts +103 -0
- package/src/generators/fix-schematic/index.ts +5 -0
- package/src/generators/init/coerce-nx-json.ts +72 -0
- package/src/generators/init/generator.ts +28 -0
- package/src/generators/init/index.ts +5 -0
- package/src/generators/init/init-workspace.ts +84 -0
- package/src/generators/init-application/assert-main-statements.ts +74 -0
- package/src/generators/init-application/cleanup.ts +127 -0
- package/src/generators/init-application/coerce-app-config.ts +147 -0
- package/src/generators/init-application/coerce-environment-files.ts +105 -0
- package/src/generators/init-application/coerce-localazy-config-file.ts +26 -0
- package/src/generators/init-application/coerce-project.ts +128 -0
- package/src/generators/init-application/generate-authentication.ts +122 -0
- package/src/generators/init-application/generate-monolithic.spec.ts +45 -0
- package/src/generators/init-application/generate-monolithic.ts +57 -0
- package/src/generators/init-application/generator.ts +356 -0
- package/src/generators/init-application/index.ts +5 -0
- package/src/generators/init-application/link-mfe-remote-with-host.ts +60 -0
- package/src/generators/init-application/project-i18n-configuration.ts +4 -0
- package/src/generators/init-application/update-git-ignore.ts +22 -0
- package/src/generators/init-application/update-main-file.ts +118 -0
- package/src/generators/init-application/update-project-targets.ts +229 -0
- package/src/generators/init-application/update-tags.ts +30 -0
- package/src/generators/init-application/update-target-defaults.ts +43 -0
- package/src/generators/init-application/update-ts-config.ts +31 -0
- package/src/generators/init-component/generator.ts +147 -0
- package/src/generators/init-component/index.ts +5 -0
- package/src/generators/init-feature/generator.ts +77 -0
- package/src/generators/init-feature/index.ts +5 -0
- package/src/generators/init-feature-library/generator.ts +82 -0
- package/src/generators/init-feature-library/index.ts +5 -0
- package/src/generators/init-feature-library/init-project.ts +53 -0
- package/src/generators/init-feature-library/init-workspace.ts +10 -0
- package/src/generators/init-library/check-if-secondary-entrypoint-include-in-the-ts-config.ts +46 -0
- package/src/generators/init-library/cleanup.ts +22 -0
- package/src/generators/init-library/coerce-projects.ts +118 -0
- package/src/generators/init-library/coerce-tailwind-theme-scss.ts +27 -0
- package/src/generators/init-library/extend-angular-specific-eslint.ts +37 -0
- package/src/generators/init-library/generator.ts +87 -0
- package/src/generators/init-library/has-index-scss.ts +14 -0
- package/src/generators/init-library/has-tailwind-config.ts +9 -0
- package/src/generators/init-library/index.ts +5 -0
- package/src/generators/init-library/init-project.ts +46 -0
- package/src/generators/init-library/init-workspace.ts +26 -0
- package/src/generators/init-library/is-ng-packagr-project.ts +9 -0
- package/src/generators/init-library/ng-package-json.ts +23 -0
- package/src/generators/init-library/set-general-target-defaults.ts +36 -0
- package/src/generators/init-library/update-package-json.ts +26 -0
- package/src/generators/init-library/update-project-ng-package-configuration.ts +51 -0
- package/src/generators/init-library/update-ts-config.ts +24 -0
- package/src/generators/schematic/generator.ts +179 -0
- package/src/generators/schematic/index.ts +5 -0
- package/src/i18n.ts +130 -0
- package/src/lib/angular-version.ts +1 -0
- package/src/lib/coerce-cypress-component-testing.ts +113 -0
- package/src/lib/coerce-test-setup.ts +60 -0
- package/src/library.ts +153 -0
- package/src/migrations/update-19-0-0/add-m2-prefix-to-material-scss-functions.ts +32 -0
- package/src/migrations/update-19-0-0/migration.ts +283 -0
- package/src/test-setup.ts +24 -0
- package/tsconfig.json +20 -0
- package/tsconfig.lib.json +10 -0
- package/tsconfig.spec.json +15 -0
- package/tsconfig.typedoc.json +5 -0
- package/src/application.d.ts +0 -6
- package/src/application.js +0 -77
- package/src/application.js.map +0 -1
- package/src/executors/check-ng-package/executor.d.ts +0 -5
- package/src/executors/check-ng-package/executor.js +0 -30
- package/src/executors/check-ng-package/executor.js.map +0 -1
- package/src/executors/config/executor.d.ts +0 -10
- package/src/executors/config/executor.js +0 -65
- package/src/executors/config/executor.js.map +0 -1
- package/src/executors/i18n/executor.d.ts +0 -9
- package/src/executors/i18n/executor.js +0 -158
- package/src/executors/i18n/executor.js.map +0 -1
- package/src/executors/tailwind/executor.d.ts +0 -5
- package/src/executors/tailwind/executor.js +0 -31
- package/src/executors/tailwind/executor.js.map +0 -1
- package/src/generators/convert-to-buildable-library/generator.d.ts +0 -4
- package/src/generators/convert-to-buildable-library/generator.js +0 -88
- package/src/generators/convert-to-buildable-library/generator.js.map +0 -1
- package/src/generators/fix-schematic/generator.d.ts +0 -4
- package/src/generators/fix-schematic/generator.js +0 -72
- package/src/generators/fix-schematic/generator.js.map +0 -1
- package/src/generators/fix-schematic/index.d.ts +0 -2
- package/src/generators/fix-schematic/index.js +0 -7
- package/src/generators/fix-schematic/index.js.map +0 -1
- package/src/generators/init/coerce-nx-json.d.ts +0 -3
- package/src/generators/init/coerce-nx-json.js +0 -74
- package/src/generators/init/coerce-nx-json.js.map +0 -1
- package/src/generators/init/generator.d.ts +0 -4
- package/src/generators/init/generator.js +0 -19
- package/src/generators/init/generator.js.map +0 -1
- package/src/generators/init/index.d.ts +0 -2
- package/src/generators/init/index.js +0 -7
- package/src/generators/init/index.js.map +0 -1
- package/src/generators/init/init-workspace.d.ts +0 -3
- package/src/generators/init/init-workspace.js +0 -73
- package/src/generators/init/init-workspace.js.map +0 -1
- package/src/generators/init-application/assert-main-statements.d.ts +0 -4
- package/src/generators/init-application/assert-main-statements.js +0 -76
- package/src/generators/init-application/assert-main-statements.js.map +0 -1
- package/src/generators/init-application/cleanup.d.ts +0 -3
- package/src/generators/init-application/cleanup.js +0 -108
- package/src/generators/init-application/cleanup.js.map +0 -1
- package/src/generators/init-application/coerce-app-config.d.ts +0 -3
- package/src/generators/init-application/coerce-app-config.js +0 -143
- package/src/generators/init-application/coerce-app-config.js.map +0 -1
- package/src/generators/init-application/coerce-environment-files.d.ts +0 -5
- package/src/generators/init-application/coerce-environment-files.js +0 -75
- package/src/generators/init-application/coerce-environment-files.js.map +0 -1
- package/src/generators/init-application/coerce-localazy-config-file.d.ts +0 -2
- package/src/generators/init-application/coerce-localazy-config-file.js +0 -25
- package/src/generators/init-application/coerce-localazy-config-file.js.map +0 -1
- package/src/generators/init-application/coerce-project.d.ts +0 -4
- package/src/generators/init-application/coerce-project.js +0 -56
- package/src/generators/init-application/coerce-project.js.map +0 -1
- package/src/generators/init-application/generate-authentication.d.ts +0 -3
- package/src/generators/init-application/generate-authentication.js +0 -97
- package/src/generators/init-application/generate-authentication.js.map +0 -1
- package/src/generators/init-application/generate-monolithic.d.ts +0 -3
- package/src/generators/init-application/generate-monolithic.js +0 -45
- package/src/generators/init-application/generate-monolithic.js.map +0 -1
- package/src/generators/init-application/generator.d.ts +0 -4
- package/src/generators/init-application/generator.js +0 -257
- package/src/generators/init-application/generator.js.map +0 -1
- package/src/generators/init-application/index.d.ts +0 -2
- package/src/generators/init-application/index.js +0 -7
- package/src/generators/init-application/index.js.map +0 -1
- package/src/generators/init-application/link-mfe-remote-with-host.d.ts +0 -3
- package/src/generators/init-application/link-mfe-remote-with-host.js +0 -54
- package/src/generators/init-application/link-mfe-remote-with-host.js.map +0 -1
- package/src/generators/init-application/project-i18n-configuration.d.ts +0 -7
- package/src/generators/init-application/project-i18n-configuration.js +0 -3
- package/src/generators/init-application/project-i18n-configuration.js.map +0 -1
- package/src/generators/init-application/update-git-ignore.d.ts +0 -3
- package/src/generators/init-application/update-git-ignore.js +0 -17
- package/src/generators/init-application/update-git-ignore.js.map +0 -1
- package/src/generators/init-application/update-main-file.d.ts +0 -3
- package/src/generators/init-application/update-main-file.js +0 -106
- package/src/generators/init-application/update-main-file.js.map +0 -1
- package/src/generators/init-application/update-project-targets.d.ts +0 -6
- package/src/generators/init-application/update-project-targets.js +0 -210
- package/src/generators/init-application/update-project-targets.js.map +0 -1
- package/src/generators/init-application/update-tags.d.ts +0 -3
- package/src/generators/init-application/update-tags.js +0 -25
- package/src/generators/init-application/update-tags.js.map +0 -1
- package/src/generators/init-application/update-target-defaults.d.ts +0 -3
- package/src/generators/init-application/update-target-defaults.js +0 -30
- package/src/generators/init-application/update-target-defaults.js.map +0 -1
- package/src/generators/init-application/update-ts-config.d.ts +0 -2
- package/src/generators/init-application/update-ts-config.js +0 -30
- package/src/generators/init-application/update-ts-config.js.map +0 -1
- package/src/generators/init-component/generator.d.ts +0 -5
- package/src/generators/init-component/generator.js +0 -106
- package/src/generators/init-component/generator.js.map +0 -1
- package/src/generators/init-component/index.d.ts +0 -2
- package/src/generators/init-component/index.js +0 -7
- package/src/generators/init-component/index.js.map +0 -1
- package/src/generators/init-feature/generator.d.ts +0 -4
- package/src/generators/init-feature/generator.js +0 -53
- package/src/generators/init-feature/generator.js.map +0 -1
- package/src/generators/init-feature/index.d.ts +0 -2
- package/src/generators/init-feature/index.js +0 -7
- package/src/generators/init-feature/index.js.map +0 -1
- package/src/generators/init-feature-library/generator.d.ts +0 -4
- package/src/generators/init-feature-library/generator.js +0 -51
- package/src/generators/init-feature-library/generator.js.map +0 -1
- package/src/generators/init-feature-library/index.d.ts +0 -2
- package/src/generators/init-feature-library/index.js +0 -7
- package/src/generators/init-feature-library/index.js.map +0 -1
- package/src/generators/init-feature-library/init-project.d.ts +0 -3
- package/src/generators/init-feature-library/init-project.js +0 -41
- package/src/generators/init-feature-library/init-project.js.map +0 -1
- package/src/generators/init-feature-library/init-workspace.d.ts +0 -3
- package/src/generators/init-feature-library/init-workspace.js +0 -12
- package/src/generators/init-feature-library/init-workspace.js.map +0 -1
- package/src/generators/init-library/check-if-secondary-entrypoint-include-in-the-ts-config.d.ts +0 -2
- package/src/generators/init-library/check-if-secondary-entrypoint-include-in-the-ts-config.js +0 -39
- package/src/generators/init-library/check-if-secondary-entrypoint-include-in-the-ts-config.js.map +0 -1
- package/src/generators/init-library/cleanup.d.ts +0 -2
- package/src/generators/init-library/cleanup.js +0 -16
- package/src/generators/init-library/cleanup.js.map +0 -1
- package/src/generators/init-library/coerce-projects.d.ts +0 -3
- package/src/generators/init-library/coerce-projects.js +0 -92
- package/src/generators/init-library/coerce-projects.js.map +0 -1
- package/src/generators/init-library/coerce-tailwind-theme-scss.d.ts +0 -2
- package/src/generators/init-library/coerce-tailwind-theme-scss.js +0 -22
- package/src/generators/init-library/coerce-tailwind-theme-scss.js.map +0 -1
- package/src/generators/init-library/extend-angular-specific-eslint.d.ts +0 -2
- package/src/generators/init-library/extend-angular-specific-eslint.js +0 -25
- package/src/generators/init-library/extend-angular-specific-eslint.js.map +0 -1
- package/src/generators/init-library/generator.d.ts +0 -4
- package/src/generators/init-library/generator.js +0 -56
- package/src/generators/init-library/generator.js.map +0 -1
- package/src/generators/init-library/has-index-scss.d.ts +0 -2
- package/src/generators/init-library/has-index-scss.js +0 -11
- package/src/generators/init-library/has-index-scss.js.map +0 -1
- package/src/generators/init-library/has-tailwind-config.d.ts +0 -2
- package/src/generators/init-library/has-tailwind-config.js +0 -8
- package/src/generators/init-library/has-tailwind-config.js.map +0 -1
- package/src/generators/init-library/index.d.ts +0 -2
- package/src/generators/init-library/index.js +0 -7
- package/src/generators/init-library/index.js.map +0 -1
- package/src/generators/init-library/init-project.d.ts +0 -3
- package/src/generators/init-library/init-project.js +0 -37
- package/src/generators/init-library/init-project.js.map +0 -1
- package/src/generators/init-library/init-workspace.d.ts +0 -3
- package/src/generators/init-library/init-workspace.js +0 -21
- package/src/generators/init-library/init-workspace.js.map +0 -1
- package/src/generators/init-library/is-ng-packagr-project.d.ts +0 -2
- package/src/generators/init-library/is-ng-packagr-project.js +0 -8
- package/src/generators/init-library/is-ng-packagr-project.js.map +0 -1
- package/src/generators/init-library/ng-package-json.d.ts +0 -8
- package/src/generators/init-library/ng-package-json.js +0 -16
- package/src/generators/init-library/ng-package-json.js.map +0 -1
- package/src/generators/init-library/set-general-target-defaults.d.ts +0 -2
- package/src/generators/init-library/set-general-target-defaults.js +0 -27
- package/src/generators/init-library/set-general-target-defaults.js.map +0 -1
- package/src/generators/init-library/update-package-json.d.ts +0 -2
- package/src/generators/init-library/update-package-json.js +0 -17
- package/src/generators/init-library/update-package-json.js.map +0 -1
- package/src/generators/init-library/update-project-ng-package-configuration.d.ts +0 -2
- package/src/generators/init-library/update-project-ng-package-configuration.js +0 -37
- package/src/generators/init-library/update-project-ng-package-configuration.js.map +0 -1
- package/src/generators/init-library/update-ts-config.d.ts +0 -2
- package/src/generators/init-library/update-ts-config.js +0 -22
- package/src/generators/init-library/update-ts-config.js.map +0 -1
- package/src/generators/schematic/generator.d.ts +0 -6
- package/src/generators/schematic/generator.js +0 -127
- package/src/generators/schematic/generator.js.map +0 -1
- package/src/generators/schematic/index.d.ts +0 -2
- package/src/generators/schematic/index.js +0 -7
- package/src/generators/schematic/index.js.map +0 -1
- package/src/i18n.d.ts +0 -6
- package/src/i18n.js +0 -83
- package/src/i18n.js.map +0 -1
- package/src/index.js +0 -10
- package/src/index.js.map +0 -1
- package/src/lib/angular-version.d.ts +0 -1
- package/src/lib/angular-version.js +0 -5
- package/src/lib/angular-version.js.map +0 -1
- package/src/lib/coerce-cypress-component-testing.d.ts +0 -2
- package/src/lib/coerce-cypress-component-testing.js +0 -78
- package/src/lib/coerce-cypress-component-testing.js.map +0 -1
- package/src/lib/coerce-test-setup.d.ts +0 -2
- package/src/lib/coerce-test-setup.js +0 -47
- package/src/lib/coerce-test-setup.js.map +0 -1
- package/src/library.d.ts +0 -6
- package/src/library.js +0 -100
- package/src/library.js.map +0 -1
- package/src/migrations/update-19-0-0/add-m2-prefix-to-material-scss-functions.d.ts +0 -2
- package/src/migrations/update-19-0-0/add-m2-prefix-to-material-scss-functions.js +0 -29
- package/src/migrations/update-19-0-0/add-m2-prefix-to-material-scss-functions.js.map +0 -1
- package/src/migrations/update-19-0-0/migration.d.ts +0 -9
- package/src/migrations/update-19-0-0/migration.js +0 -220
- package/src/migrations/update-19-0-0/migration.js.map +0 -1
- /package/src/{index.d.ts → index.ts} +0 -0
|
@@ -0,0 +1,356 @@
|
|
|
1
|
+
import {
|
|
2
|
+
formatFiles,
|
|
3
|
+
generateFiles,
|
|
4
|
+
getProjects,
|
|
5
|
+
ProjectConfiguration,
|
|
6
|
+
Tree,
|
|
7
|
+
updateProjectConfiguration,
|
|
8
|
+
} from '@nx/devkit';
|
|
9
|
+
import {
|
|
10
|
+
ApplicationInitProject,
|
|
11
|
+
ApplicationInitWorkspace,
|
|
12
|
+
} from '@rxap/plugin-application';
|
|
13
|
+
import {
|
|
14
|
+
classify,
|
|
15
|
+
CoerceArrayItems,
|
|
16
|
+
dasherize,
|
|
17
|
+
DeleteProperties,
|
|
18
|
+
} from '@rxap/utilities';
|
|
19
|
+
import {
|
|
20
|
+
AddPackageJsonDependency,
|
|
21
|
+
AddPackageJsonDevDependency,
|
|
22
|
+
CoerceFile,
|
|
23
|
+
CoerceFilesStructure,
|
|
24
|
+
GenerateSerializedSchematicFile,
|
|
25
|
+
GetProjectPrefix,
|
|
26
|
+
GetProjectRoot,
|
|
27
|
+
GetProjectSourceRoot,
|
|
28
|
+
SkipNonAngularProject,
|
|
29
|
+
SkipNonApplicationProject,
|
|
30
|
+
} from '@rxap/workspace-utilities';
|
|
31
|
+
import {
|
|
32
|
+
join,
|
|
33
|
+
relative,
|
|
34
|
+
} from 'path';
|
|
35
|
+
import { ANGULAR_VERSION } from '../../lib/angular-version';
|
|
36
|
+
import { coerceTestSetup } from '../../lib/coerce-test-setup';
|
|
37
|
+
import { cleanup } from './cleanup';
|
|
38
|
+
import { coerceAppConfig } from './coerce-app-config';
|
|
39
|
+
import { coerceEnvironmentFiles } from './coerce-environment-files';
|
|
40
|
+
import { coerceLocalazyConfigFile } from './coerce-localazy-config-file';
|
|
41
|
+
import { CoerceProjects } from './coerce-project';
|
|
42
|
+
import { generateAuthentication } from './generate-authentication';
|
|
43
|
+
import { generateMonolithic } from './generate-monolithic';
|
|
44
|
+
import { linkMfeRemoteWithHost } from './link-mfe-remote-with-host';
|
|
45
|
+
import { InitApplicationGeneratorSchema } from './schema';
|
|
46
|
+
import { updateGitIgnore } from './update-git-ignore';
|
|
47
|
+
import { updateMainFile } from './update-main-file';
|
|
48
|
+
import { updateProjectTargets } from './update-project-targets';
|
|
49
|
+
import { updateTags } from './update-tags';
|
|
50
|
+
import { updateTargetDefaults } from './update-target-defaults';
|
|
51
|
+
import { updateTsConfig } from './update-ts-config';
|
|
52
|
+
|
|
53
|
+
function skipProject(tree: Tree, options: InitApplicationGeneratorSchema, project: ProjectConfiguration, projectName: string) {
|
|
54
|
+
|
|
55
|
+
if (options.project === projectName) {
|
|
56
|
+
return false;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
if (SkipNonAngularProject(tree, options, project, projectName)) {
|
|
60
|
+
return true;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
if (SkipNonApplicationProject(tree, options, project, projectName)) {
|
|
64
|
+
return true;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
return false;
|
|
68
|
+
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
export async function initApplicationGenerator(
|
|
72
|
+
tree: Tree,
|
|
73
|
+
options: InitApplicationGeneratorSchema,
|
|
74
|
+
) {
|
|
75
|
+
if (options.authentik) {
|
|
76
|
+
options.oauth = true;
|
|
77
|
+
}
|
|
78
|
+
if (options.monolithic) {
|
|
79
|
+
options.openApi = true;
|
|
80
|
+
}
|
|
81
|
+
if (options.i18n) {
|
|
82
|
+
options.languages ??= ['en'];
|
|
83
|
+
}
|
|
84
|
+
if (options.project) {
|
|
85
|
+
options.projects ??= [];
|
|
86
|
+
CoerceArrayItems(options.projects, [options.project]);
|
|
87
|
+
}
|
|
88
|
+
if (options.host) {
|
|
89
|
+
options.moduleFederation = 'remote';
|
|
90
|
+
}
|
|
91
|
+
if (options.moduleFederation === 'remote') {
|
|
92
|
+
options.authentication = false;
|
|
93
|
+
options.oauth = false;
|
|
94
|
+
options.authentik = false;
|
|
95
|
+
options.serviceWorker = false;
|
|
96
|
+
options.sentry = false;
|
|
97
|
+
options.monolithic = false;
|
|
98
|
+
}
|
|
99
|
+
console.log('angular application init generator:', options);
|
|
100
|
+
|
|
101
|
+
await ApplicationInitWorkspace(tree, options);
|
|
102
|
+
|
|
103
|
+
await AddPackageJsonDependency(tree, '@mdi/angular-material', 'latest', { soft: true });
|
|
104
|
+
await AddPackageJsonDependency(tree, '@rxap/ngx-bootstrap', 'latest', { soft: true });
|
|
105
|
+
await AddPackageJsonDependency(tree, 'ngx-logger', 'latest', { soft: true });
|
|
106
|
+
await AddPackageJsonDependency(tree, '@rxap/environment', 'latest', { soft: true });
|
|
107
|
+
await AddPackageJsonDependency(tree, '@rxap/ngx-status-check', 'latest', { soft: true });
|
|
108
|
+
await AddPackageJsonDependency(tree, '@rxap/ngx-error', 'latest', { soft: true });
|
|
109
|
+
await AddPackageJsonDependency(tree, '@rxap/ngx-localize', 'latest', { soft: true });
|
|
110
|
+
await AddPackageJsonDependency(tree, '@rxap/ngx-changelog', 'latest', { soft: true });
|
|
111
|
+
await AddPackageJsonDependency(tree, 'ngx-markdown', 'latest', { soft: true });
|
|
112
|
+
await AddPackageJsonDependency(tree, 'marked', '4.3.0', { soft: true });
|
|
113
|
+
await AddPackageJsonDependency(tree, '@rxap/config', 'latest', { soft: true });
|
|
114
|
+
await AddPackageJsonDependency(tree, '@rxap/directives', 'latest', { soft: true });
|
|
115
|
+
await AddPackageJsonDependency(tree, '@rxap/components', 'latest', { soft: true });
|
|
116
|
+
await AddPackageJsonDependency(tree, '@rxap/rxjs', 'latest', { soft: true });
|
|
117
|
+
await AddPackageJsonDependency(tree, '@rxap/data-grid', 'latest', { soft: true });
|
|
118
|
+
await AddPackageJsonDependency(tree, '@rxap/forms', 'latest', { soft: true });
|
|
119
|
+
await AddPackageJsonDependency(tree, '@rxap/validator', 'latest', { soft: true });
|
|
120
|
+
await AddPackageJsonDependency(tree, '@rxap/pipes', 'latest', { soft: true });
|
|
121
|
+
await AddPackageJsonDependency(tree, '@rxap/mixin', 'latest', { soft: true });
|
|
122
|
+
await AddPackageJsonDependency(tree, '@rxap/reflect-metadata', 'latest', { soft: true });
|
|
123
|
+
await AddPackageJsonDevDependency(tree, '@rxap/browser-tailwind', 'latest', { soft: true, withoutNonRxapPeerDependencies: false });
|
|
124
|
+
// must always be added as some rxap components use the i18n tag
|
|
125
|
+
await AddPackageJsonDependency(tree, '@angular/localize', ANGULAR_VERSION, { soft: true });
|
|
126
|
+
// must always be added as some rxap components use interfaces from the package
|
|
127
|
+
// TODO : refactor the @rxap/ngx-error and @rxap/ngx-status-check to be independent from the @sentry/angular package
|
|
128
|
+
await AddPackageJsonDependency(tree, '@sentry/angular', 'latest', { soft: true });
|
|
129
|
+
|
|
130
|
+
if (options.oauth) {
|
|
131
|
+
await AddPackageJsonDependency(tree, 'angular-oauth2-oidc', 'latest', { soft: true });
|
|
132
|
+
await AddPackageJsonDependency(tree, 'angular-oauth2-oidc-jwks', 'latest', { soft: true });
|
|
133
|
+
await AddPackageJsonDependency(tree, '@rxap/oauth', 'latest', { soft: true });
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
if (options.material) {
|
|
137
|
+
await AddPackageJsonDependency(tree, '@angular/material', ANGULAR_VERSION, { soft: true });
|
|
138
|
+
await AddPackageJsonDependency(tree, '@angular/cdk', ANGULAR_VERSION, { soft: true });
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
if (options.serviceWorker) {
|
|
142
|
+
await AddPackageJsonDependency(tree, '@rxap/service-worker', 'latest', { soft: true });
|
|
143
|
+
await AddPackageJsonDependency(tree, '@rxap/life-cycle', 'latest', { soft: true });
|
|
144
|
+
await AddPackageJsonDependency(tree, '@angular/service-worker', ANGULAR_VERSION, { soft: true });
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
if (options.monolithic) {
|
|
148
|
+
await AddPackageJsonDependency(tree, '@rxap/layout', 'latest', { soft: true });
|
|
149
|
+
await AddPackageJsonDependency(tree, '@rxap/ngx-theme', 'latest', { soft: true });
|
|
150
|
+
await AddPackageJsonDependency(tree, '@ctrl/tinycolor', 'latest', { soft: true });
|
|
151
|
+
await AddPackageJsonDependency(tree, '@rxap/ngx-pub-sub', 'latest', { soft: true });
|
|
152
|
+
await AddPackageJsonDependency(tree, '@rxap/services', 'latest', { soft: true });
|
|
153
|
+
await AddPackageJsonDependency(tree, '@rxap/data-source', 'latest', { soft: true });
|
|
154
|
+
await AddPackageJsonDependency(tree, '@rxap/pattern', 'latest', { soft: true });
|
|
155
|
+
await AddPackageJsonDependency(tree, '@rxap/definition', 'latest', { soft: true });
|
|
156
|
+
await AddPackageJsonDependency(tree, '@rxap/authentication', 'latest', { soft: true });
|
|
157
|
+
await AddPackageJsonDependency(tree, '@rxap/icon', 'latest', { soft: true });
|
|
158
|
+
await AddPackageJsonDependency(tree, '@rxap/material-directives', 'latest', { soft: true });
|
|
159
|
+
await AddPackageJsonDependency(tree, '@rxap/browser-utilities', 'latest', { soft: true });
|
|
160
|
+
await AddPackageJsonDependency(tree, '@rxap/authorization', 'latest', { soft: true });
|
|
161
|
+
await AddPackageJsonDependency(tree, '@rxap/ngx-user', 'latest', { soft: true });
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
if (options.openApi) {
|
|
165
|
+
await AddPackageJsonDependency(tree, '@rxap/open-api', 'latest', { soft: true });
|
|
166
|
+
await AddPackageJsonDependency(tree, '@rxap/remote-method', 'latest', { soft: true });
|
|
167
|
+
await AddPackageJsonDependency(tree, '@rxap/definition', 'latest', { soft: true });
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
if (options.sentry) {
|
|
171
|
+
await AddPackageJsonDependency(tree, '@rxap/ngx-sentry', 'latest', { soft: true });
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
if (options.i18n) {
|
|
175
|
+
await AddPackageJsonDependency(tree, '@rxap/ngx-localize', 'latest', { soft: true });
|
|
176
|
+
await AddPackageJsonDependency(tree, '@rxap/ngx-user', 'latest', { soft: true });
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
if (options.localazy) {
|
|
180
|
+
await AddPackageJsonDevDependency(tree, '@localazy/cli', 'latest', { soft: true });
|
|
181
|
+
await AddPackageJsonDevDependency(tree, '@rxap/plugin-localazy', 'latest', { soft: true });
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
if (options.deploy === 'web3-storage') {
|
|
185
|
+
await AddPackageJsonDevDependency(tree, '@rxap/plugin-web3-storage', 'latest', { soft: true });
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
if (options.i18n && options.deploy === 'web3-storage') {
|
|
189
|
+
CoerceFilesStructure(tree, {
|
|
190
|
+
srcFolder: join(__dirname, 'files', 'i18n'),
|
|
191
|
+
target: 'shared/angular',
|
|
192
|
+
overwrite: options.overwrite,
|
|
193
|
+
});
|
|
194
|
+
}
|
|
195
|
+
|
|
196
|
+
CoerceFilesStructure(tree, {
|
|
197
|
+
srcFolder: join(__dirname, 'files', 'shared'),
|
|
198
|
+
target: 'shared/angular',
|
|
199
|
+
overwrite: options.overwrite,
|
|
200
|
+
});
|
|
201
|
+
|
|
202
|
+
CoerceFile(tree, 'shared/angular/assets/custom.svg', '<svg></svg>');
|
|
203
|
+
|
|
204
|
+
if (options.i18n && !options.skipDocker) {
|
|
205
|
+
let dockerfileContent = tree.read('shared/angular/Dockerfile', 'utf-8')!;
|
|
206
|
+
dockerfileContent = dockerfileContent.replace('registry.gitlab.com/rxap/docker/nginx:', 'registry.gitlab.com/rxap/docker/i18n-nginx:');
|
|
207
|
+
CoerceFile(tree, 'shared/angular/Dockerfile', dockerfileContent, true);
|
|
208
|
+
}
|
|
209
|
+
|
|
210
|
+
CoerceFilesStructure(tree, {
|
|
211
|
+
srcFolder: join(__dirname, 'files', 'styles'),
|
|
212
|
+
target: 'shared/angular/styles',
|
|
213
|
+
overwrite: options.overwrite,
|
|
214
|
+
});
|
|
215
|
+
|
|
216
|
+
if (options.oauth) {
|
|
217
|
+
CoerceFilesStructure(tree, {
|
|
218
|
+
srcFolder: join(__dirname, 'files', 'oauth'),
|
|
219
|
+
target: 'shared/angular/assets',
|
|
220
|
+
overwrite: options.overwrite,
|
|
221
|
+
});
|
|
222
|
+
}
|
|
223
|
+
|
|
224
|
+
updateTargetDefaults(tree, options);
|
|
225
|
+
|
|
226
|
+
await CoerceProjects(tree, options);
|
|
227
|
+
|
|
228
|
+
if (!options.skipProjects) {
|
|
229
|
+
for (const [ projectName, project ] of getProjects(tree).entries()) {
|
|
230
|
+
|
|
231
|
+
if (skipProject(tree, options, project, projectName)) {
|
|
232
|
+
continue;
|
|
233
|
+
}
|
|
234
|
+
|
|
235
|
+
GenerateSerializedSchematicFile(
|
|
236
|
+
tree,
|
|
237
|
+
GetProjectRoot(tree, projectName),
|
|
238
|
+
'@rxap/plugin-angular',
|
|
239
|
+
'init-application',
|
|
240
|
+
DeleteProperties(options, [ 'generateMain' ]),
|
|
241
|
+
);
|
|
242
|
+
|
|
243
|
+
console.log(`init angular application project: ${ projectName }`);
|
|
244
|
+
|
|
245
|
+
const sourceRoot = GetProjectSourceRoot(tree, projectName);
|
|
246
|
+
|
|
247
|
+
ApplicationInitProject(tree, projectName, project, options);
|
|
248
|
+
|
|
249
|
+
if (options.overwrite || !tree.read(join(sourceRoot, 'styles.scss'), 'utf-8')?.match(/@use ".+\/shared\/angular\/styles";/)) {
|
|
250
|
+
generateFiles(tree, join(__dirname, 'files', 'root'), sourceRoot, {
|
|
251
|
+
serviceWorker: false,
|
|
252
|
+
...options,
|
|
253
|
+
relativePathToWorkspaceRoot: relative(sourceRoot, ''),
|
|
254
|
+
name: projectName.replace(/^user-interface-/, ''),
|
|
255
|
+
classify,
|
|
256
|
+
prefix: GetProjectPrefix(tree, projectName, 'rxap'),
|
|
257
|
+
});
|
|
258
|
+
}
|
|
259
|
+
|
|
260
|
+
if (options.overwrite) {
|
|
261
|
+
const publicDirectory = join(sourceRoot, 'public');
|
|
262
|
+
const usePublicDirectory = tree.exists(publicDirectory);
|
|
263
|
+
const baseDirectory = usePublicDirectory ? publicDirectory : sourceRoot;
|
|
264
|
+
generateFiles(tree, join(__dirname, 'files', 'public'), baseDirectory, {});
|
|
265
|
+
}
|
|
266
|
+
|
|
267
|
+
updateProjectTargets(tree, projectName, project, options);
|
|
268
|
+
updateTags(project, options);
|
|
269
|
+
updateGitIgnore(project, tree, options);
|
|
270
|
+
updateTsConfig(tree, projectName);
|
|
271
|
+
|
|
272
|
+
if (options.cleanup || options.coerce) {
|
|
273
|
+
cleanup(tree, projectName, options);
|
|
274
|
+
}
|
|
275
|
+
|
|
276
|
+
coerceEnvironmentFiles(
|
|
277
|
+
tree,
|
|
278
|
+
{
|
|
279
|
+
...options,
|
|
280
|
+
project: projectName,
|
|
281
|
+
},
|
|
282
|
+
);
|
|
283
|
+
|
|
284
|
+
coerceAppConfig(tree, projectName, options);
|
|
285
|
+
|
|
286
|
+
if (options.generateMain) {
|
|
287
|
+
updateMainFile(tree, projectName, project, options);
|
|
288
|
+
}
|
|
289
|
+
if (options.localazy) {
|
|
290
|
+
coerceLocalazyConfigFile(tree, project);
|
|
291
|
+
}
|
|
292
|
+
if (options.authentication) {
|
|
293
|
+
await generateAuthentication(tree, projectName, project, options);
|
|
294
|
+
}
|
|
295
|
+
if (options.monolithic) {
|
|
296
|
+
generateMonolithic(tree, projectName, project, options);
|
|
297
|
+
}
|
|
298
|
+
if (options.moduleFederation === 'remote') {
|
|
299
|
+
if (options.overwrite) {
|
|
300
|
+
generateFiles(tree, join(__dirname, 'files', 'mfe-remote'), sourceRoot, {
|
|
301
|
+
...options,
|
|
302
|
+
relativePathToWorkspaceRoot: relative(sourceRoot, ''),
|
|
303
|
+
name: projectName
|
|
304
|
+
.replace(/^user-interface-/, '')
|
|
305
|
+
.replace(/^remote-/, '')
|
|
306
|
+
.replace(/^feature-/, ''),
|
|
307
|
+
classify,
|
|
308
|
+
dasherize,
|
|
309
|
+
prefix: GetProjectPrefix(tree, projectName, 'rxap'),
|
|
310
|
+
});
|
|
311
|
+
}
|
|
312
|
+
if (options.host) {
|
|
313
|
+
linkMfeRemoteWithHost(tree, projectName, options);
|
|
314
|
+
}
|
|
315
|
+
}
|
|
316
|
+
if (options.moduleFederation) {
|
|
317
|
+
CoerceFilesStructure(tree, {
|
|
318
|
+
srcFolder: join(__dirname, 'files', 'mfe'),
|
|
319
|
+
target: '',
|
|
320
|
+
overwrite: options.overwrite,
|
|
321
|
+
});
|
|
322
|
+
}
|
|
323
|
+
if (options.serviceWorker) {
|
|
324
|
+
const publicDirectory = join(sourceRoot, 'public');
|
|
325
|
+
const usePublicDirectory = tree.exists(publicDirectory);
|
|
326
|
+
const baseDirectory = usePublicDirectory ? publicDirectory : sourceRoot;
|
|
327
|
+
if (options.overwrite || !tree.exists(join(baseDirectory, 'manifest.webmanifest'))) {
|
|
328
|
+
generateFiles(tree, join(__dirname, 'files', 'service-worker'), baseDirectory, {
|
|
329
|
+
...options,
|
|
330
|
+
name: projectName.replace(/^user-interface-/, ''),
|
|
331
|
+
classify,
|
|
332
|
+
dasherize,
|
|
333
|
+
});
|
|
334
|
+
}
|
|
335
|
+
}
|
|
336
|
+
|
|
337
|
+
CoerceFilesStructure(tree, {
|
|
338
|
+
srcFolder: join(__dirname, 'files', 'assets'),
|
|
339
|
+
target: join(sourceRoot, 'assets'),
|
|
340
|
+
overwrite: options.overwrite,
|
|
341
|
+
});
|
|
342
|
+
coerceTestSetup(tree, projectName);
|
|
343
|
+
|
|
344
|
+
// apply changes to the project configuration
|
|
345
|
+
updateProjectConfiguration(tree, projectName, project);
|
|
346
|
+
|
|
347
|
+
}
|
|
348
|
+
}
|
|
349
|
+
|
|
350
|
+
if (!options.skipFormat) {
|
|
351
|
+
await formatFiles(tree);
|
|
352
|
+
}
|
|
353
|
+
|
|
354
|
+
}
|
|
355
|
+
|
|
356
|
+
export default initApplicationGenerator;
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { Tree } from '@nx/devkit';
|
|
2
|
+
import {
|
|
3
|
+
CoerceAppRoutes,
|
|
4
|
+
CoerceLayoutRoutes,
|
|
5
|
+
} from '@rxap/ts-morph';
|
|
6
|
+
import { TsMorphAngularProjectTransform } from '@rxap/workspace-ts-morph';
|
|
7
|
+
import { GetProjectSourceRoot } from '@rxap/workspace-utilities';
|
|
8
|
+
import { join } from 'path';
|
|
9
|
+
import { InitApplicationGeneratorSchema } from './schema';
|
|
10
|
+
|
|
11
|
+
export function linkMfeRemoteWithHost(tree: Tree, projectName: string, options: InitApplicationGeneratorSchema) {
|
|
12
|
+
|
|
13
|
+
if (!options.host) {
|
|
14
|
+
throw new Error('The host project must be defined');
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
const hostSourceRoot = GetProjectSourceRoot(tree, options.host);
|
|
18
|
+
const isHostMonolithic = tree.exists(join(hostSourceRoot, 'app/layout.routes.ts'));
|
|
19
|
+
|
|
20
|
+
const path = projectName
|
|
21
|
+
.replace(/^user-interface-/, '')
|
|
22
|
+
.replace(/^remote-/, '')
|
|
23
|
+
.replace(/^feature-/, '');
|
|
24
|
+
|
|
25
|
+
if (isHostMonolithic && !options.standaloneImport) {
|
|
26
|
+
TsMorphAngularProjectTransform(tree, {
|
|
27
|
+
project: options.host,
|
|
28
|
+
}, (project, [ layoutSourceFile ]) => {
|
|
29
|
+
CoerceLayoutRoutes(layoutSourceFile, {
|
|
30
|
+
itemList: [
|
|
31
|
+
{
|
|
32
|
+
route: {
|
|
33
|
+
path,
|
|
34
|
+
loadRemoteModule: projectName,
|
|
35
|
+
},
|
|
36
|
+
component: 'MinimalLayoutComponent',
|
|
37
|
+
},
|
|
38
|
+
],
|
|
39
|
+
withStatusCheckGuard: options.apiStatusCheck,
|
|
40
|
+
withNavigation: true,
|
|
41
|
+
});
|
|
42
|
+
}, [ 'app/layout.routes.ts' ]);
|
|
43
|
+
} else {
|
|
44
|
+
TsMorphAngularProjectTransform(tree, {
|
|
45
|
+
project: options.host,
|
|
46
|
+
}, (project, [ appRoutes ]) => {
|
|
47
|
+
CoerceAppRoutes(appRoutes, {
|
|
48
|
+
itemList: [
|
|
49
|
+
{
|
|
50
|
+
route: {
|
|
51
|
+
path,
|
|
52
|
+
loadRemoteModule: projectName,
|
|
53
|
+
},
|
|
54
|
+
},
|
|
55
|
+
],
|
|
56
|
+
});
|
|
57
|
+
}, [ 'app/app.routes.ts' ]);
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import {
|
|
2
|
+
ProjectConfiguration,
|
|
3
|
+
Tree,
|
|
4
|
+
} from '@nx/devkit';
|
|
5
|
+
import { CoerceIgnorePattern } from '@rxap/workspace-utilities';
|
|
6
|
+
import { join } from 'path';
|
|
7
|
+
import { InitApplicationGeneratorSchema } from './schema';
|
|
8
|
+
|
|
9
|
+
export function updateGitIgnore(project: ProjectConfiguration, tree: Tree, options: InitApplicationGeneratorSchema) {
|
|
10
|
+
|
|
11
|
+
if (options.i18n) {
|
|
12
|
+
|
|
13
|
+
if (!project.sourceRoot) {
|
|
14
|
+
throw new Error(`The project ${ project.name } has no source root`);
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
CoerceIgnorePattern(tree, join(project.sourceRoot, '.gitignore'), [
|
|
18
|
+
'/i18n',
|
|
19
|
+
]);
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
}
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
import {
|
|
2
|
+
ProjectConfiguration,
|
|
3
|
+
Tree,
|
|
4
|
+
} from '@nx/devkit';
|
|
5
|
+
import { CoerceImports } from '@rxap/ts-morph';
|
|
6
|
+
import { TsMorphAngularProjectTransform } from '@rxap/workspace-ts-morph';
|
|
7
|
+
import { Statement } from 'ts-morph';
|
|
8
|
+
import {
|
|
9
|
+
assertMainStatements,
|
|
10
|
+
MAIN_BOOTSTRAP_STATEMENT,
|
|
11
|
+
} from './assert-main-statements';
|
|
12
|
+
import { InitApplicationGeneratorSchema } from './schema';
|
|
13
|
+
|
|
14
|
+
export function updateMainFile(
|
|
15
|
+
tree: Tree, projectName: string, project: ProjectConfiguration, options: InitApplicationGeneratorSchema) {
|
|
16
|
+
TsMorphAngularProjectTransform(tree, {
|
|
17
|
+
project: projectName,
|
|
18
|
+
// directory: '..' // to move from the apps/demo/src/app folder into the apps/demo/src folder
|
|
19
|
+
}, (project, [ sourceFile, mainSourceFile ]) => {
|
|
20
|
+
|
|
21
|
+
assertMainStatements(sourceFile, options);
|
|
22
|
+
|
|
23
|
+
const importDeclarations = [];
|
|
24
|
+
const statements: string[] = [];
|
|
25
|
+
|
|
26
|
+
if (options.serviceWorker) {
|
|
27
|
+
importDeclarations.push({
|
|
28
|
+
moduleSpecifier: '@rxap/service-worker',
|
|
29
|
+
namedImports: [ 'UnregisterServiceWorker' ],
|
|
30
|
+
});
|
|
31
|
+
statements.push('application.before(() => UnregisterServiceWorker(environment));');
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
if (options.openApi) {
|
|
35
|
+
importDeclarations.push({
|
|
36
|
+
moduleSpecifier: '@rxap/open-api',
|
|
37
|
+
namedImports: [ 'OpenApiInit' ],
|
|
38
|
+
});
|
|
39
|
+
if (options.openApiLegacy) {
|
|
40
|
+
statements.push('application.before(() => OpenApiInit(environment, { load: true }));');
|
|
41
|
+
} else {
|
|
42
|
+
statements.push('application.before(() => OpenApiInit(environment));');
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
if (options.sentry) {
|
|
47
|
+
importDeclarations.push({
|
|
48
|
+
moduleSpecifier: '@rxap/ngx-sentry',
|
|
49
|
+
namedImports: [ 'SentryInit' ],
|
|
50
|
+
});
|
|
51
|
+
statements.push('application.before(() => SentryInit(environment));');
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
CoerceImports(sourceFile, importDeclarations);
|
|
55
|
+
|
|
56
|
+
for (let i = 0; i < statements.length; i++) {
|
|
57
|
+
const statement = statements[i];
|
|
58
|
+
const lastStatement = i > 0 ? statements[i - 1] : null;
|
|
59
|
+
const nestStatement = i < statements.length - 1 ? statements[i + 1] : null;
|
|
60
|
+
const existingStatements: string[] = sourceFile.getStatements().map((s: Statement) => s.getText()) ?? [];
|
|
61
|
+
if (!existingStatements.includes(statement)) {
|
|
62
|
+
let index: number;
|
|
63
|
+
if (lastStatement) {
|
|
64
|
+
index = existingStatements.findIndex(s => s.includes(lastStatement)) + 1;
|
|
65
|
+
} else if (nestStatement) {
|
|
66
|
+
index = existingStatements.findIndex(s => s.includes(nestStatement));
|
|
67
|
+
} else {
|
|
68
|
+
index = existingStatements.findIndex(s => s.includes(MAIN_BOOTSTRAP_STATEMENT));
|
|
69
|
+
}
|
|
70
|
+
console.log(`insert statement: ${ statement } at index ${ index }`);
|
|
71
|
+
sourceFile.insertStatements(index, statement);
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
if (options.moduleFederation === 'host') {
|
|
76
|
+
mainSourceFile.set({
|
|
77
|
+
statements: [
|
|
78
|
+
`import {
|
|
79
|
+
setRemoteDefinitions,
|
|
80
|
+
setRemoteUrlResolver
|
|
81
|
+
} from '@nx/angular/mf';
|
|
82
|
+
import type { Environment } from '@rxap/environment';
|
|
83
|
+
import { environment } from './environments/environment';
|
|
84
|
+
|
|
85
|
+
export async function SetupDynamicMfe(environment: Environment) {
|
|
86
|
+
|
|
87
|
+
const manifest = environment.moduleFederation?.manifest;
|
|
88
|
+
|
|
89
|
+
if (!manifest) {
|
|
90
|
+
const release = environment.tag || environment.branch || 'latest';
|
|
91
|
+
setRemoteUrlResolver((remoteName: string) => \`\${ location.origin }/__mfe/\${ release }/\${ remoteName }\`);
|
|
92
|
+
} else {
|
|
93
|
+
|
|
94
|
+
let definitions: Record<string, string>;
|
|
95
|
+
|
|
96
|
+
if (typeof manifest === 'object') {
|
|
97
|
+
definitions = manifest;
|
|
98
|
+
} else {
|
|
99
|
+
definitions = await fetch(manifest).then((res) => res.json());
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
setRemoteDefinitions(definitions);
|
|
103
|
+
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
SetupDynamicMfe(environment).then(() => import('./bootstrap').catch((err) => console.error(err)));
|
|
109
|
+
`,
|
|
110
|
+
],
|
|
111
|
+
});
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
}, [
|
|
115
|
+
options.moduleFederation ? 'bootstrap.ts' : 'main.ts',
|
|
116
|
+
'main.ts',
|
|
117
|
+
]);
|
|
118
|
+
}
|