@common-stack/generate-plugin 6.0.2-alpha.2 → 6.0.2-alpha.4
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 +8 -0
- package/lib/generators/add-browser-package/files/package.json +1 -1
- package/lib/generators/add-frontend/templates/package.json +2 -2
- package/lib/generators/add-fullstack/files/Jenkinsfile +3 -6
- package/lib/generators/add-fullstack/files/package.json +5 -17
- package/lib/generators/add-fullstack/files/tools/sortPackageJson.mjs +8 -1
- package/lib/generators/add-fullstack/generator.cjs +22 -25
- package/lib/generators/add-fullstack/generator.cjs.map +1 -1
- package/lib/generators/add-fullstack/generator.mjs +20 -23
- package/lib/generators/add-fullstack/generator.mjs.map +1 -1
- package/lib/generators/add-fullstack/schema.json +5 -0
- package/lib/generators/add-fullstack/updates/index.d.ts +2 -0
- package/lib/generators/add-fullstack/updates/jenkinsfileUpdate.cjs +27 -0
- package/lib/generators/add-fullstack/updates/jenkinsfileUpdate.cjs.map +1 -0
- package/lib/generators/add-fullstack/updates/jenkinsfileUpdate.d.ts +1 -0
- package/lib/generators/add-fullstack/updates/jenkinsfileUpdate.mjs +27 -0
- package/lib/generators/add-fullstack/updates/jenkinsfileUpdate.mjs.map +1 -0
- package/lib/generators/add-fullstack/updates/packageJsonUpdate.cjs +8 -0
- package/lib/generators/add-fullstack/updates/packageJsonUpdate.cjs.map +1 -0
- package/lib/generators/add-fullstack/updates/packageJsonUpdate.d.ts +2 -0
- package/lib/generators/add-fullstack/updates/packageJsonUpdate.mjs +8 -0
- package/lib/generators/add-fullstack/updates/packageJsonUpdate.mjs.map +1 -0
- package/lib/generators/add-moleculer/files/package.json +5 -5
- package/lib/generators/add-server-package/files/package.json +3 -3
- package/package.json +2 -2
- package/src/generators/add-fullstack/files/Jenkinsfile +3 -6
- package/src/generators/add-fullstack/files/package.json +5 -17
- package/src/generators/add-fullstack/files/tools/sortPackageJson.mjs +8 -1
- package/src/generators/add-fullstack/generator.ts +41 -35
- package/src/generators/add-fullstack/schema.d.ts +2 -1
- package/src/generators/add-fullstack/schema.json +5 -0
- package/src/generators/add-fullstack/updates/index.ts +2 -0
- package/src/generators/add-fullstack/updates/jenkinsfileUpdate.ts +36 -0
- package/src/generators/add-fullstack/updates/packageJsonUpdate.ts +11 -0
- package/src/generators/add-moleculer/files/package.json +5 -5
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,14 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
## [6.0.2-alpha.4](https://github.com/cdmbase/common-stack/compare/v6.0.2-alpha.3...v6.0.2-alpha.4) (2024-08-23)
|
|
7
|
+
|
|
8
|
+
**Note:** Version bump only for package @common-stack/generate-plugin
|
|
9
|
+
|
|
10
|
+
## [6.0.2-alpha.3](https://github.com/cdmbase/common-stack/compare/v6.0.2-alpha.2...v6.0.2-alpha.3) (2024-08-23)
|
|
11
|
+
|
|
12
|
+
**Note:** Version bump only for package @common-stack/generate-plugin
|
|
13
|
+
|
|
6
14
|
## [6.0.2-alpha.2](https://github.com/cdmbase/common-stack/compare/v6.0.2-alpha.1...v6.0.2-alpha.2) (2024-08-22)
|
|
7
15
|
|
|
8
16
|
**Note:** Version bump only for package @common-stack/generate-plugin
|
|
@@ -99,8 +99,8 @@
|
|
|
99
99
|
},
|
|
100
100
|
"devDependencies": {
|
|
101
101
|
"@cdmbase/vite-plugin-i18next-loader": "^2.0.12",
|
|
102
|
-
"@common-stack/frontend-stack-react": "6.0.2-alpha.
|
|
103
|
-
"@common-stack/rollup-vite-utils": "6.0.2-alpha.
|
|
102
|
+
"@common-stack/frontend-stack-react": "6.0.2-alpha.2",
|
|
103
|
+
"@common-stack/rollup-vite-utils": "6.0.2-alpha.2",
|
|
104
104
|
"@remix-run/dev": "^2.8.1",
|
|
105
105
|
"@remix-run/serve": "^2.8.1",
|
|
106
106
|
"cross-env": "^7.0.3",
|
|
@@ -38,7 +38,7 @@ pipeline {
|
|
|
38
38
|
string(name: 'BUILD_TIME_OUT', defaultValue: '120', description: 'Build timeout in minutes', trim: true)
|
|
39
39
|
}
|
|
40
40
|
|
|
41
|
-
|
|
41
|
+
// Setup common + secret key variables for pipeline.
|
|
42
42
|
environment {
|
|
43
43
|
BUILD_COMMAND = getBuildCommand()
|
|
44
44
|
NAMESPACE = "${params.BASE_NAMESPACE}-${params.VERSION}"
|
|
@@ -86,7 +86,6 @@ pipeline {
|
|
|
86
86
|
sh """
|
|
87
87
|
echo "what is docker git version $GIT_BRANCH_NAME -- ${params.ENV_CHOICE}"
|
|
88
88
|
${params.BUILD_STRATEGY} install
|
|
89
|
-
${params.BUILD_STRATEGY} run lerna
|
|
90
89
|
"""
|
|
91
90
|
}
|
|
92
91
|
}
|
|
@@ -99,7 +98,7 @@ pipeline {
|
|
|
99
98
|
sshagent(credentials: [params.GIT_CREDENTIAL_ID]) {
|
|
100
99
|
sh """
|
|
101
100
|
rm .npmrc
|
|
102
|
-
lerna exec --scope=*mobile-device ${params.BUILD_STRATEGY} ${env.BUILD_COMMAND}
|
|
101
|
+
npx lerna exec --scope=*mobile-device ${params.BUILD_STRATEGY} ${env.BUILD_COMMAND}
|
|
103
102
|
git checkout -- .npmrc
|
|
104
103
|
yarn gitcommit
|
|
105
104
|
git pull origin ${params.REPOSITORY_BRANCH}
|
|
@@ -145,7 +144,6 @@ pipeline {
|
|
|
145
144
|
git merge ${env.GIT_PR_BRANCH_NAME} -m 'auto merging ${params.GIT_PR_BRANCH_NAME} \r\n[skip ci]'
|
|
146
145
|
git push origin ${params.DEVELOP_BRANCH}
|
|
147
146
|
${params.BUILD_STRATEGY} install
|
|
148
|
-
${params.BUILD_STRATEGY} run lerna
|
|
149
147
|
${params.BUILD_STRATEGY} run build
|
|
150
148
|
"""
|
|
151
149
|
script {
|
|
@@ -278,7 +276,6 @@ pipeline {
|
|
|
278
276
|
git checkout ${params.REPOSITORY_BRANCH}
|
|
279
277
|
git merge origin/${params.DEVELOP_BRANCH} -m 'auto merging ${params.DEVELOP_BRANCH} \r\n[skip ci]'
|
|
280
278
|
${params.BUILD_STRATEGY} install
|
|
281
|
-
${params.BUILD_STRATEGY} run lerna
|
|
282
279
|
"""
|
|
283
280
|
script {
|
|
284
281
|
GIT_BRANCH_NAME = params.REPOSITORY_BRANCH
|
|
@@ -648,7 +645,7 @@ def buildAndPushDockerImage(server, name, version) {
|
|
|
648
645
|
echo "Docker image ${REPOSITORY_SERVER}/${name}:${version} already exists. Skipping build."
|
|
649
646
|
} else {
|
|
650
647
|
sh """
|
|
651
|
-
lerna exec --scope=*${server} ${params.BUILD_STRATEGY} run docker:${env.BUILD_COMMAND};
|
|
648
|
+
npx lerna exec --scope=*${server} ${params.BUILD_STRATEGY} run docker:${env.BUILD_COMMAND};
|
|
652
649
|
docker tag ${name}:${version} ${REPOSITORY_SERVER}/${name}:${version}
|
|
653
650
|
docker push ${REPOSITORY_SERVER}/${name}:${version}
|
|
654
651
|
docker rmi ${REPOSITORY_SERVER}/${name}:${version}
|
|
@@ -102,27 +102,15 @@
|
|
|
102
102
|
"commit-msg": "commitlint -E HUSKY_GIT_PARAMS"
|
|
103
103
|
}
|
|
104
104
|
},
|
|
105
|
-
"lint-staged": {
|
|
106
|
-
"*.md": [
|
|
107
|
-
"yarn format:md",
|
|
108
|
-
"git add"
|
|
109
|
-
],
|
|
110
|
-
"*.{js,jsx,ts,tsx}": [
|
|
111
|
-
"eslint --fix",
|
|
112
|
-
"git add"
|
|
113
|
-
],
|
|
114
|
-
"package.json": "sort-package-json --check package.json */**/package.json "
|
|
115
|
-
},
|
|
116
105
|
"resolutions": {
|
|
117
106
|
"@apollo/client": "^3.9.0",
|
|
118
107
|
"@types/react": "^18.0.25",
|
|
119
108
|
"@types/react-dom": "^18.0.8",
|
|
120
|
-
"chokidar": "^3.5.3",
|
|
121
109
|
"html-to-text": "^8.0.0",
|
|
122
|
-
"react": "18.
|
|
123
|
-
"react-dom": "18.
|
|
124
|
-
"react-native": "0.
|
|
125
|
-
"react-native-gesture-handler": "~2.
|
|
110
|
+
"react": "18.3.0-canary-c3048aab4-20240326",
|
|
111
|
+
"react-dom": "18.3.0-canary-c3048aab4-20240326",
|
|
112
|
+
"react-native": "0.72.10",
|
|
113
|
+
"react-native-gesture-handler": "~2.12.0"
|
|
126
114
|
},
|
|
127
115
|
"dependencies": {
|
|
128
116
|
"dataloader": "^2.1.0",
|
|
@@ -159,7 +147,7 @@
|
|
|
159
147
|
"@babel/preset-typescript": "^7.18.6",
|
|
160
148
|
"@babel/register": "^7.18.9",
|
|
161
149
|
"@babel/runtime": "^7.20.1",
|
|
162
|
-
"@common-stack/env-list-loader": "6.0.2-alpha.
|
|
150
|
+
"@common-stack/env-list-loader": "6.0.2-alpha.2",
|
|
163
151
|
"@emotion/babel-plugin": "^11.11.0",
|
|
164
152
|
"@graphql-codegen/add": "^5.0.2",
|
|
165
153
|
"@graphql-codegen/cli": "^5.0.2",
|
|
@@ -11,23 +11,28 @@ const sortPackageJson = await import('sort-package-json').then(module => module.
|
|
|
11
11
|
|
|
12
12
|
// Directories to process
|
|
13
13
|
const directories = [
|
|
14
|
+
path.join(__dirname, '../'),
|
|
15
|
+
path.join(__dirname, '../packages-modules'),
|
|
14
16
|
path.join(__dirname, '../packages'),
|
|
15
17
|
path.join(__dirname, '../servers'),
|
|
16
18
|
path.join(__dirname, '../portable-devices')
|
|
17
19
|
];
|
|
18
20
|
|
|
21
|
+
// Function to sort a single package.json file
|
|
19
22
|
async function sortPackageJsonFile(filePath) {
|
|
20
23
|
const packageJson = JSON.parse(await fsPromises.readFile(filePath, 'utf8'));
|
|
21
24
|
const sortedPackageJson = sortPackageJson(packageJson);
|
|
22
25
|
await fsPromises.writeFile(filePath, JSON.stringify(sortedPackageJson, null, 2) + '\n');
|
|
23
26
|
}
|
|
24
27
|
|
|
28
|
+
// Recursive function to sort all package.json files in a directory, skipping node_modules
|
|
25
29
|
async function sortAllPackageJsonFiles(dir) {
|
|
26
30
|
const files = await fsPromises.readdir(dir);
|
|
27
31
|
for (const file of files) {
|
|
28
32
|
const fullPath = path.join(dir, file);
|
|
29
33
|
const stat = await fsPromises.lstat(fullPath);
|
|
30
|
-
|
|
34
|
+
|
|
35
|
+
if (stat.isDirectory() && file !== 'node_modules') {
|
|
31
36
|
await sortAllPackageJsonFiles(fullPath);
|
|
32
37
|
} else if (file === 'package.json') {
|
|
33
38
|
await sortPackageJsonFile(fullPath);
|
|
@@ -36,10 +41,12 @@ async function sortAllPackageJsonFiles(dir) {
|
|
|
36
41
|
}
|
|
37
42
|
}
|
|
38
43
|
|
|
44
|
+
// Function to process all directories
|
|
39
45
|
async function processDirectories(dirs) {
|
|
40
46
|
for (const dir of dirs) {
|
|
41
47
|
await sortAllPackageJsonFiles(dir);
|
|
42
48
|
}
|
|
43
49
|
}
|
|
44
50
|
|
|
51
|
+
// Execute the sorting process
|
|
45
52
|
await processDirectories(directories);
|
|
@@ -1,24 +1,21 @@
|
|
|
1
|
-
'use strict';Object.defineProperty(exports,'__esModule',{value:true});var tslib=require('tslib'),devkit=require('@nx/devkit'),path=require('path'),fs=require('fs'),index=require('../../utils/index.cjs'),generator$2=require('../add-frontend/generator.cjs'),generator$1=require('../add-backend/generator.cjs'),generator=require('../add-moleculer/generator.cjs'),generator$5=require('../add-browser-package/generator.cjs'),generator$4=require('../add-client-package/generator.cjs'),generator$6=require('../add-core-package/generator.cjs'),generator$3=require('../add-server-package/generator.cjs');require('../../executors/update-deploy-version/executor.cjs');function _interopNamespaceDefault(e){var n=Object.create(null);if(e){Object.keys(e).forEach(function(k){if(k!=='default'){var d=Object.getOwnPropertyDescriptor(e,k);Object.defineProperty(n,k,d.get?d:{enumerable:true,get:function(){return e[k]}});}})}n.default=e;return Object.freeze(n)}var path__namespace=/*#__PURE__*/_interopNamespaceDefault(path);function addFullstackGenerator(tree, options) {
|
|
1
|
+
'use strict';Object.defineProperty(exports,'__esModule',{value:true});var tslib=require('tslib'),devkit=require('@nx/devkit'),path=require('path'),fs=require('fs'),index=require('../../utils/index.cjs'),jenkinsfileUpdate=require('./updates/jenkinsfileUpdate.cjs'),packageJsonUpdate=require('./updates/packageJsonUpdate.cjs'),generator$2=require('../add-frontend/generator.cjs'),generator$1=require('../add-backend/generator.cjs'),generator=require('../add-moleculer/generator.cjs'),generator$5=require('../add-browser-package/generator.cjs'),generator$4=require('../add-client-package/generator.cjs'),generator$6=require('../add-core-package/generator.cjs'),generator$3=require('../add-server-package/generator.cjs');require('../../executors/update-deploy-version/executor.cjs');function _interopNamespaceDefault(e){var n=Object.create(null);if(e){Object.keys(e).forEach(function(k){if(k!=='default'){var d=Object.getOwnPropertyDescriptor(e,k);Object.defineProperty(n,k,d.get?d:{enumerable:true,get:function(){return e[k]}});}})}n.default=e;return Object.freeze(n)}var path__namespace=/*#__PURE__*/_interopNamespaceDefault(path);var fs__namespace=/*#__PURE__*/_interopNamespaceDefault(fs);function addFullstackGenerator(tree, options) {
|
|
2
2
|
return tslib.__awaiter(this, void 0, void 0, function* () {
|
|
3
3
|
var _a;
|
|
4
|
-
const
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
// projectType: 'library',
|
|
8
|
-
// sourceRoot: `${projectRoot}/src`,
|
|
9
|
-
// targets: {},
|
|
10
|
-
// });
|
|
4
|
+
const basePath = options.path || '';
|
|
5
|
+
const projectRoot = path__namespace.join(basePath, (_a = index.getValid(options.name)) !== null && _a !== void 0 ? _a : 'fullstack-pro');
|
|
6
|
+
console.log(`basePath: ${basePath}`);
|
|
11
7
|
devkit.generateFiles(tree, path__namespace.join(__dirname, 'files'), projectRoot, options);
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
8
|
+
// Update Jenkinsfile with dynamic values
|
|
9
|
+
const jenkinsFilePath = path__namespace.join(projectRoot, 'Jenkinsfile');
|
|
10
|
+
jenkinsfileUpdate.updateJenkinsFile(jenkinsFilePath, options.name);
|
|
11
|
+
// Update package.json with the project name
|
|
12
|
+
packageJsonUpdate.updatePackageJson(tree, projectRoot, index.getValid(options.name));
|
|
16
13
|
yield devkit.formatFiles(tree);
|
|
17
14
|
if (index.isValid(options.config)) {
|
|
18
|
-
const configPath = index.getValid(options.config);
|
|
19
|
-
if (
|
|
15
|
+
const configPath = path__namespace.resolve(basePath, index.getValid(options.config));
|
|
16
|
+
if (fs__namespace.existsSync(configPath)) {
|
|
20
17
|
try {
|
|
21
|
-
const content = String(
|
|
18
|
+
const content = String(fs__namespace.readFileSync(configPath));
|
|
22
19
|
const configs = JSON.parse(content);
|
|
23
20
|
configs.parent = projectRoot;
|
|
24
21
|
yield processConfigs(tree, configs);
|
|
@@ -30,19 +27,11 @@
|
|
|
30
27
|
}
|
|
31
28
|
});
|
|
32
29
|
}
|
|
33
|
-
const processConfigs = (tree, configs) => tslib.__awaiter(void 0, void 0, void 0, function* () {
|
|
34
|
-
if (configs.servers) {
|
|
35
|
-
yield generateServers(tree, configs.parent, configs.servers);
|
|
36
|
-
}
|
|
37
|
-
if (configs.packages && configs.packages.modules) {
|
|
38
|
-
yield generatePackages(tree, configs.parent, configs.packages.modules);
|
|
39
|
-
}
|
|
40
|
-
});
|
|
41
30
|
const generateServers = (tree, parent, servers) => tslib.__awaiter(void 0, void 0, void 0, function* () {
|
|
42
31
|
for (const [serverName, serverConfig] of Object.entries(servers)) {
|
|
43
32
|
const configs = serverConfig;
|
|
44
33
|
configs.name = serverName;
|
|
45
|
-
configs.directory =
|
|
34
|
+
configs.directory = path__namespace.join(parent, 'servers');
|
|
46
35
|
switch (configs === null || configs === void 0 ? void 0 : configs.type) {
|
|
47
36
|
case 'frontend':
|
|
48
37
|
yield generator$2.generateFrontend(tree, configs);
|
|
@@ -60,7 +49,7 @@ const generatePackages = (tree, parent, packages) => tslib.__awaiter(void 0, voi
|
|
|
60
49
|
for (const [packageName, packageConfig] of Object.entries(packages)) {
|
|
61
50
|
const configs = packageConfig;
|
|
62
51
|
configs.name = packageName;
|
|
63
|
-
configs.directory =
|
|
52
|
+
configs.directory = path__namespace.join(parent, 'packages');
|
|
64
53
|
switch (packageConfig === null || packageConfig === void 0 ? void 0 : packageConfig.type) {
|
|
65
54
|
case 'packages-core':
|
|
66
55
|
yield generator$6.generateCorePackage(tree, configs);
|
|
@@ -76,4 +65,12 @@ const generatePackages = (tree, parent, packages) => tslib.__awaiter(void 0, voi
|
|
|
76
65
|
break;
|
|
77
66
|
}
|
|
78
67
|
}
|
|
68
|
+
});
|
|
69
|
+
const processConfigs = (tree, configs) => tslib.__awaiter(void 0, void 0, void 0, function* () {
|
|
70
|
+
if (configs.servers) {
|
|
71
|
+
yield generateServers(tree, configs.parent, configs.servers);
|
|
72
|
+
}
|
|
73
|
+
if (configs.packages && configs.packages.modules) {
|
|
74
|
+
yield generatePackages(tree, configs.parent, configs.packages.modules);
|
|
75
|
+
}
|
|
79
76
|
});exports.addFullstackGenerator=addFullstackGenerator;exports.default=addFullstackGenerator;//# sourceMappingURL=generator.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generator.cjs","sources":["../../../src/generators/add-fullstack/generator.ts"],"sourcesContent":[null],"names":["getValid","generateFiles","
|
|
1
|
+
{"version":3,"file":"generator.cjs","sources":["../../../src/generators/add-fullstack/generator.ts"],"sourcesContent":[null],"names":["path","getValid","generateFiles","updateJenkinsFile","updatePackageJson","formatFiles","isValid","fs","__awaiter","generateFrontend","generateBackend","generateMoleculer","generateCorePackage","generateBrowserPackage","generateClientPackage","generateServerPackage"],"mappings":"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"}
|
|
@@ -1,21 +1,18 @@
|
|
|
1
|
-
import {__awaiter}from'tslib';import {generateFiles,
|
|
1
|
+
import {__awaiter}from'tslib';import {generateFiles,formatFiles}from'@nx/devkit';import*as path from'path';import*as fs from'fs';import {getValid,isValid}from'../../utils/index.mjs';import {updateJenkinsFile}from'./updates/jenkinsfileUpdate.mjs';import {updatePackageJson}from'./updates/packageJsonUpdate.mjs';import {generateFrontend}from'../add-frontend/generator.mjs';import {generateBackend}from'../add-backend/generator.mjs';import {generateMoleculer}from'../add-moleculer/generator.mjs';import {generateBrowserPackage}from'../add-browser-package/generator.mjs';import {generateClientPackage}from'../add-client-package/generator.mjs';import {generateCorePackage}from'../add-core-package/generator.mjs';import {generateServerPackage}from'../add-server-package/generator.mjs';import'../../executors/update-deploy-version/executor.mjs';function addFullstackGenerator(tree, options) {
|
|
2
2
|
return __awaiter(this, void 0, void 0, function* () {
|
|
3
3
|
var _a;
|
|
4
|
-
const
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
// projectType: 'library',
|
|
8
|
-
// sourceRoot: `${projectRoot}/src`,
|
|
9
|
-
// targets: {},
|
|
10
|
-
// });
|
|
4
|
+
const basePath = options.path || '';
|
|
5
|
+
const projectRoot = path.join(basePath, (_a = getValid(options.name)) !== null && _a !== void 0 ? _a : 'fullstack-pro');
|
|
6
|
+
console.log(`basePath: ${basePath}`);
|
|
11
7
|
generateFiles(tree, path.join(__dirname, 'files'), projectRoot, options);
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
8
|
+
// Update Jenkinsfile with dynamic values
|
|
9
|
+
const jenkinsFilePath = path.join(projectRoot, 'Jenkinsfile');
|
|
10
|
+
updateJenkinsFile(jenkinsFilePath, options.name);
|
|
11
|
+
// Update package.json with the project name
|
|
12
|
+
updatePackageJson(tree, projectRoot, getValid(options.name));
|
|
16
13
|
yield formatFiles(tree);
|
|
17
14
|
if (isValid(options.config)) {
|
|
18
|
-
const configPath = getValid(options.config);
|
|
15
|
+
const configPath = path.resolve(basePath, getValid(options.config));
|
|
19
16
|
if (fs.existsSync(configPath)) {
|
|
20
17
|
try {
|
|
21
18
|
const content = String(fs.readFileSync(configPath));
|
|
@@ -30,19 +27,11 @@ import {__awaiter}from'tslib';import {generateFiles,updateJson,formatFiles}from'
|
|
|
30
27
|
}
|
|
31
28
|
});
|
|
32
29
|
}
|
|
33
|
-
const processConfigs = (tree, configs) => __awaiter(void 0, void 0, void 0, function* () {
|
|
34
|
-
if (configs.servers) {
|
|
35
|
-
yield generateServers(tree, configs.parent, configs.servers);
|
|
36
|
-
}
|
|
37
|
-
if (configs.packages && configs.packages.modules) {
|
|
38
|
-
yield generatePackages(tree, configs.parent, configs.packages.modules);
|
|
39
|
-
}
|
|
40
|
-
});
|
|
41
30
|
const generateServers = (tree, parent, servers) => __awaiter(void 0, void 0, void 0, function* () {
|
|
42
31
|
for (const [serverName, serverConfig] of Object.entries(servers)) {
|
|
43
32
|
const configs = serverConfig;
|
|
44
33
|
configs.name = serverName;
|
|
45
|
-
configs.directory =
|
|
34
|
+
configs.directory = path.join(parent, 'servers');
|
|
46
35
|
switch (configs === null || configs === void 0 ? void 0 : configs.type) {
|
|
47
36
|
case 'frontend':
|
|
48
37
|
yield generateFrontend(tree, configs);
|
|
@@ -60,7 +49,7 @@ const generatePackages = (tree, parent, packages) => __awaiter(void 0, void 0, v
|
|
|
60
49
|
for (const [packageName, packageConfig] of Object.entries(packages)) {
|
|
61
50
|
const configs = packageConfig;
|
|
62
51
|
configs.name = packageName;
|
|
63
|
-
configs.directory =
|
|
52
|
+
configs.directory = path.join(parent, 'packages');
|
|
64
53
|
switch (packageConfig === null || packageConfig === void 0 ? void 0 : packageConfig.type) {
|
|
65
54
|
case 'packages-core':
|
|
66
55
|
yield generateCorePackage(tree, configs);
|
|
@@ -76,4 +65,12 @@ const generatePackages = (tree, parent, packages) => __awaiter(void 0, void 0, v
|
|
|
76
65
|
break;
|
|
77
66
|
}
|
|
78
67
|
}
|
|
68
|
+
});
|
|
69
|
+
const processConfigs = (tree, configs) => __awaiter(void 0, void 0, void 0, function* () {
|
|
70
|
+
if (configs.servers) {
|
|
71
|
+
yield generateServers(tree, configs.parent, configs.servers);
|
|
72
|
+
}
|
|
73
|
+
if (configs.packages && configs.packages.modules) {
|
|
74
|
+
yield generatePackages(tree, configs.parent, configs.packages.modules);
|
|
75
|
+
}
|
|
79
76
|
});export{addFullstackGenerator,addFullstackGenerator as default};//# sourceMappingURL=generator.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generator.mjs","sources":["../../../src/generators/add-fullstack/generator.ts"],"sourcesContent":[null],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"generator.mjs","sources":["../../../src/generators/add-fullstack/generator.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
@@ -12,6 +12,11 @@
|
|
|
12
12
|
"config": {
|
|
13
13
|
"type": "string",
|
|
14
14
|
"description": "The absolute path of config file"
|
|
15
|
+
},
|
|
16
|
+
"path": {
|
|
17
|
+
"type": "string",
|
|
18
|
+
"description": "The base path where the project will be created or updated",
|
|
19
|
+
"x-prompt": "Where do you want to create or update the project? (Leave empty for the current directory)"
|
|
15
20
|
}
|
|
16
21
|
},
|
|
17
22
|
"required": ["name"]
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
'use strict';var fs=require('fs');function updateJenkinsFile(filePath, name) {
|
|
2
|
+
const paramsToUpdate = {
|
|
3
|
+
BASE_NAMESPACE: name,
|
|
4
|
+
CONNECTION_ID: name,
|
|
5
|
+
WORKSPACE_ID: name,
|
|
6
|
+
UNIQUE_NAME: name,
|
|
7
|
+
};
|
|
8
|
+
let jenkinsFileContent = '';
|
|
9
|
+
if (fs.existsSync(filePath)) {
|
|
10
|
+
jenkinsFileContent = fs.readFileSync(filePath, 'utf-8');
|
|
11
|
+
}
|
|
12
|
+
const updatedContent = jenkinsFileContent.split('\n').map(line => {
|
|
13
|
+
for (const param in paramsToUpdate) {
|
|
14
|
+
if (line.includes(`string(name: '${param}'`)) {
|
|
15
|
+
return line.replace(/defaultValue: '.*'/, `defaultValue: '${paramsToUpdate[param]}'`);
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
return line;
|
|
19
|
+
}).join('\n');
|
|
20
|
+
// Add missing parameters
|
|
21
|
+
Object.keys(paramsToUpdate).forEach(param => {
|
|
22
|
+
if (!updatedContent.includes(`string(name: '${param}'`)) {
|
|
23
|
+
updatedContent.concat(`string(name: '${param}', defaultValue: '${paramsToUpdate[param]}', description: '${param.replace(/_/g, ' ').toLowerCase()}')\n`);
|
|
24
|
+
}
|
|
25
|
+
});
|
|
26
|
+
fs.writeFileSync(filePath, updatedContent, 'utf-8');
|
|
27
|
+
}exports.updateJenkinsFile=updateJenkinsFile;//# sourceMappingURL=jenkinsfileUpdate.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"jenkinsfileUpdate.cjs","sources":["../../../../src/generators/add-fullstack/updates/jenkinsfileUpdate.ts"],"sourcesContent":[null],"names":[],"mappings":"kCAGgB,SAAA,iBAAiB,CAAC,QAAgB,EAAE,IAAY,EAAA;AAC5D,IAAA,MAAM,cAAc,GAAG;AACnB,QAAA,cAAc,EAAE,IAAI;AACpB,QAAA,aAAa,EAAE,IAAI;AACnB,QAAA,YAAY,EAAE,IAAI;AAClB,QAAA,WAAW,EAAE,IAAI;KACpB,CAAC;IAEF,IAAI,kBAAkB,GAAG,EAAE,CAAC;AAC5B,IAAA,IAAI,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE;QACzB,kBAAkB,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;KAC3D;AAED,IAAA,MAAM,cAAc,GAAG,kBAAkB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,IAAG;AAC7D,QAAA,KAAK,MAAM,KAAK,IAAI,cAAc,EAAE;YAChC,IAAI,IAAI,CAAC,QAAQ,CAAC,iBAAiB,KAAK,CAAA,CAAA,CAAG,CAAC,EAAE;AAC1C,gBAAA,OAAO,IAAI,CAAC,OAAO,CAAC,oBAAoB,EAAE,CAAkB,eAAA,EAAA,cAAc,CAAC,KAAK,CAAC,CAAA,CAAA,CAAG,CAAC,CAAC;aACzF;SACJ;AACD,QAAA,OAAO,IAAI,CAAC;AAChB,KAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;;IAGd,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,OAAO,CAAC,KAAK,IAAG;QACxC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,iBAAiB,KAAK,CAAA,CAAA,CAAG,CAAC,EAAE;YACrD,cAAc,CAAC,MAAM,CACjB,CAAiB,cAAA,EAAA,KAAK,qBAAqB,cAAc,CAAC,KAAK,CAAC,CAAoB,iBAAA,EAAA,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,WAAW,EAAE,CAAM,IAAA,CAAA,CACnI,CAAC;SACL;AACL,KAAC,CAAC,CAAC;IAEH,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,cAAc,EAAE,OAAO,CAAC,CAAC;AACxD"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function updateJenkinsFile(filePath: string, name: string): void;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import fs__default from'fs';function updateJenkinsFile(filePath, name) {
|
|
2
|
+
const paramsToUpdate = {
|
|
3
|
+
BASE_NAMESPACE: name,
|
|
4
|
+
CONNECTION_ID: name,
|
|
5
|
+
WORKSPACE_ID: name,
|
|
6
|
+
UNIQUE_NAME: name,
|
|
7
|
+
};
|
|
8
|
+
let jenkinsFileContent = '';
|
|
9
|
+
if (fs__default.existsSync(filePath)) {
|
|
10
|
+
jenkinsFileContent = fs__default.readFileSync(filePath, 'utf-8');
|
|
11
|
+
}
|
|
12
|
+
const updatedContent = jenkinsFileContent.split('\n').map(line => {
|
|
13
|
+
for (const param in paramsToUpdate) {
|
|
14
|
+
if (line.includes(`string(name: '${param}'`)) {
|
|
15
|
+
return line.replace(/defaultValue: '.*'/, `defaultValue: '${paramsToUpdate[param]}'`);
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
return line;
|
|
19
|
+
}).join('\n');
|
|
20
|
+
// Add missing parameters
|
|
21
|
+
Object.keys(paramsToUpdate).forEach(param => {
|
|
22
|
+
if (!updatedContent.includes(`string(name: '${param}'`)) {
|
|
23
|
+
updatedContent.concat(`string(name: '${param}', defaultValue: '${paramsToUpdate[param]}', description: '${param.replace(/_/g, ' ').toLowerCase()}')\n`);
|
|
24
|
+
}
|
|
25
|
+
});
|
|
26
|
+
fs__default.writeFileSync(filePath, updatedContent, 'utf-8');
|
|
27
|
+
}export{updateJenkinsFile};//# sourceMappingURL=jenkinsfileUpdate.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"jenkinsfileUpdate.mjs","sources":["../../../../src/generators/add-fullstack/updates/jenkinsfileUpdate.ts"],"sourcesContent":[null],"names":["fs"],"mappings":"4BAGgB,SAAA,iBAAiB,CAAC,QAAgB,EAAE,IAAY,EAAA;AAC5D,IAAA,MAAM,cAAc,GAAG;AACnB,QAAA,cAAc,EAAE,IAAI;AACpB,QAAA,aAAa,EAAE,IAAI;AACnB,QAAA,YAAY,EAAE,IAAI;AAClB,QAAA,WAAW,EAAE,IAAI;KACpB,CAAC;IAEF,IAAI,kBAAkB,GAAG,EAAE,CAAC;AAC5B,IAAA,IAAIA,WAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE;QACzB,kBAAkB,GAAGA,WAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;KAC3D;AAED,IAAA,MAAM,cAAc,GAAG,kBAAkB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,IAAG;AAC7D,QAAA,KAAK,MAAM,KAAK,IAAI,cAAc,EAAE;YAChC,IAAI,IAAI,CAAC,QAAQ,CAAC,iBAAiB,KAAK,CAAA,CAAA,CAAG,CAAC,EAAE;AAC1C,gBAAA,OAAO,IAAI,CAAC,OAAO,CAAC,oBAAoB,EAAE,CAAkB,eAAA,EAAA,cAAc,CAAC,KAAK,CAAC,CAAA,CAAA,CAAG,CAAC,CAAC;aACzF;SACJ;AACD,QAAA,OAAO,IAAI,CAAC;AAChB,KAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;;IAGd,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,OAAO,CAAC,KAAK,IAAG;QACxC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,iBAAiB,KAAK,CAAA,CAAA,CAAG,CAAC,EAAE;YACrD,cAAc,CAAC,MAAM,CACjB,CAAiB,cAAA,EAAA,KAAK,qBAAqB,cAAc,CAAC,KAAK,CAAC,CAAoB,iBAAA,EAAA,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,WAAW,EAAE,CAAM,IAAA,CAAA,CACnI,CAAC;SACL;AACL,KAAC,CAAC,CAAC;IAEHA,WAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,cAAc,EAAE,OAAO,CAAC,CAAC;AACxD"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
'use strict';var devkit=require('@nx/devkit'),path=require('path');function _interopNamespaceDefault(e){var n=Object.create(null);if(e){Object.keys(e).forEach(function(k){if(k!=='default'){var d=Object.getOwnPropertyDescriptor(e,k);Object.defineProperty(n,k,d.get?d:{enumerable:true,get:function(){return e[k]}});}})}n.default=e;return Object.freeze(n)}var path__namespace=/*#__PURE__*/_interopNamespaceDefault(path);function updatePackageJson(tree, projectRoot, name) {
|
|
2
|
+
const packageJsonPath = path__namespace.join(projectRoot, 'package.json');
|
|
3
|
+
devkit.updateJson(tree, packageJsonPath, (packageJson) => {
|
|
4
|
+
packageJson['name'] = name;
|
|
5
|
+
// You can add more custom logic here if needed
|
|
6
|
+
return packageJson;
|
|
7
|
+
});
|
|
8
|
+
}exports.updatePackageJson=updatePackageJson;//# sourceMappingURL=packageJsonUpdate.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"packageJsonUpdate.cjs","sources":["../../../../src/generators/add-fullstack/updates/packageJsonUpdate.ts"],"sourcesContent":[null],"names":["path","updateJson"],"mappings":"0aAGgB,iBAAiB,CAAC,IAAU,EAAE,WAAmB,EAAE,IAAY,EAAA;IAC3E,MAAM,eAAe,GAAGA,eAAI,CAAC,IAAI,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;IAC/DC,iBAAU,CAAC,IAAI,EAAE,eAAe,EAAE,CAAC,WAAW,KAAI;AAC9C,QAAA,WAAW,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;;AAE3B,QAAA,OAAO,WAAW,CAAC;AACvB,KAAC,CAAC,CAAC;AACP"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import {updateJson}from'@nx/devkit';import*as path from'path';function updatePackageJson(tree, projectRoot, name) {
|
|
2
|
+
const packageJsonPath = path.join(projectRoot, 'package.json');
|
|
3
|
+
updateJson(tree, packageJsonPath, (packageJson) => {
|
|
4
|
+
packageJson['name'] = name;
|
|
5
|
+
// You can add more custom logic here if needed
|
|
6
|
+
return packageJson;
|
|
7
|
+
});
|
|
8
|
+
}export{updatePackageJson};//# sourceMappingURL=packageJsonUpdate.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"packageJsonUpdate.mjs","sources":["../../../../src/generators/add-fullstack/updates/packageJsonUpdate.ts"],"sourcesContent":[null],"names":[],"mappings":"uEAGgB,iBAAiB,CAAC,IAAU,EAAE,WAAmB,EAAE,IAAY,EAAA;IAC3E,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;IAC/D,UAAU,CAAC,IAAI,EAAE,eAAe,EAAE,CAAC,WAAW,KAAI;AAC9C,QAAA,WAAW,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;;AAE3B,QAAA,OAAO,WAAW,CAAC;AACvB,KAAC,CAAC,CAAC;AACP"}
|
|
@@ -28,11 +28,11 @@
|
|
|
28
28
|
"@casl/ability": "^4.1.5",
|
|
29
29
|
"@cdm-logger/client": "^9.0.3",
|
|
30
30
|
"@cdm-logger/server": "^9.0.3",
|
|
31
|
-
"@common-stack/client-core": "6.0.2-alpha.
|
|
32
|
-
"@common-stack/core": "6.0.2-alpha.
|
|
33
|
-
"@common-stack/server-core": "6.0.2-alpha.
|
|
34
|
-
"@common-stack/server-stack": "6.0.2-alpha.
|
|
35
|
-
"@common-stack/store-mongo": "6.0.2-alpha.
|
|
31
|
+
"@common-stack/client-core": "6.0.2-alpha.2",
|
|
32
|
+
"@common-stack/core": "6.0.2-alpha.2",
|
|
33
|
+
"@common-stack/server-core": "6.0.2-alpha.2",
|
|
34
|
+
"@common-stack/server-stack": "6.0.2-alpha.2",
|
|
35
|
+
"@common-stack/store-mongo": "6.0.2-alpha.2",
|
|
36
36
|
"@container-stack/mailing-api": "5.2.1-alpha.1",
|
|
37
37
|
"app-root-path": "^3.0.0",
|
|
38
38
|
"body-parser": "^1.19.0",
|
|
@@ -62,9 +62,9 @@
|
|
|
62
62
|
"peerDependencies": {
|
|
63
63
|
"@apollo/client": ">=3.0.0",
|
|
64
64
|
"@cdm-logger/server": ">=9.0.3",
|
|
65
|
-
"@common-stack/core": "6.0.2-alpha.
|
|
66
|
-
"@common-stack/server-core": "6.0.2-alpha.
|
|
67
|
-
"@common-stack/store-mongo": "6.0.2-alpha.
|
|
65
|
+
"@common-stack/core": "6.0.2-alpha.2",
|
|
66
|
+
"@common-stack/server-core": "6.0.2-alpha.2",
|
|
67
|
+
"@common-stack/store-mongo": "6.0.2-alpha.2",
|
|
68
68
|
"@container-stack/mailing-api": ">=0.0.35-alpha.1",
|
|
69
69
|
"@vscode-alt/monaco-editor": "^0.21.4",
|
|
70
70
|
"inversify": "^5.0.1",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@common-stack/generate-plugin",
|
|
3
|
-
"version": "6.0.2-alpha.
|
|
3
|
+
"version": "6.0.2-alpha.4",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "./lib/index.mjs",
|
|
6
6
|
"typings": "./lib/index.d.ts",
|
|
@@ -26,5 +26,5 @@
|
|
|
26
26
|
},
|
|
27
27
|
"executors": "./executors.json",
|
|
28
28
|
"generators": "./generators.json",
|
|
29
|
-
"gitHead": "
|
|
29
|
+
"gitHead": "eaaa81948be163dfca7ba2faa7e0c6dc3d7f290d"
|
|
30
30
|
}
|
|
@@ -38,7 +38,7 @@ pipeline {
|
|
|
38
38
|
string(name: 'BUILD_TIME_OUT', defaultValue: '120', description: 'Build timeout in minutes', trim: true)
|
|
39
39
|
}
|
|
40
40
|
|
|
41
|
-
|
|
41
|
+
// Setup common + secret key variables for pipeline.
|
|
42
42
|
environment {
|
|
43
43
|
BUILD_COMMAND = getBuildCommand()
|
|
44
44
|
NAMESPACE = "${params.BASE_NAMESPACE}-${params.VERSION}"
|
|
@@ -86,7 +86,6 @@ pipeline {
|
|
|
86
86
|
sh """
|
|
87
87
|
echo "what is docker git version $GIT_BRANCH_NAME -- ${params.ENV_CHOICE}"
|
|
88
88
|
${params.BUILD_STRATEGY} install
|
|
89
|
-
${params.BUILD_STRATEGY} run lerna
|
|
90
89
|
"""
|
|
91
90
|
}
|
|
92
91
|
}
|
|
@@ -99,7 +98,7 @@ pipeline {
|
|
|
99
98
|
sshagent(credentials: [params.GIT_CREDENTIAL_ID]) {
|
|
100
99
|
sh """
|
|
101
100
|
rm .npmrc
|
|
102
|
-
lerna exec --scope=*mobile-device ${params.BUILD_STRATEGY} ${env.BUILD_COMMAND}
|
|
101
|
+
npx lerna exec --scope=*mobile-device ${params.BUILD_STRATEGY} ${env.BUILD_COMMAND}
|
|
103
102
|
git checkout -- .npmrc
|
|
104
103
|
yarn gitcommit
|
|
105
104
|
git pull origin ${params.REPOSITORY_BRANCH}
|
|
@@ -145,7 +144,6 @@ pipeline {
|
|
|
145
144
|
git merge ${env.GIT_PR_BRANCH_NAME} -m 'auto merging ${params.GIT_PR_BRANCH_NAME} \r\n[skip ci]'
|
|
146
145
|
git push origin ${params.DEVELOP_BRANCH}
|
|
147
146
|
${params.BUILD_STRATEGY} install
|
|
148
|
-
${params.BUILD_STRATEGY} run lerna
|
|
149
147
|
${params.BUILD_STRATEGY} run build
|
|
150
148
|
"""
|
|
151
149
|
script {
|
|
@@ -278,7 +276,6 @@ pipeline {
|
|
|
278
276
|
git checkout ${params.REPOSITORY_BRANCH}
|
|
279
277
|
git merge origin/${params.DEVELOP_BRANCH} -m 'auto merging ${params.DEVELOP_BRANCH} \r\n[skip ci]'
|
|
280
278
|
${params.BUILD_STRATEGY} install
|
|
281
|
-
${params.BUILD_STRATEGY} run lerna
|
|
282
279
|
"""
|
|
283
280
|
script {
|
|
284
281
|
GIT_BRANCH_NAME = params.REPOSITORY_BRANCH
|
|
@@ -648,7 +645,7 @@ def buildAndPushDockerImage(server, name, version) {
|
|
|
648
645
|
echo "Docker image ${REPOSITORY_SERVER}/${name}:${version} already exists. Skipping build."
|
|
649
646
|
} else {
|
|
650
647
|
sh """
|
|
651
|
-
lerna exec --scope=*${server} ${params.BUILD_STRATEGY} run docker:${env.BUILD_COMMAND};
|
|
648
|
+
npx lerna exec --scope=*${server} ${params.BUILD_STRATEGY} run docker:${env.BUILD_COMMAND};
|
|
652
649
|
docker tag ${name}:${version} ${REPOSITORY_SERVER}/${name}:${version}
|
|
653
650
|
docker push ${REPOSITORY_SERVER}/${name}:${version}
|
|
654
651
|
docker rmi ${REPOSITORY_SERVER}/${name}:${version}
|
|
@@ -102,27 +102,15 @@
|
|
|
102
102
|
"commit-msg": "commitlint -E HUSKY_GIT_PARAMS"
|
|
103
103
|
}
|
|
104
104
|
},
|
|
105
|
-
"lint-staged": {
|
|
106
|
-
"*.md": [
|
|
107
|
-
"yarn format:md",
|
|
108
|
-
"git add"
|
|
109
|
-
],
|
|
110
|
-
"*.{js,jsx,ts,tsx}": [
|
|
111
|
-
"eslint --fix",
|
|
112
|
-
"git add"
|
|
113
|
-
],
|
|
114
|
-
"package.json": "sort-package-json --check package.json */**/package.json "
|
|
115
|
-
},
|
|
116
105
|
"resolutions": {
|
|
117
106
|
"@apollo/client": "^3.9.0",
|
|
118
107
|
"@types/react": "^18.0.25",
|
|
119
108
|
"@types/react-dom": "^18.0.8",
|
|
120
|
-
"chokidar": "^3.5.3",
|
|
121
109
|
"html-to-text": "^8.0.0",
|
|
122
|
-
"react": "18.
|
|
123
|
-
"react-dom": "18.
|
|
124
|
-
"react-native": "0.
|
|
125
|
-
"react-native-gesture-handler": "~2.
|
|
110
|
+
"react": "18.3.0-canary-c3048aab4-20240326",
|
|
111
|
+
"react-dom": "18.3.0-canary-c3048aab4-20240326",
|
|
112
|
+
"react-native": "0.72.10",
|
|
113
|
+
"react-native-gesture-handler": "~2.12.0"
|
|
126
114
|
},
|
|
127
115
|
"dependencies": {
|
|
128
116
|
"dataloader": "^2.1.0",
|
|
@@ -159,7 +147,7 @@
|
|
|
159
147
|
"@babel/preset-typescript": "^7.18.6",
|
|
160
148
|
"@babel/register": "^7.18.9",
|
|
161
149
|
"@babel/runtime": "^7.20.1",
|
|
162
|
-
"@common-stack/env-list-loader": "6.0.2-alpha.
|
|
150
|
+
"@common-stack/env-list-loader": "6.0.2-alpha.2",
|
|
163
151
|
"@emotion/babel-plugin": "^11.11.0",
|
|
164
152
|
"@graphql-codegen/add": "^5.0.2",
|
|
165
153
|
"@graphql-codegen/cli": "^5.0.2",
|
|
@@ -11,23 +11,28 @@ const sortPackageJson = await import('sort-package-json').then(module => module.
|
|
|
11
11
|
|
|
12
12
|
// Directories to process
|
|
13
13
|
const directories = [
|
|
14
|
+
path.join(__dirname, '../'),
|
|
15
|
+
path.join(__dirname, '../packages-modules'),
|
|
14
16
|
path.join(__dirname, '../packages'),
|
|
15
17
|
path.join(__dirname, '../servers'),
|
|
16
18
|
path.join(__dirname, '../portable-devices')
|
|
17
19
|
];
|
|
18
20
|
|
|
21
|
+
// Function to sort a single package.json file
|
|
19
22
|
async function sortPackageJsonFile(filePath) {
|
|
20
23
|
const packageJson = JSON.parse(await fsPromises.readFile(filePath, 'utf8'));
|
|
21
24
|
const sortedPackageJson = sortPackageJson(packageJson);
|
|
22
25
|
await fsPromises.writeFile(filePath, JSON.stringify(sortedPackageJson, null, 2) + '\n');
|
|
23
26
|
}
|
|
24
27
|
|
|
28
|
+
// Recursive function to sort all package.json files in a directory, skipping node_modules
|
|
25
29
|
async function sortAllPackageJsonFiles(dir) {
|
|
26
30
|
const files = await fsPromises.readdir(dir);
|
|
27
31
|
for (const file of files) {
|
|
28
32
|
const fullPath = path.join(dir, file);
|
|
29
33
|
const stat = await fsPromises.lstat(fullPath);
|
|
30
|
-
|
|
34
|
+
|
|
35
|
+
if (stat.isDirectory() && file !== 'node_modules') {
|
|
31
36
|
await sortAllPackageJsonFiles(fullPath);
|
|
32
37
|
} else if (file === 'package.json') {
|
|
33
38
|
await sortPackageJsonFile(fullPath);
|
|
@@ -36,10 +41,12 @@ async function sortAllPackageJsonFiles(dir) {
|
|
|
36
41
|
}
|
|
37
42
|
}
|
|
38
43
|
|
|
44
|
+
// Function to process all directories
|
|
39
45
|
async function processDirectories(dirs) {
|
|
40
46
|
for (const dir of dirs) {
|
|
41
47
|
await sortAllPackageJsonFiles(dir);
|
|
42
48
|
}
|
|
43
49
|
}
|
|
44
50
|
|
|
51
|
+
// Execute the sorting process
|
|
45
52
|
await processDirectories(directories);
|
|
@@ -1,11 +1,14 @@
|
|
|
1
|
-
|
|
1
|
+
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
2
|
+
/* eslint-disable import/no-cycle */
|
|
3
|
+
import { addProjectConfiguration, formatFiles, generateFiles, Tree } from '@nx/devkit';
|
|
2
4
|
import * as path from 'path';
|
|
3
|
-
import fs from 'fs';
|
|
5
|
+
import * as fs from 'fs';
|
|
4
6
|
import { AddFullstackGeneratorSchema } from './schema';
|
|
5
7
|
import { getValid, isValid } from '../../utils';
|
|
6
|
-
import {
|
|
7
|
-
|
|
8
|
-
|
|
8
|
+
import { updateJenkinsFile, updatePackageJson } from './updates';
|
|
9
|
+
import {
|
|
10
|
+
generateBackend,
|
|
11
|
+
generateFrontend,
|
|
9
12
|
generateMoleculer,
|
|
10
13
|
generateBrowserPackage,
|
|
11
14
|
generateClientPackage,
|
|
@@ -14,22 +17,24 @@ import {
|
|
|
14
17
|
} from '../../index';
|
|
15
18
|
|
|
16
19
|
export async function addFullstackGenerator(tree: Tree, options: AddFullstackGeneratorSchema) {
|
|
17
|
-
const
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
// targets: {},
|
|
23
|
-
// });
|
|
20
|
+
const basePath = options.path || '';
|
|
21
|
+
const projectRoot = path.join(basePath, getValid(options.name) ?? 'fullstack-pro');
|
|
22
|
+
|
|
23
|
+
console.log(`basePath: ${basePath}`);
|
|
24
|
+
|
|
24
25
|
generateFiles(tree, path.join(__dirname, 'files'), projectRoot, options);
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
26
|
+
|
|
27
|
+
// Update Jenkinsfile with dynamic values
|
|
28
|
+
const jenkinsFilePath = path.join(projectRoot, 'Jenkinsfile');
|
|
29
|
+
updateJenkinsFile(jenkinsFilePath, options.name);
|
|
30
|
+
|
|
31
|
+
// Update package.json with the project name
|
|
32
|
+
updatePackageJson(tree, projectRoot, getValid(options.name));
|
|
33
|
+
|
|
29
34
|
await formatFiles(tree);
|
|
30
35
|
|
|
31
36
|
if (isValid(options.config)) {
|
|
32
|
-
const configPath = getValid(options.config);
|
|
37
|
+
const configPath = path.resolve(basePath, getValid(options.config));
|
|
33
38
|
if (fs.existsSync(configPath)) {
|
|
34
39
|
try {
|
|
35
40
|
const content = String(fs.readFileSync(configPath));
|
|
@@ -37,30 +42,21 @@ export async function addFullstackGenerator(tree: Tree, options: AddFullstackGen
|
|
|
37
42
|
configs.parent = projectRoot;
|
|
38
43
|
|
|
39
44
|
await processConfigs(tree, configs);
|
|
40
|
-
} catch(error) {
|
|
45
|
+
} catch (error) {
|
|
41
46
|
console.error('Error while reading config.', error);
|
|
42
47
|
}
|
|
43
48
|
}
|
|
44
49
|
}
|
|
45
50
|
}
|
|
46
51
|
|
|
47
|
-
const processConfigs = async (tree: Tree, configs: any) => {
|
|
48
|
-
if (configs.servers) {
|
|
49
|
-
await generateServers(tree, configs.parent, configs.servers);
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
if (configs.packages && configs.packages.modules) {
|
|
53
|
-
await generatePackages(tree, configs.parent, configs.packages.modules);
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
52
|
|
|
57
53
|
const generateServers = async (tree: Tree, parent: string, servers: any) => {
|
|
58
54
|
for (const [serverName, serverConfig] of Object.entries(servers)) {
|
|
59
55
|
const configs: any = serverConfig;
|
|
60
56
|
configs.name = serverName;
|
|
61
|
-
configs.directory =
|
|
62
|
-
|
|
63
|
-
switch(configs?.type) {
|
|
57
|
+
configs.directory = path.join(parent, 'servers');
|
|
58
|
+
|
|
59
|
+
switch (configs?.type) {
|
|
64
60
|
case 'frontend':
|
|
65
61
|
await generateFrontend(tree, configs);
|
|
66
62
|
break;
|
|
@@ -74,15 +70,15 @@ const generateServers = async (tree: Tree, parent: string, servers: any) => {
|
|
|
74
70
|
break;
|
|
75
71
|
}
|
|
76
72
|
}
|
|
77
|
-
}
|
|
73
|
+
};
|
|
78
74
|
|
|
79
75
|
const generatePackages = async (tree: Tree, parent: string, packages: any) => {
|
|
80
76
|
for (const [packageName, packageConfig] of Object.entries(packages)) {
|
|
81
77
|
const configs: any = packageConfig;
|
|
82
78
|
configs.name = packageName;
|
|
83
|
-
configs.directory =
|
|
84
|
-
|
|
85
|
-
switch((packageConfig as any)?.type) {
|
|
79
|
+
configs.directory = path.join(parent, 'packages');
|
|
80
|
+
|
|
81
|
+
switch ((packageConfig as any)?.type) {
|
|
86
82
|
case 'packages-core':
|
|
87
83
|
await generateCorePackage(tree, configs);
|
|
88
84
|
break;
|
|
@@ -99,6 +95,16 @@ const generatePackages = async (tree: Tree, parent: string, packages: any) => {
|
|
|
99
95
|
break;
|
|
100
96
|
}
|
|
101
97
|
}
|
|
102
|
-
}
|
|
98
|
+
};
|
|
99
|
+
|
|
100
|
+
const processConfigs = async (tree: Tree, configs: any) => {
|
|
101
|
+
if (configs.servers) {
|
|
102
|
+
await generateServers(tree, configs.parent, configs.servers);
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
if (configs.packages && configs.packages.modules) {
|
|
106
|
+
await generatePackages(tree, configs.parent, configs.packages.modules);
|
|
107
|
+
}
|
|
108
|
+
};
|
|
103
109
|
|
|
104
110
|
export default addFullstackGenerator;
|
|
@@ -12,6 +12,11 @@
|
|
|
12
12
|
"config": {
|
|
13
13
|
"type": "string",
|
|
14
14
|
"description": "The absolute path of config file"
|
|
15
|
+
},
|
|
16
|
+
"path": {
|
|
17
|
+
"type": "string",
|
|
18
|
+
"description": "The base path where the project will be created or updated",
|
|
19
|
+
"x-prompt": "Where do you want to create or update the project? (Leave empty for the current directory)"
|
|
15
20
|
}
|
|
16
21
|
},
|
|
17
22
|
"required": ["name"]
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import fs from 'fs';
|
|
2
|
+
import * as path from 'path';
|
|
3
|
+
|
|
4
|
+
export function updateJenkinsFile(filePath: string, name: string) {
|
|
5
|
+
const paramsToUpdate = {
|
|
6
|
+
BASE_NAMESPACE: name,
|
|
7
|
+
CONNECTION_ID: name,
|
|
8
|
+
WORKSPACE_ID: name,
|
|
9
|
+
UNIQUE_NAME: name,
|
|
10
|
+
};
|
|
11
|
+
|
|
12
|
+
let jenkinsFileContent = '';
|
|
13
|
+
if (fs.existsSync(filePath)) {
|
|
14
|
+
jenkinsFileContent = fs.readFileSync(filePath, 'utf-8');
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
const updatedContent = jenkinsFileContent.split('\n').map(line => {
|
|
18
|
+
for (const param in paramsToUpdate) {
|
|
19
|
+
if (line.includes(`string(name: '${param}'`)) {
|
|
20
|
+
return line.replace(/defaultValue: '.*'/, `defaultValue: '${paramsToUpdate[param]}'`);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
return line;
|
|
24
|
+
}).join('\n');
|
|
25
|
+
|
|
26
|
+
// Add missing parameters
|
|
27
|
+
Object.keys(paramsToUpdate).forEach(param => {
|
|
28
|
+
if (!updatedContent.includes(`string(name: '${param}'`)) {
|
|
29
|
+
updatedContent.concat(
|
|
30
|
+
`string(name: '${param}', defaultValue: '${paramsToUpdate[param]}', description: '${param.replace(/_/g, ' ').toLowerCase()}')\n`
|
|
31
|
+
);
|
|
32
|
+
}
|
|
33
|
+
});
|
|
34
|
+
|
|
35
|
+
fs.writeFileSync(filePath, updatedContent, 'utf-8');
|
|
36
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { Tree, updateJson } from '@nx/devkit';
|
|
2
|
+
import * as path from 'path';
|
|
3
|
+
|
|
4
|
+
export function updatePackageJson(tree: Tree, projectRoot: string, name: string) {
|
|
5
|
+
const packageJsonPath = path.join(projectRoot, 'package.json');
|
|
6
|
+
updateJson(tree, packageJsonPath, (packageJson) => {
|
|
7
|
+
packageJson['name'] = name;
|
|
8
|
+
// You can add more custom logic here if needed
|
|
9
|
+
return packageJson;
|
|
10
|
+
});
|
|
11
|
+
}
|
|
@@ -28,11 +28,11 @@
|
|
|
28
28
|
"@casl/ability": "^4.1.5",
|
|
29
29
|
"@cdm-logger/client": "^9.0.3",
|
|
30
30
|
"@cdm-logger/server": "^9.0.3",
|
|
31
|
-
"@common-stack/client-core": "6.0.2-alpha.
|
|
32
|
-
"@common-stack/core": "6.0.2-alpha.
|
|
33
|
-
"@common-stack/server-core": "6.0.2-alpha.
|
|
34
|
-
"@common-stack/server-stack": "6.0.2-alpha.
|
|
35
|
-
"@common-stack/store-mongo": "6.0.2-alpha.
|
|
31
|
+
"@common-stack/client-core": "6.0.2-alpha.2",
|
|
32
|
+
"@common-stack/core": "6.0.2-alpha.2",
|
|
33
|
+
"@common-stack/server-core": "6.0.2-alpha.2",
|
|
34
|
+
"@common-stack/server-stack": "6.0.2-alpha.2",
|
|
35
|
+
"@common-stack/store-mongo": "6.0.2-alpha.2",
|
|
36
36
|
"@container-stack/mailing-api": "5.2.1-alpha.1",
|
|
37
37
|
"app-root-path": "^3.0.0",
|
|
38
38
|
"body-parser": "^1.19.0",
|