@common-stack/generate-plugin 6.0.6-alpha.9 → 6.0.6-alpha.91
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/CHANGELOG.md +306 -0
- package/README.md +157 -211
- package/cde-config.json +43 -42
- package/docker-releases/backend/package.json +135 -0
- package/docker-releases/frontend/antd/package.json +121 -0
- package/generators.json +5 -0
- package/lib/{constants/index.cjs → common/constants.cjs} +1 -1
- package/lib/common/constants.cjs.map +1 -0
- package/lib/{constants/index.mjs → common/constants.mjs} +1 -1
- package/lib/common/constants.mjs.map +1 -0
- package/lib/generators/add-backend/files/package.json +4 -6
- package/lib/generators/add-backend/files/src/api/root-schema.graphqls +1 -7
- package/lib/generators/add-backend/generator.cjs +12 -3
- package/lib/generators/add-backend/generator.cjs.map +1 -1
- package/lib/generators/add-backend/generator.mjs +12 -3
- package/lib/generators/add-backend/generator.mjs.map +1 -1
- package/lib/generators/add-backend/schema.json +6 -1
- package/lib/generators/add-frontend/frameworks/antui/root.tsx.template +2 -2
- package/lib/generators/add-frontend/frameworks/chakraui/root.tsx.template +4 -3
- package/lib/generators/add-frontend/frameworks/tailwindui/root.tsx.template +2 -2
- package/lib/generators/add-frontend/generator.cjs +17 -13
- package/lib/generators/add-frontend/generator.cjs.map +1 -1
- package/lib/generators/add-frontend/generator.mjs +12 -8
- package/lib/generators/add-frontend/generator.mjs.map +1 -1
- package/lib/generators/add-frontend/schema.json +8 -3
- package/lib/generators/add-frontend/templates/config.json +2 -47
- package/lib/generators/add-frontend/templates/package.json +6 -11
- package/lib/generators/add-frontend/templates/tools/checkQueryUsage.mjs +192 -0
- package/lib/generators/add-frontend/templates/tools/mergeConfig.js +5 -2
- package/lib/generators/add-frontend/templates/vite.config.ts.template +53 -32
- package/lib/generators/add-fullstack/files/Jenkinsfile +7 -7
- package/lib/generators/add-fullstack/files/package.json +20 -15
- package/lib/generators/add-fullstack/files/tools/html-plugin-template.ejs +28 -0
- package/lib/generators/add-fullstack/files/tools/update-dependencies.mjs +95 -63
- package/lib/generators/add-fullstack/files/tools/update-dependency-link.mjs +12 -10
- package/lib/generators/add-fullstack/files/tools/{update-dependency-version.js → update-dependency-version.mjs} +57 -26
- package/lib/generators/add-fullstack/generator.cjs +39 -30
- package/lib/generators/add-fullstack/generator.cjs.map +1 -1
- package/lib/generators/add-fullstack/generator.mjs +39 -30
- package/lib/generators/add-fullstack/generator.mjs.map +1 -1
- package/lib/generators/add-fullstack/updates/htmlPluginUpdate.cjs +8 -0
- package/lib/generators/add-fullstack/updates/htmlPluginUpdate.cjs.map +1 -0
- package/lib/generators/add-fullstack/updates/htmlPluginUpdate.d.ts +2 -0
- package/lib/generators/add-fullstack/updates/htmlPluginUpdate.mjs +8 -0
- package/lib/generators/add-fullstack/updates/htmlPluginUpdate.mjs.map +1 -0
- package/lib/generators/add-fullstack/updates/ignoreUpdate.cjs +19 -0
- package/lib/generators/add-fullstack/updates/ignoreUpdate.cjs.map +1 -0
- package/lib/generators/add-fullstack/updates/ignoreUpdate.d.ts +3 -0
- package/lib/generators/add-fullstack/updates/ignoreUpdate.mjs +19 -0
- package/lib/generators/add-fullstack/updates/ignoreUpdate.mjs.map +1 -0
- package/lib/generators/add-fullstack/updates/index.d.ts +4 -0
- package/lib/generators/add-fullstack/updates/jenkinsfileUpdate.cjs +5 -4
- package/lib/generators/add-fullstack/updates/jenkinsfileUpdate.cjs.map +1 -1
- package/lib/generators/add-fullstack/updates/jenkinsfileUpdate.d.ts +2 -1
- package/lib/generators/add-fullstack/updates/jenkinsfileUpdate.mjs +5 -4
- package/lib/generators/add-fullstack/updates/jenkinsfileUpdate.mjs.map +1 -1
- package/lib/generators/add-fullstack/updates/lernaJsonUpdate.cjs +45 -0
- package/lib/generators/add-fullstack/updates/lernaJsonUpdate.cjs.map +1 -0
- package/lib/generators/add-fullstack/updates/lernaJsonUpdate.d.ts +3 -0
- package/lib/generators/add-fullstack/updates/lernaJsonUpdate.mjs +45 -0
- package/lib/generators/add-fullstack/updates/lernaJsonUpdate.mjs.map +1 -0
- package/lib/generators/add-fullstack/updates/licenseUpdate.cjs +19 -0
- package/lib/generators/add-fullstack/updates/licenseUpdate.cjs.map +1 -0
- package/lib/generators/add-fullstack/updates/licenseUpdate.d.ts +2 -0
- package/lib/generators/add-fullstack/updates/licenseUpdate.mjs +19 -0
- package/lib/generators/add-fullstack/updates/licenseUpdate.mjs.map +1 -0
- package/lib/generators/add-fullstack/updates/packageJsonUpdate.cjs +38 -4
- package/lib/generators/add-fullstack/updates/packageJsonUpdate.cjs.map +1 -1
- package/lib/generators/add-fullstack/updates/packageJsonUpdate.d.ts +2 -1
- package/lib/generators/add-fullstack/updates/packageJsonUpdate.mjs +38 -4
- package/lib/generators/add-fullstack/updates/packageJsonUpdate.mjs.map +1 -1
- package/lib/generators/add-moleculer/files/charts/chart/Chart.yaml +1 -1
- package/lib/generators/add-moleculer/files/package.json +6 -7
- package/lib/generators/add-moleculer/generator.cjs +7 -4
- package/lib/generators/add-moleculer/generator.cjs.map +1 -1
- package/lib/generators/add-moleculer/generator.mjs +7 -4
- package/lib/generators/add-moleculer/generator.mjs.map +1 -1
- package/lib/generators/add-moleculer/schema.json +9 -4
- package/lib/generators/add-package/generator.cjs +50 -0
- package/lib/generators/add-package/generator.cjs.map +1 -0
- package/lib/generators/add-package/generator.d.ts +5 -0
- package/lib/generators/add-package/generator.mjs +50 -0
- package/lib/generators/add-package/generator.mjs.map +1 -0
- package/lib/generators/add-package/schema.json +29 -0
- package/lib/index.cjs +1 -1
- package/lib/index.d.ts +1 -4
- package/lib/index.mjs +1 -1
- package/lib/utils/filesConfig.cjs +76 -0
- package/lib/utils/filesConfig.cjs.map +1 -0
- package/lib/utils/filesConfig.d.ts +2 -0
- package/lib/utils/filesConfig.mjs +76 -0
- package/lib/utils/filesConfig.mjs.map +1 -0
- package/lib/utils/index.cjs +28 -2
- package/lib/utils/index.cjs.map +1 -1
- package/lib/utils/index.d.ts +3 -0
- package/lib/utils/index.mjs +28 -2
- package/lib/utils/index.mjs.map +1 -1
- package/lib/utils/syncConfig.cjs +116 -0
- package/lib/utils/syncConfig.cjs.map +1 -0
- package/lib/utils/syncConfig.d.ts +9 -0
- package/lib/utils/syncConfig.mjs +116 -0
- package/lib/utils/syncConfig.mjs.map +1 -0
- package/package.json +3 -4
- package/rollup.config.mjs +2 -8
- package/src/generators/add-backend/generator.ts +14 -3
- package/src/generators/add-backend/schema.d.ts +1 -0
- package/src/generators/add-backend/schema.json +6 -1
- package/src/generators/add-frontend/frameworks/antui/root.tsx.template +2 -2
- package/src/generators/add-frontend/frameworks/chakraui/root.tsx.template +4 -3
- package/src/generators/add-frontend/frameworks/tailwindui/root.tsx.template +2 -2
- package/src/generators/add-frontend/generator.ts +12 -8
- package/src/generators/add-frontend/schema.d.ts +1 -0
- package/src/generators/add-frontend/schema.json +8 -3
- package/src/generators/add-fullstack/files/Jenkinsfile +7 -7
- package/src/generators/add-fullstack/files/LICENSE-IST +39 -0
- package/src/generators/add-fullstack/files/package.json +20 -15
- package/src/generators/add-fullstack/files/tools/html-plugin-template.ejs +28 -0
- package/src/generators/add-fullstack/files/tools/update-dependencies.mjs +95 -63
- package/src/generators/add-fullstack/files/tools/update-dependency-link.mjs +12 -10
- package/src/generators/add-fullstack/files/tools/{update-dependency-version.js → update-dependency-version.mjs} +57 -26
- package/src/generators/add-fullstack/generator.ts +64 -38
- package/src/generators/add-fullstack/updates/htmlPluginUpdate.ts +11 -0
- package/src/generators/add-fullstack/updates/ignoreUpdate.ts +23 -0
- package/src/generators/add-fullstack/updates/index.ts +4 -0
- package/src/generators/add-fullstack/updates/jenkinsfileUpdate.ts +6 -4
- package/src/generators/add-fullstack/updates/lernaJsonUpdate.ts +53 -0
- package/src/generators/add-fullstack/updates/licenseUpdate.ts +23 -0
- package/src/generators/add-fullstack/updates/packageJsonUpdate.ts +45 -4
- package/src/generators/add-moleculer/files/charts/chart/Chart.yaml +1 -1
- package/src/generators/add-moleculer/files/package.json +6 -7
- package/src/generators/add-moleculer/generator.spec.ts +1 -1
- package/src/generators/add-moleculer/generator.ts +8 -3
- package/src/generators/add-moleculer/schema.d.ts +2 -1
- package/src/generators/add-moleculer/schema.json +9 -4
- package/src/generators/{add-core-package → add-package}/generator.spec.ts +5 -5
- package/src/generators/add-package/generator.ts +62 -0
- package/src/generators/add-package/schema.d.ts +6 -0
- package/src/generators/add-package/schema.json +29 -0
- package/src/index.ts +1 -4
- package/src/utils/filesConfig.ts +84 -0
- package/src/utils/index.ts +31 -0
- package/src/utils/syncConfig.ts +128 -0
- package/lib/constants/index.cjs.map +0 -1
- package/lib/constants/index.mjs.map +0 -1
- package/lib/generators/add-browser-package/files/jest.config.js +0 -8
- package/lib/generators/add-browser-package/files/package.json +0 -49
- package/lib/generators/add-browser-package/files/rollup.config.mjs +0 -29
- package/lib/generators/add-browser-package/files/src/index.ts.template +0 -4
- package/lib/generators/add-browser-package/files/src/interfaces/index.ts.template +0 -1
- package/lib/generators/add-browser-package/files/src/interfaces/interfaces.ts.template +0 -1
- package/lib/generators/add-browser-package/files/src/module.tsx.template +0 -7
- package/lib/generators/add-browser-package/files/tsconfig.json +0 -28
- package/lib/generators/add-browser-package/files/webpack.config.js +0 -71
- package/lib/generators/add-browser-package/generator.cjs +0 -17
- package/lib/generators/add-browser-package/generator.cjs.map +0 -1
- package/lib/generators/add-browser-package/generator.d.ts +0 -5
- package/lib/generators/add-browser-package/generator.mjs +0 -17
- package/lib/generators/add-browser-package/generator.mjs.map +0 -1
- package/lib/generators/add-browser-package/schema.json +0 -19
- package/lib/generators/add-client-package/files/CHANGELOG.md +0 -807
- package/lib/generators/add-client-package/files/jest.config.js +0 -13
- package/lib/generators/add-client-package/files/package.json +0 -30
- package/lib/generators/add-client-package/files/rollup.config.mjs +0 -29
- package/lib/generators/add-client-package/files/src/components/index.tsx.template +0 -1
- package/lib/generators/add-client-package/files/src/index.ts.template +0 -1
- package/lib/generators/add-client-package/files/tsconfig.json +0 -27
- package/lib/generators/add-client-package/files/webpack.config.js +0 -72
- package/lib/generators/add-client-package/generator.cjs +0 -17
- package/lib/generators/add-client-package/generator.cjs.map +0 -1
- package/lib/generators/add-client-package/generator.d.ts +0 -5
- package/lib/generators/add-client-package/generator.mjs +0 -17
- package/lib/generators/add-client-package/generator.mjs.map +0 -1
- package/lib/generators/add-client-package/generator.spec.d.ts +0 -1
- package/lib/generators/add-client-package/schema.json +0 -19
- package/lib/generators/add-core-package/files/jest.config.js +0 -3
- package/lib/generators/add-core-package/files/package.json +0 -30
- package/lib/generators/add-core-package/files/rollup.config.mjs +0 -65
- package/lib/generators/add-core-package/files/src/constants/index.ts.template +0 -1
- package/lib/generators/add-core-package/files/src/constants/types.ts.template +0 -3
- package/lib/generators/add-core-package/files/src/index.ts.template +0 -2
- package/lib/generators/add-core-package/files/src/types/index.ts.template +0 -1
- package/lib/generators/add-core-package/files/src/types/types.ts.template +0 -17
- package/lib/generators/add-core-package/files/tsconfig.json +0 -22
- package/lib/generators/add-core-package/files/webpack.config.js +0 -53
- package/lib/generators/add-core-package/generator.cjs +0 -17
- package/lib/generators/add-core-package/generator.cjs.map +0 -1
- package/lib/generators/add-core-package/generator.d.ts +0 -5
- package/lib/generators/add-core-package/generator.mjs +0 -17
- package/lib/generators/add-core-package/generator.mjs.map +0 -1
- package/lib/generators/add-core-package/generator.spec.d.ts +0 -1
- package/lib/generators/add-core-package/schema.json +0 -19
- package/lib/generators/add-fullstack/files/CHANGELOG.md +0 -20
- package/lib/generators/add-server-package/files/CHANGELOG.md +0 -2599
- package/lib/generators/add-server-package/files/LICENSE +0 -674
- package/lib/generators/add-server-package/files/jest.config.js +0 -32
- package/lib/generators/add-server-package/files/package.json +0 -78
- package/lib/generators/add-server-package/files/rollup.config.mjs +0 -30
- package/lib/generators/add-server-package/files/src/constants/constants.ts.template +0 -62
- package/lib/generators/add-server-package/files/src/constants/index.ts.template +0 -1
- package/lib/generators/add-server-package/files/src/constants/types.ts.template +0 -21
- package/lib/generators/add-server-package/files/src/index.ts.template +0 -6
- package/lib/generators/add-server-package/files/src/module.ts.template +0 -6
- package/lib/generators/add-server-package/files/tsconfig.json +0 -27
- package/lib/generators/add-server-package/generator.cjs +0 -17
- package/lib/generators/add-server-package/generator.cjs.map +0 -1
- package/lib/generators/add-server-package/generator.d.ts +0 -5
- package/lib/generators/add-server-package/generator.mjs +0 -17
- package/lib/generators/add-server-package/generator.mjs.map +0 -1
- package/lib/generators/add-server-package/generator.spec.d.ts +0 -1
- package/lib/generators/add-server-package/schema.json +0 -19
- package/src/generators/add-browser-package/generator.spec.ts +0 -20
- package/src/generators/add-browser-package/generator.ts +0 -24
- package/src/generators/add-browser-package/schema.d.ts +0 -4
- package/src/generators/add-browser-package/schema.json +0 -19
- package/src/generators/add-client-package/generator.spec.ts +0 -20
- package/src/generators/add-client-package/generator.ts +0 -24
- package/src/generators/add-client-package/schema.d.ts +0 -4
- package/src/generators/add-client-package/schema.json +0 -19
- package/src/generators/add-core-package/generator.ts +0 -24
- package/src/generators/add-core-package/schema.d.ts +0 -4
- package/src/generators/add-core-package/schema.json +0 -19
- package/src/generators/add-fullstack/files/CHANGELOG.md +0 -28
- package/src/generators/add-server-package/generator.spec.ts +0 -20
- package/src/generators/add-server-package/generator.ts +0 -24
- package/src/generators/add-server-package/schema.d.ts +0 -4
- package/src/generators/add-server-package/schema.json +0 -19
- /package/lib/{constants/index.d.ts → common/constants.d.ts} +0 -0
- /package/lib/generators/{add-browser-package/files/LICENSE → add-fullstack/files/LICENSE-GNU} +0 -0
- /package/lib/generators/{add-core-package/files/LICENSE → add-fullstack/files/LICENSE-IST} +0 -0
- /package/lib/generators/add-fullstack/files/{LICENSE → LICENSE-MIT} +0 -0
- /package/lib/generators/{add-browser-package → add-package}/generator.spec.d.ts +0 -0
- /package/src/{constants/index.ts → common/constants.ts} +0 -0
- /package/{lib/generators/add-client-package/files/LICENSE → src/generators/add-fullstack/files/LICENSE-GNU} +0 -0
- /package/src/generators/add-fullstack/files/{LICENSE → LICENSE-MIT} +0 -0
|
@@ -5,31 +5,56 @@ import * as path from 'path';
|
|
|
5
5
|
import * as fs from 'fs';
|
|
6
6
|
import { AddFullstackGeneratorSchema } from './schema';
|
|
7
7
|
import { getValid, isValid } from '../../utils';
|
|
8
|
-
import {
|
|
8
|
+
import {
|
|
9
|
+
updateJenkinsFile,
|
|
10
|
+
updatePackageJson,
|
|
11
|
+
backupLernaJson,
|
|
12
|
+
restoreLernaJson,
|
|
13
|
+
updateHtmlPlugin,
|
|
14
|
+
updateLicense,
|
|
15
|
+
backupFiles,
|
|
16
|
+
restoreFiles,
|
|
17
|
+
updateRepository,
|
|
18
|
+
} from './updates';
|
|
9
19
|
import {
|
|
10
20
|
generateBackend,
|
|
11
21
|
generateFrontend,
|
|
12
22
|
generateMoleculer,
|
|
13
|
-
|
|
14
|
-
generateClientPackage,
|
|
15
|
-
generateCorePackage,
|
|
16
|
-
generateServerPackage,
|
|
23
|
+
generatePackage,
|
|
17
24
|
} from '../../index';
|
|
18
25
|
|
|
19
26
|
export async function addFullstackGenerator(tree: Tree, options: AddFullstackGeneratorSchema) {
|
|
20
27
|
const basePath = options.path || '';
|
|
21
|
-
const
|
|
28
|
+
const projectName = getValid(options.name) ?? 'fullstack-pro';
|
|
29
|
+
const projectRoot = path.join(basePath, projectName);
|
|
22
30
|
|
|
23
31
|
console.log(`basePath: ${basePath}`);
|
|
24
32
|
|
|
33
|
+
// backup existing lerna values
|
|
34
|
+
const lernaBackup = backupLernaJson(tree, projectRoot);
|
|
35
|
+
|
|
36
|
+
// backup files codegen.yaml
|
|
37
|
+
const filesToBackup = ['codegen.yml', 'values-dev.yaml', 'values-prod.yaml', 'values-stage.yaml'];
|
|
38
|
+
const filesBackup = backupFiles(tree, projectRoot, filesToBackup);
|
|
39
|
+
|
|
25
40
|
generateFiles(tree, path.join(__dirname, 'files'), projectRoot, options);
|
|
26
41
|
|
|
27
42
|
// Update Jenkinsfile with dynamic values
|
|
28
|
-
|
|
29
|
-
updateJenkinsFile(jenkinsFilePath, options.name);
|
|
43
|
+
updateJenkinsFile(tree, projectRoot, projectName);
|
|
30
44
|
|
|
31
45
|
// Update package.json with the project name
|
|
32
|
-
updatePackageJson(tree, projectRoot,
|
|
46
|
+
updatePackageJson(tree, projectRoot, { name: projectName });
|
|
47
|
+
|
|
48
|
+
// Update tools/html-plugin-template
|
|
49
|
+
updateHtmlPlugin(tree, projectRoot);
|
|
50
|
+
|
|
51
|
+
if (lernaBackup) {
|
|
52
|
+
// When update the existing lerna.json, it shouldn't overwrite version, allowbranch, packages
|
|
53
|
+
restoreLernaJson(tree, projectRoot, lernaBackup);
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
// Restore files backup to ignore update
|
|
57
|
+
restoreFiles(tree, projectRoot, filesBackup);
|
|
33
58
|
|
|
34
59
|
await formatFiles(tree);
|
|
35
60
|
|
|
@@ -37,9 +62,9 @@ export async function addFullstackGenerator(tree: Tree, options: AddFullstackGen
|
|
|
37
62
|
const configPath = path.resolve(basePath, getValid(options.config));
|
|
38
63
|
if (fs.existsSync(configPath)) {
|
|
39
64
|
try {
|
|
40
|
-
const
|
|
41
|
-
const configs = JSON.parse(content);
|
|
65
|
+
const configs = JSON.parse(fs.readFileSync(configPath).toString());
|
|
42
66
|
configs.parent = projectRoot;
|
|
67
|
+
configs.ns = projectName;
|
|
43
68
|
|
|
44
69
|
await processConfigs(tree, configs);
|
|
45
70
|
} catch (error) {
|
|
@@ -47,14 +72,17 @@ export async function addFullstackGenerator(tree: Tree, options: AddFullstackGen
|
|
|
47
72
|
}
|
|
48
73
|
}
|
|
49
74
|
}
|
|
50
|
-
}
|
|
51
75
|
|
|
76
|
+
// Update license from package.json
|
|
77
|
+
updateLicense(tree, projectRoot);
|
|
78
|
+
}
|
|
52
79
|
|
|
53
|
-
const generateServers = async (tree: Tree,
|
|
54
|
-
for (const [serverName, serverConfig] of Object.entries(servers)) {
|
|
80
|
+
const generateServers = async (tree: Tree, options: any) => {
|
|
81
|
+
for (const [serverName, serverConfig] of Object.entries(options.servers)) {
|
|
55
82
|
const configs: any = serverConfig;
|
|
56
83
|
configs.name = serverName;
|
|
57
|
-
configs.directory = path.join(parent, 'servers');
|
|
84
|
+
configs.directory = path.join(options.parent, 'servers');
|
|
85
|
+
configs.ns = options.ns;
|
|
58
86
|
|
|
59
87
|
switch (configs?.type) {
|
|
60
88
|
case 'frontend':
|
|
@@ -72,38 +100,36 @@ const generateServers = async (tree: Tree, parent: string, servers: any) => {
|
|
|
72
100
|
}
|
|
73
101
|
};
|
|
74
102
|
|
|
75
|
-
const
|
|
76
|
-
for (const [
|
|
77
|
-
const
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
await generateBrowserPackage(tree, configs);
|
|
87
|
-
break;
|
|
88
|
-
case 'packages-client':
|
|
89
|
-
await generateClientPackage(tree, configs);
|
|
90
|
-
break;
|
|
91
|
-
case 'packages-server':
|
|
92
|
-
await generateServerPackage(tree, configs);
|
|
93
|
-
break;
|
|
94
|
-
default:
|
|
95
|
-
break;
|
|
103
|
+
const generateModules = async (tree: Tree, options: any) => {
|
|
104
|
+
for (const [moduleName, moduleConfig] of Object.entries(options.packages.modules)) {
|
|
105
|
+
for (const [packageName, packageConfig] of Object.entries(moduleConfig)) {
|
|
106
|
+
const configs: any = {
|
|
107
|
+
...(packageConfig as any),
|
|
108
|
+
name: moduleName,
|
|
109
|
+
directory: path.join(options.parent, 'packages'),
|
|
110
|
+
ns: options.ns,
|
|
111
|
+
type: packageName,
|
|
112
|
+
};
|
|
113
|
+
await generatePackage(tree, configs, false);
|
|
96
114
|
}
|
|
97
115
|
}
|
|
98
116
|
};
|
|
99
117
|
|
|
100
118
|
const processConfigs = async (tree: Tree, configs: any) => {
|
|
101
119
|
if (configs.servers) {
|
|
102
|
-
await generateServers(tree, configs
|
|
120
|
+
await generateServers(tree, configs);
|
|
103
121
|
}
|
|
104
122
|
|
|
105
123
|
if (configs.packages && configs.packages.modules) {
|
|
106
|
-
await
|
|
124
|
+
await generateModules(tree, configs);
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
if (configs.license) {
|
|
128
|
+
updatePackageJson(tree, configs.parent, { license: getValid(configs.license) });
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
if (configs.repository) {
|
|
132
|
+
updateRepository(tree, configs.parent, configs.repository);
|
|
107
133
|
}
|
|
108
134
|
};
|
|
109
135
|
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { Tree } from '@nx/devkit';
|
|
2
|
+
import * as path from 'path';
|
|
3
|
+
|
|
4
|
+
export function updateHtmlPlugin(tree: Tree, projectRoot: string) {
|
|
5
|
+
const filePath = path.join(projectRoot, 'tools', 'html-plugin-template.ejs');
|
|
6
|
+
if (tree.exists(filePath)) {
|
|
7
|
+
const contents = tree.read(filePath).toString();
|
|
8
|
+
const newContents = contents.replace('<@', '<%').replace('@>', '%>');
|
|
9
|
+
tree.write(filePath, newContents);
|
|
10
|
+
}
|
|
11
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { Tree } from '@nx/devkit';
|
|
2
|
+
import * as path from 'path';
|
|
3
|
+
|
|
4
|
+
export function backupFiles(tree: Tree, projectRoot: string, files: string[]) {
|
|
5
|
+
return files.map(file => {
|
|
6
|
+
const filePath = path.join(projectRoot, file);
|
|
7
|
+
const backup: any = { file };
|
|
8
|
+
if (tree.exists(filePath)) {
|
|
9
|
+
backup.content = tree.read(filePath).toString();
|
|
10
|
+
}
|
|
11
|
+
return backup;
|
|
12
|
+
});
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
export function restoreFiles(tree: Tree, projectRoot: string, files: any[]) {
|
|
16
|
+
files.forEach((backup: any) => {
|
|
17
|
+
const filePath = path.join(projectRoot, backup.file);
|
|
18
|
+
if (backup.content) {
|
|
19
|
+
tree.write(filePath, backup.content);
|
|
20
|
+
console.log('Restored file', filePath);
|
|
21
|
+
}
|
|
22
|
+
});
|
|
23
|
+
}
|
|
@@ -1,7 +1,9 @@
|
|
|
1
|
+
import { Tree } from '@nx/devkit';
|
|
1
2
|
import fs from 'fs';
|
|
2
3
|
import * as path from 'path';
|
|
3
4
|
|
|
4
|
-
export function updateJenkinsFile(
|
|
5
|
+
export function updateJenkinsFile(tree: Tree, projectRoot: string, name: string) {
|
|
6
|
+
const filePath = path.join(projectRoot, 'Jenkinsfile');
|
|
5
7
|
const paramsToUpdate = {
|
|
6
8
|
BASE_NAMESPACE: name,
|
|
7
9
|
CONNECTION_ID: name,
|
|
@@ -10,8 +12,8 @@ export function updateJenkinsFile(filePath: string, name: string) {
|
|
|
10
12
|
};
|
|
11
13
|
|
|
12
14
|
let jenkinsFileContent = '';
|
|
13
|
-
if (
|
|
14
|
-
jenkinsFileContent =
|
|
15
|
+
if (tree.exists(filePath)) {
|
|
16
|
+
jenkinsFileContent = tree.read(filePath).toString();
|
|
15
17
|
}
|
|
16
18
|
|
|
17
19
|
let labelExists = false;
|
|
@@ -42,6 +44,6 @@ export function updateJenkinsFile(filePath: string, name: string) {
|
|
|
42
44
|
|
|
43
45
|
// Only write back to the file if we have made changes
|
|
44
46
|
if (!labelExists || Object.keys(paramsToUpdate).some(param => !updatedContent.includes(`string(name: '${param}'`))) {
|
|
45
|
-
|
|
47
|
+
tree.write(filePath, updatedContent);
|
|
46
48
|
}
|
|
47
49
|
}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { Tree, updateJson } from '@nx/devkit';
|
|
2
|
+
import * as path from 'path';
|
|
3
|
+
import * as fs from 'fs';
|
|
4
|
+
import { get, set } from 'lodash';
|
|
5
|
+
|
|
6
|
+
const params = ['version', 'command:publish:allowBranch', 'command:version:allowBranch', 'packages'];
|
|
7
|
+
|
|
8
|
+
export function backupLernaJson(tree: Tree, projectRoot: string) {
|
|
9
|
+
const lernaJsonPath = path.join(projectRoot, 'lerna.json');
|
|
10
|
+
|
|
11
|
+
if (tree.exists(lernaJsonPath)) {
|
|
12
|
+
const lernaJson = JSON.parse(tree.read(lernaJsonPath).toString());
|
|
13
|
+
const backup = {};
|
|
14
|
+
let exists = false;
|
|
15
|
+
for (const param of params) {
|
|
16
|
+
if (param.includes(':')) {
|
|
17
|
+
const paramValue = get(lernaJson, param.split(':'));
|
|
18
|
+
if (paramValue) {
|
|
19
|
+
backup[param] = paramValue;
|
|
20
|
+
exists = true;
|
|
21
|
+
}
|
|
22
|
+
} else {
|
|
23
|
+
if (lernaJson[param]) {
|
|
24
|
+
backup[param] = lernaJson[param];
|
|
25
|
+
exists = true;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
if (exists) {
|
|
31
|
+
return backup;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
return null;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
export function restoreLernaJson(tree: Tree, projectRoot: string, backup: any) {
|
|
39
|
+
const lernaJsonPath = path.join(projectRoot, 'lerna.json');
|
|
40
|
+
if (backup && fs.existsSync(lernaJsonPath)) {
|
|
41
|
+
updateJson(tree, lernaJsonPath, (lernaJson: any) => {
|
|
42
|
+
Object.keys(backup).forEach(param => {
|
|
43
|
+
if (param.includes(':')) {
|
|
44
|
+
lernaJson = set(lernaJson, param.split(':'), backup[param]);
|
|
45
|
+
} else {
|
|
46
|
+
lernaJson[param] = backup[param];
|
|
47
|
+
}
|
|
48
|
+
});
|
|
49
|
+
return lernaJson;
|
|
50
|
+
});
|
|
51
|
+
console.log('Restored old values in lerna.json');
|
|
52
|
+
}
|
|
53
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { Tree, readJson } from '@nx/devkit';
|
|
2
|
+
import * as path from 'path';
|
|
3
|
+
|
|
4
|
+
export function updateLicense(tree: Tree, projectRoot: string) {
|
|
5
|
+
const files = ['LICENSE-GNU', 'LICENSE-IST', 'LICENSE-MIT'];
|
|
6
|
+
const packageJsonPath = path.join(projectRoot, 'package.json');
|
|
7
|
+
const packageJson = readJson(tree, packageJsonPath);
|
|
8
|
+
|
|
9
|
+
if (packageJson.license) {
|
|
10
|
+
const fileName = `LICENSE-${packageJson.license.toUpperCase()}`;
|
|
11
|
+
|
|
12
|
+
files.forEach(file => {
|
|
13
|
+
const filePath = path.join(projectRoot, file);
|
|
14
|
+
if (file === fileName) {
|
|
15
|
+
if (tree.exists(filePath)) {
|
|
16
|
+
tree.rename(filePath, path.join(projectRoot, 'LICENSE'));
|
|
17
|
+
}
|
|
18
|
+
} else {
|
|
19
|
+
tree.delete(filePath);
|
|
20
|
+
}
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
}
|
|
@@ -1,11 +1,52 @@
|
|
|
1
1
|
import { Tree, updateJson } from '@nx/devkit';
|
|
2
2
|
import * as path from 'path';
|
|
3
|
+
import { convertHttpsToSsh } from '../../../utils';
|
|
3
4
|
|
|
4
|
-
export function updatePackageJson(tree: Tree, projectRoot: string,
|
|
5
|
+
export function updatePackageJson(tree: Tree, projectRoot: string, json: any) {
|
|
5
6
|
const packageJsonPath = path.join(projectRoot, 'package.json');
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
7
|
+
|
|
8
|
+
updateJson(tree, packageJsonPath, (packageJson: any) => {
|
|
9
|
+
Object.entries(json).reduce((acc, [key, value]) => {
|
|
10
|
+
acc[key] = value;
|
|
11
|
+
return acc;
|
|
12
|
+
}, packageJson);
|
|
9
13
|
return packageJson;
|
|
10
14
|
});
|
|
11
15
|
}
|
|
16
|
+
|
|
17
|
+
export function updateRepository(tree: Tree, projectRoot: string, repository: string) {
|
|
18
|
+
if (repository.startsWith('http://')) {
|
|
19
|
+
repository = repository.replace('http://', 'https://');
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
// update in package.json
|
|
23
|
+
updatePackageJson(tree, projectRoot, {
|
|
24
|
+
"homepage": `${repository}#readme`,
|
|
25
|
+
"bugs": {
|
|
26
|
+
"url": `${repository}/issues`
|
|
27
|
+
},
|
|
28
|
+
"repository": {
|
|
29
|
+
"type": "git",
|
|
30
|
+
"url": `git+${repository}.git`
|
|
31
|
+
},
|
|
32
|
+
});
|
|
33
|
+
|
|
34
|
+
// update in Jenkinsfile
|
|
35
|
+
const filePath = path.join(projectRoot, 'Jenkinsfile');
|
|
36
|
+
|
|
37
|
+
if (tree.exists(filePath)) {
|
|
38
|
+
const jenkinsFileContent = tree.read(filePath).toString();
|
|
39
|
+
let paramExists = false;
|
|
40
|
+
const updatedContent = jenkinsFileContent.split('\n').map(line => {
|
|
41
|
+
if (line.includes(`string(name: 'REPOSITORY_SSH_URL'`)) {
|
|
42
|
+
paramExists = true;
|
|
43
|
+
return line.replace(/defaultValue: '.*'/, `defaultValue: '${convertHttpsToSsh(repository)}'`);
|
|
44
|
+
}
|
|
45
|
+
return line;
|
|
46
|
+
}).join('\n');
|
|
47
|
+
|
|
48
|
+
if (paramExists) {
|
|
49
|
+
tree.write(filePath, updatedContent);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
}
|
|
@@ -25,16 +25,15 @@
|
|
|
25
25
|
"watch": "npm run start:dev"
|
|
26
26
|
},
|
|
27
27
|
"dependencies": {
|
|
28
|
-
"@common-stack/client-core": "6.0.6-alpha.
|
|
29
|
-
"@common-stack/core": "6.0.6-alpha.
|
|
30
|
-
"@common-stack/server-core": "6.0.6-alpha.
|
|
31
|
-
"@common-stack/server-stack": "6.0.6-alpha.
|
|
32
|
-
"@common-stack/store-mongo": "6.0.6-alpha.
|
|
28
|
+
"@common-stack/client-core": "6.0.6-alpha.87",
|
|
29
|
+
"@common-stack/core": "6.0.6-alpha.86",
|
|
30
|
+
"@common-stack/server-core": "6.0.6-alpha.86",
|
|
31
|
+
"@common-stack/server-stack": "6.0.6-alpha.87",
|
|
32
|
+
"@common-stack/store-mongo": "6.0.6-alpha.86",
|
|
33
33
|
"@container-stack/mailing-api": "5.2.1-alpha.1",
|
|
34
34
|
"helmet": "^3.21.2",
|
|
35
35
|
"react": "18.2.0",
|
|
36
|
-
"rxjs": "^
|
|
37
|
-
"rxjs-compat": "^6.5.3"
|
|
36
|
+
"rxjs": "^7.8.1"
|
|
38
37
|
},
|
|
39
38
|
"devDependencies": {
|
|
40
39
|
"cross-env": "^7.0.3",
|
|
@@ -6,7 +6,7 @@ import { AddMoleculerGeneratorSchema } from './schema';
|
|
|
6
6
|
|
|
7
7
|
describe('add-moleculer generator', () => {
|
|
8
8
|
let tree: Tree;
|
|
9
|
-
const options: AddMoleculerGeneratorSchema = { name: 'test', directory: 'lib' };
|
|
9
|
+
const options: AddMoleculerGeneratorSchema = { ns: 'sample', name: 'test', directory: 'lib' };
|
|
10
10
|
|
|
11
11
|
beforeEach(() => {
|
|
12
12
|
tree = createTreeWithEmptyWorkspace();
|
|
@@ -3,18 +3,23 @@ import * as path from 'path';
|
|
|
3
3
|
import { AddMoleculerGeneratorSchema } from './schema';
|
|
4
4
|
import { isValid, getValid } from '../../utils';
|
|
5
5
|
|
|
6
|
+
const DEFAULT_SERVER_NAME = 'moleculer-server';
|
|
7
|
+
|
|
6
8
|
export async function addMoleculerGenerator(tree: Tree, options: AddMoleculerGeneratorSchema) {
|
|
7
|
-
const
|
|
9
|
+
const projectName = isValid(options.name) ? `${getValid(options.name)}-server` : DEFAULT_SERVER_NAME;
|
|
10
|
+
const configs: any = {...options, name: projectName};
|
|
11
|
+
|
|
8
12
|
return await generateMoleculer(tree, configs);
|
|
9
13
|
}
|
|
10
14
|
|
|
11
15
|
export const generateMoleculer = async (tree: Tree, options: any) => {
|
|
12
|
-
|
|
16
|
+
let projectName = getValid(options.name) ?? DEFAULT_SERVER_NAME;
|
|
13
17
|
const projectRoot = isValid(options.directory) ? `${getValid(options.directory)}/${projectName}` : projectName;
|
|
18
|
+
projectName = isValid(options.ns) ? `${getValid(options.ns)}-${projectName}` : projectName;
|
|
14
19
|
|
|
15
20
|
generateFiles(tree, path.join(__dirname, 'files'), projectRoot, options);
|
|
16
21
|
updateJson(tree, `${projectRoot}/package.json`, (packageJson) => {
|
|
17
|
-
packageJson['name'] =
|
|
22
|
+
packageJson['name'] = projectName;
|
|
18
23
|
return packageJson;
|
|
19
24
|
});
|
|
20
25
|
|
|
@@ -4,16 +4,21 @@
|
|
|
4
4
|
"title": "",
|
|
5
5
|
"type": "object",
|
|
6
6
|
"properties": {
|
|
7
|
-
"
|
|
7
|
+
"ns": {
|
|
8
8
|
"type": "string",
|
|
9
|
-
"description": "",
|
|
10
|
-
"x-prompt": "What
|
|
9
|
+
"description": "The project namespace",
|
|
10
|
+
"x-prompt": "What namespace would you like to use?"
|
|
11
11
|
},
|
|
12
12
|
"directory": {
|
|
13
13
|
"type": "string",
|
|
14
14
|
"description": "",
|
|
15
15
|
"x-prompt": "What directory would you like to create in?"
|
|
16
|
+
},
|
|
17
|
+
"name": {
|
|
18
|
+
"type": "string",
|
|
19
|
+
"description": "The module name",
|
|
20
|
+
"x-prompt": "What name would you like to use for this moleculer server module?"
|
|
16
21
|
}
|
|
17
22
|
},
|
|
18
|
-
"required": ["
|
|
23
|
+
"required": ["ns", "directory", "name"]
|
|
19
24
|
}
|
|
@@ -1,19 +1,19 @@
|
|
|
1
1
|
import { createTreeWithEmptyWorkspace } from '@nx/devkit/testing';
|
|
2
2
|
import { Tree, readProjectConfiguration } from '@nx/devkit';
|
|
3
3
|
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
4
|
+
import { addPackageGenerator } from './generator';
|
|
5
|
+
import { AddPackageGeneratorSchema } from './schema';
|
|
6
6
|
|
|
7
|
-
describe('add-
|
|
7
|
+
describe('add-package generator', () => {
|
|
8
8
|
let tree: Tree;
|
|
9
|
-
const options:
|
|
9
|
+
const options: AddPackageGeneratorSchema = { name: 'test', directory: 'lib' };
|
|
10
10
|
|
|
11
11
|
beforeEach(() => {
|
|
12
12
|
tree = createTreeWithEmptyWorkspace();
|
|
13
13
|
});
|
|
14
14
|
|
|
15
15
|
it('should run successfully', async () => {
|
|
16
|
-
await
|
|
16
|
+
await addPackageGenerator(tree, options);
|
|
17
17
|
const config = readProjectConfiguration(tree, 'test');
|
|
18
18
|
expect(config).toBeDefined();
|
|
19
19
|
});
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { addProjectConfiguration, formatFiles, generateFiles, Tree, updateJson } from '@nx/devkit';
|
|
2
|
+
import * as path from 'path';
|
|
3
|
+
import { AddPackageGeneratorSchema } from './schema';
|
|
4
|
+
import { isValid, getValid } from '../../utils';
|
|
5
|
+
import { processFiles } from '../../utils/filesConfig';
|
|
6
|
+
import { syncConfig } from '../../utils/syncConfig';
|
|
7
|
+
|
|
8
|
+
export async function addPackageGenerator(tree: Tree, options: AddPackageGeneratorSchema) {
|
|
9
|
+
if (!isValid(options.name)) {
|
|
10
|
+
console.error('Package name can not be empty, please try again!');
|
|
11
|
+
return;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
const packages = ['core', 'client', 'browser', 'server'];
|
|
15
|
+
const packageType = getValid(options.packageType);
|
|
16
|
+
if (packageType && packageType.toLocaleLowerCase() !== 'all') {
|
|
17
|
+
if(!packages.includes(packageType)) {
|
|
18
|
+
console.error('Package type is not available! please choice in Client|Browser|Core|Server|All');
|
|
19
|
+
return;
|
|
20
|
+
}
|
|
21
|
+
generatePackage(tree, {...options, type: packageType.toLocaleLowerCase()}, true);
|
|
22
|
+
} else {
|
|
23
|
+
packages.forEach(pkg => {
|
|
24
|
+
const configs: any = {...options, type: pkg};
|
|
25
|
+
generatePackage(tree, configs, true);
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
await formatFiles(tree);
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
// export const generateModule = async (tree: Tree, options: any) => {
|
|
33
|
+
// for (const [packageName, packageConfig] of Object.entries(options)) {
|
|
34
|
+
// const configs: any = {...options, ...(packageConfig as any)};
|
|
35
|
+
// configs.type = packageName;
|
|
36
|
+
// generatePackage(tree, configs, false);
|
|
37
|
+
// }
|
|
38
|
+
|
|
39
|
+
// await formatFiles(tree);
|
|
40
|
+
// }
|
|
41
|
+
|
|
42
|
+
export const generatePackage = async (tree: Tree, options: any, cmdLine: boolean = false) => {
|
|
43
|
+
const basePath = `${options.name}/${options.type}`;
|
|
44
|
+
const packageRoot = isValid(options.directory) ? `${getValid(options.directory)}/${basePath}` : basePath;
|
|
45
|
+
const baseName = isValid(options.name) ? `${options.name}-${options.type}` : options.type;
|
|
46
|
+
const packageName = isValid(options.ns) ? `${getValid(options.ns)}-${baseName}` : baseName;
|
|
47
|
+
|
|
48
|
+
generateFiles(tree, path.join(__dirname, 'files', options.type), packageRoot, options);
|
|
49
|
+
updateJson(tree, `${packageRoot}/package.json`, (packageJson) => {
|
|
50
|
+
packageJson['name'] = packageName;
|
|
51
|
+
return packageJson;
|
|
52
|
+
});
|
|
53
|
+
|
|
54
|
+
if (cmdLine) {
|
|
55
|
+
syncConfig(tree, packageRoot, options);
|
|
56
|
+
} else {
|
|
57
|
+
processFiles(tree, packageRoot, options);
|
|
58
|
+
await formatFiles(tree);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
export default addPackageGenerator;
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/schema",
|
|
3
|
+
"$id": "AddPackage",
|
|
4
|
+
"title": "",
|
|
5
|
+
"type": "object",
|
|
6
|
+
"properties": {
|
|
7
|
+
"ns": {
|
|
8
|
+
"type": "string",
|
|
9
|
+
"description": "The project namespace(optional)",
|
|
10
|
+
"x-prompt": "What namespace would you like to use?(optional)"
|
|
11
|
+
},
|
|
12
|
+
"name": {
|
|
13
|
+
"type": "string",
|
|
14
|
+
"description": "",
|
|
15
|
+
"x-prompt": "What name would you like to use to this module?"
|
|
16
|
+
},
|
|
17
|
+
"directory": {
|
|
18
|
+
"type": "string",
|
|
19
|
+
"description": "",
|
|
20
|
+
"x-prompt": "What directory would you like to create in?"
|
|
21
|
+
},
|
|
22
|
+
"packageType": {
|
|
23
|
+
"type": "string",
|
|
24
|
+
"description": "",
|
|
25
|
+
"x-prompt": "What type of package would you like to create in Client|Browser|Core|Server|All?(default: All)"
|
|
26
|
+
}
|
|
27
|
+
},
|
|
28
|
+
"required": ["name", "directory"]
|
|
29
|
+
}
|
package/src/index.ts
CHANGED
|
@@ -2,9 +2,6 @@ export * from './generators/add-frontend/generator';
|
|
|
2
2
|
export * from './generators/add-backend/generator';
|
|
3
3
|
export * from './generators/add-fullstack/generator';
|
|
4
4
|
export * from './generators/add-moleculer/generator';
|
|
5
|
-
export * from './generators/add-
|
|
6
|
-
export * from './generators/add-client-package/generator';
|
|
7
|
-
export * from './generators/add-core-package/generator';
|
|
8
|
-
export * from './generators/add-server-package/generator';
|
|
5
|
+
export * from './generators/add-package/generator';
|
|
9
6
|
export { default as updateDeployVersion } from './executors/update-deploy-version/executor';
|
|
10
7
|
export { default as sortPackageJson } from './executors/sort-package-json/executor';
|