@common-stack/generate-plugin 6.0.6-alpha.7 → 6.0.6-alpha.70

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (232) hide show
  1. package/CHANGELOG.md +230 -0
  2. package/README.md +157 -211
  3. package/cde-config.json +43 -42
  4. package/generators.json +5 -0
  5. package/lib/{constants/index.cjs → common/constants.cjs} +1 -1
  6. package/lib/common/constants.cjs.map +1 -0
  7. package/lib/{constants/index.mjs → common/constants.mjs} +1 -1
  8. package/lib/common/constants.mjs.map +1 -0
  9. package/lib/generators/add-backend/files/package.json +5 -4
  10. package/lib/generators/add-backend/files/src/api/root-schema.graphqls +1 -7
  11. package/lib/generators/add-backend/generator.cjs +12 -3
  12. package/lib/generators/add-backend/generator.cjs.map +1 -1
  13. package/lib/generators/add-backend/generator.mjs +12 -3
  14. package/lib/generators/add-backend/generator.mjs.map +1 -1
  15. package/lib/generators/add-backend/schema.json +6 -1
  16. package/lib/generators/add-frontend/frameworks/antui/root.tsx.template +2 -2
  17. package/lib/generators/add-frontend/frameworks/chakraui/root.tsx.template +4 -3
  18. package/lib/generators/add-frontend/frameworks/tailwindui/root.tsx.template +2 -2
  19. package/lib/generators/add-frontend/generator.cjs +17 -13
  20. package/lib/generators/add-frontend/generator.cjs.map +1 -1
  21. package/lib/generators/add-frontend/generator.mjs +12 -8
  22. package/lib/generators/add-frontend/generator.mjs.map +1 -1
  23. package/lib/generators/add-frontend/schema.json +8 -3
  24. package/lib/generators/add-frontend/templates/config.json +2 -47
  25. package/lib/generators/add-frontend/templates/package.json +5 -8
  26. package/lib/generators/add-frontend/templates/tools/checkQueryUsage.mjs +192 -0
  27. package/lib/generators/add-frontend/templates/tools/mergeConfig.js +3 -0
  28. package/lib/generators/add-frontend/templates/vite.config.ts.template +53 -32
  29. package/lib/generators/add-fullstack/files/Jenkinsfile +7 -7
  30. package/lib/generators/add-fullstack/files/package.json +19 -14
  31. package/lib/generators/add-fullstack/files/tools/html-plugin-template.ejs +28 -0
  32. package/lib/generators/add-fullstack/files/tools/update-dependencies.mjs +95 -63
  33. package/lib/generators/add-fullstack/files/tools/update-dependency-link.mjs +12 -10
  34. package/lib/generators/add-fullstack/files/tools/{update-dependency-version.js → update-dependency-version.mjs} +57 -26
  35. package/lib/generators/add-fullstack/generator.cjs +39 -30
  36. package/lib/generators/add-fullstack/generator.cjs.map +1 -1
  37. package/lib/generators/add-fullstack/generator.mjs +39 -30
  38. package/lib/generators/add-fullstack/generator.mjs.map +1 -1
  39. package/lib/generators/add-fullstack/updates/htmlPluginUpdate.cjs +8 -0
  40. package/lib/generators/add-fullstack/updates/htmlPluginUpdate.cjs.map +1 -0
  41. package/lib/generators/add-fullstack/updates/htmlPluginUpdate.d.ts +2 -0
  42. package/lib/generators/add-fullstack/updates/htmlPluginUpdate.mjs +8 -0
  43. package/lib/generators/add-fullstack/updates/htmlPluginUpdate.mjs.map +1 -0
  44. package/lib/generators/add-fullstack/updates/ignoreUpdate.cjs +19 -0
  45. package/lib/generators/add-fullstack/updates/ignoreUpdate.cjs.map +1 -0
  46. package/lib/generators/add-fullstack/updates/ignoreUpdate.d.ts +3 -0
  47. package/lib/generators/add-fullstack/updates/ignoreUpdate.mjs +19 -0
  48. package/lib/generators/add-fullstack/updates/ignoreUpdate.mjs.map +1 -0
  49. package/lib/generators/add-fullstack/updates/index.d.ts +4 -0
  50. package/lib/generators/add-fullstack/updates/jenkinsfileUpdate.cjs +5 -4
  51. package/lib/generators/add-fullstack/updates/jenkinsfileUpdate.cjs.map +1 -1
  52. package/lib/generators/add-fullstack/updates/jenkinsfileUpdate.d.ts +2 -1
  53. package/lib/generators/add-fullstack/updates/jenkinsfileUpdate.mjs +5 -4
  54. package/lib/generators/add-fullstack/updates/jenkinsfileUpdate.mjs.map +1 -1
  55. package/lib/generators/add-fullstack/updates/lernaJsonUpdate.cjs +45 -0
  56. package/lib/generators/add-fullstack/updates/lernaJsonUpdate.cjs.map +1 -0
  57. package/lib/generators/add-fullstack/updates/lernaJsonUpdate.d.ts +3 -0
  58. package/lib/generators/add-fullstack/updates/lernaJsonUpdate.mjs +45 -0
  59. package/lib/generators/add-fullstack/updates/lernaJsonUpdate.mjs.map +1 -0
  60. package/lib/generators/add-fullstack/updates/licenseUpdate.cjs +19 -0
  61. package/lib/generators/add-fullstack/updates/licenseUpdate.cjs.map +1 -0
  62. package/lib/generators/add-fullstack/updates/licenseUpdate.d.ts +2 -0
  63. package/lib/generators/add-fullstack/updates/licenseUpdate.mjs +19 -0
  64. package/lib/generators/add-fullstack/updates/licenseUpdate.mjs.map +1 -0
  65. package/lib/generators/add-fullstack/updates/packageJsonUpdate.cjs +38 -4
  66. package/lib/generators/add-fullstack/updates/packageJsonUpdate.cjs.map +1 -1
  67. package/lib/generators/add-fullstack/updates/packageJsonUpdate.d.ts +2 -1
  68. package/lib/generators/add-fullstack/updates/packageJsonUpdate.mjs +38 -4
  69. package/lib/generators/add-fullstack/updates/packageJsonUpdate.mjs.map +1 -1
  70. package/lib/generators/add-moleculer/files/charts/chart/Chart.yaml +1 -1
  71. package/lib/generators/add-moleculer/files/package.json +5 -5
  72. package/lib/generators/add-moleculer/generator.cjs +7 -4
  73. package/lib/generators/add-moleculer/generator.cjs.map +1 -1
  74. package/lib/generators/add-moleculer/generator.mjs +7 -4
  75. package/lib/generators/add-moleculer/generator.mjs.map +1 -1
  76. package/lib/generators/add-moleculer/schema.json +9 -4
  77. package/lib/generators/add-package/generator.cjs +50 -0
  78. package/lib/generators/add-package/generator.cjs.map +1 -0
  79. package/lib/generators/add-package/generator.d.ts +5 -0
  80. package/lib/generators/add-package/generator.mjs +50 -0
  81. package/lib/generators/add-package/generator.mjs.map +1 -0
  82. package/lib/generators/add-package/schema.json +29 -0
  83. package/lib/index.cjs +1 -1
  84. package/lib/index.d.ts +1 -4
  85. package/lib/index.mjs +1 -1
  86. package/lib/utils/filesConfig.cjs +76 -0
  87. package/lib/utils/filesConfig.cjs.map +1 -0
  88. package/lib/utils/filesConfig.d.ts +2 -0
  89. package/lib/utils/filesConfig.mjs +76 -0
  90. package/lib/utils/filesConfig.mjs.map +1 -0
  91. package/lib/utils/index.cjs +28 -2
  92. package/lib/utils/index.cjs.map +1 -1
  93. package/lib/utils/index.d.ts +3 -0
  94. package/lib/utils/index.mjs +28 -2
  95. package/lib/utils/index.mjs.map +1 -1
  96. package/lib/utils/syncConfig.cjs +116 -0
  97. package/lib/utils/syncConfig.cjs.map +1 -0
  98. package/lib/utils/syncConfig.d.ts +9 -0
  99. package/lib/utils/syncConfig.mjs +116 -0
  100. package/lib/utils/syncConfig.mjs.map +1 -0
  101. package/package.json +3 -4
  102. package/rollup.config.mjs +2 -8
  103. package/src/generators/add-backend/generator.ts +14 -3
  104. package/src/generators/add-backend/schema.d.ts +1 -0
  105. package/src/generators/add-backend/schema.json +6 -1
  106. package/src/generators/add-frontend/frameworks/antui/root.tsx.template +2 -2
  107. package/src/generators/add-frontend/frameworks/chakraui/root.tsx.template +4 -3
  108. package/src/generators/add-frontend/frameworks/tailwindui/root.tsx.template +2 -2
  109. package/src/generators/add-frontend/generator.ts +12 -8
  110. package/src/generators/add-frontend/schema.d.ts +1 -0
  111. package/src/generators/add-frontend/schema.json +8 -3
  112. package/src/generators/add-fullstack/files/Jenkinsfile +7 -7
  113. package/src/generators/add-fullstack/files/LICENSE-IST +39 -0
  114. package/src/generators/add-fullstack/files/package.json +19 -14
  115. package/src/generators/add-fullstack/files/tools/html-plugin-template.ejs +28 -0
  116. package/src/generators/add-fullstack/files/tools/update-dependencies.mjs +95 -63
  117. package/src/generators/add-fullstack/files/tools/update-dependency-link.mjs +12 -10
  118. package/src/generators/add-fullstack/files/tools/{update-dependency-version.js → update-dependency-version.mjs} +57 -26
  119. package/src/generators/add-fullstack/generator.ts +64 -38
  120. package/src/generators/add-fullstack/updates/htmlPluginUpdate.ts +11 -0
  121. package/src/generators/add-fullstack/updates/ignoreUpdate.ts +23 -0
  122. package/src/generators/add-fullstack/updates/index.ts +4 -0
  123. package/src/generators/add-fullstack/updates/jenkinsfileUpdate.ts +6 -4
  124. package/src/generators/add-fullstack/updates/lernaJsonUpdate.ts +53 -0
  125. package/src/generators/add-fullstack/updates/licenseUpdate.ts +23 -0
  126. package/src/generators/add-fullstack/updates/packageJsonUpdate.ts +45 -4
  127. package/src/generators/add-moleculer/files/charts/chart/Chart.yaml +1 -1
  128. package/src/generators/add-moleculer/files/package.json +5 -5
  129. package/src/generators/add-moleculer/generator.spec.ts +1 -1
  130. package/src/generators/add-moleculer/generator.ts +8 -3
  131. package/src/generators/add-moleculer/schema.d.ts +2 -1
  132. package/src/generators/add-moleculer/schema.json +9 -4
  133. package/src/generators/{add-core-package → add-package}/generator.spec.ts +5 -5
  134. package/src/generators/add-package/generator.ts +62 -0
  135. package/src/generators/add-package/schema.d.ts +6 -0
  136. package/src/generators/add-package/schema.json +29 -0
  137. package/src/index.ts +1 -4
  138. package/src/utils/filesConfig.ts +84 -0
  139. package/src/utils/index.ts +31 -0
  140. package/src/utils/syncConfig.ts +128 -0
  141. package/lib/constants/index.cjs.map +0 -1
  142. package/lib/constants/index.mjs.map +0 -1
  143. package/lib/generators/add-browser-package/files/jest.config.js +0 -8
  144. package/lib/generators/add-browser-package/files/package.json +0 -49
  145. package/lib/generators/add-browser-package/files/rollup.config.mjs +0 -29
  146. package/lib/generators/add-browser-package/files/src/index.ts.template +0 -4
  147. package/lib/generators/add-browser-package/files/src/interfaces/index.ts.template +0 -1
  148. package/lib/generators/add-browser-package/files/src/interfaces/interfaces.ts.template +0 -1
  149. package/lib/generators/add-browser-package/files/src/module.tsx.template +0 -7
  150. package/lib/generators/add-browser-package/files/tsconfig.json +0 -28
  151. package/lib/generators/add-browser-package/files/webpack.config.js +0 -71
  152. package/lib/generators/add-browser-package/generator.cjs +0 -17
  153. package/lib/generators/add-browser-package/generator.cjs.map +0 -1
  154. package/lib/generators/add-browser-package/generator.d.ts +0 -5
  155. package/lib/generators/add-browser-package/generator.mjs +0 -17
  156. package/lib/generators/add-browser-package/generator.mjs.map +0 -1
  157. package/lib/generators/add-browser-package/schema.json +0 -19
  158. package/lib/generators/add-client-package/files/CHANGELOG.md +0 -807
  159. package/lib/generators/add-client-package/files/jest.config.js +0 -13
  160. package/lib/generators/add-client-package/files/package.json +0 -30
  161. package/lib/generators/add-client-package/files/rollup.config.mjs +0 -29
  162. package/lib/generators/add-client-package/files/src/components/index.tsx.template +0 -1
  163. package/lib/generators/add-client-package/files/src/index.ts.template +0 -1
  164. package/lib/generators/add-client-package/files/tsconfig.json +0 -27
  165. package/lib/generators/add-client-package/files/webpack.config.js +0 -72
  166. package/lib/generators/add-client-package/generator.cjs +0 -17
  167. package/lib/generators/add-client-package/generator.cjs.map +0 -1
  168. package/lib/generators/add-client-package/generator.d.ts +0 -5
  169. package/lib/generators/add-client-package/generator.mjs +0 -17
  170. package/lib/generators/add-client-package/generator.mjs.map +0 -1
  171. package/lib/generators/add-client-package/generator.spec.d.ts +0 -1
  172. package/lib/generators/add-client-package/schema.json +0 -19
  173. package/lib/generators/add-core-package/files/jest.config.js +0 -3
  174. package/lib/generators/add-core-package/files/package.json +0 -30
  175. package/lib/generators/add-core-package/files/rollup.config.mjs +0 -65
  176. package/lib/generators/add-core-package/files/src/constants/index.ts.template +0 -1
  177. package/lib/generators/add-core-package/files/src/constants/types.ts.template +0 -3
  178. package/lib/generators/add-core-package/files/src/index.ts.template +0 -2
  179. package/lib/generators/add-core-package/files/src/types/index.ts.template +0 -1
  180. package/lib/generators/add-core-package/files/src/types/types.ts.template +0 -17
  181. package/lib/generators/add-core-package/files/tsconfig.json +0 -22
  182. package/lib/generators/add-core-package/files/webpack.config.js +0 -53
  183. package/lib/generators/add-core-package/generator.cjs +0 -17
  184. package/lib/generators/add-core-package/generator.cjs.map +0 -1
  185. package/lib/generators/add-core-package/generator.d.ts +0 -5
  186. package/lib/generators/add-core-package/generator.mjs +0 -17
  187. package/lib/generators/add-core-package/generator.mjs.map +0 -1
  188. package/lib/generators/add-core-package/generator.spec.d.ts +0 -1
  189. package/lib/generators/add-core-package/schema.json +0 -19
  190. package/lib/generators/add-fullstack/files/CHANGELOG.md +0 -20
  191. package/lib/generators/add-server-package/files/CHANGELOG.md +0 -2599
  192. package/lib/generators/add-server-package/files/LICENSE +0 -674
  193. package/lib/generators/add-server-package/files/jest.config.js +0 -32
  194. package/lib/generators/add-server-package/files/package.json +0 -78
  195. package/lib/generators/add-server-package/files/rollup.config.mjs +0 -30
  196. package/lib/generators/add-server-package/files/src/constants/constants.ts.template +0 -62
  197. package/lib/generators/add-server-package/files/src/constants/index.ts.template +0 -1
  198. package/lib/generators/add-server-package/files/src/constants/types.ts.template +0 -21
  199. package/lib/generators/add-server-package/files/src/index.ts.template +0 -6
  200. package/lib/generators/add-server-package/files/src/module.ts.template +0 -6
  201. package/lib/generators/add-server-package/files/tsconfig.json +0 -27
  202. package/lib/generators/add-server-package/generator.cjs +0 -17
  203. package/lib/generators/add-server-package/generator.cjs.map +0 -1
  204. package/lib/generators/add-server-package/generator.d.ts +0 -5
  205. package/lib/generators/add-server-package/generator.mjs +0 -17
  206. package/lib/generators/add-server-package/generator.mjs.map +0 -1
  207. package/lib/generators/add-server-package/generator.spec.d.ts +0 -1
  208. package/lib/generators/add-server-package/schema.json +0 -19
  209. package/src/generators/add-browser-package/generator.spec.ts +0 -20
  210. package/src/generators/add-browser-package/generator.ts +0 -24
  211. package/src/generators/add-browser-package/schema.d.ts +0 -4
  212. package/src/generators/add-browser-package/schema.json +0 -19
  213. package/src/generators/add-client-package/generator.spec.ts +0 -20
  214. package/src/generators/add-client-package/generator.ts +0 -24
  215. package/src/generators/add-client-package/schema.d.ts +0 -4
  216. package/src/generators/add-client-package/schema.json +0 -19
  217. package/src/generators/add-core-package/generator.ts +0 -24
  218. package/src/generators/add-core-package/schema.d.ts +0 -4
  219. package/src/generators/add-core-package/schema.json +0 -19
  220. package/src/generators/add-fullstack/files/CHANGELOG.md +0 -28
  221. package/src/generators/add-server-package/generator.spec.ts +0 -20
  222. package/src/generators/add-server-package/generator.ts +0 -24
  223. package/src/generators/add-server-package/schema.d.ts +0 -4
  224. package/src/generators/add-server-package/schema.json +0 -19
  225. /package/lib/{constants/index.d.ts → common/constants.d.ts} +0 -0
  226. /package/lib/generators/{add-browser-package/files/LICENSE → add-fullstack/files/LICENSE-GNU} +0 -0
  227. /package/lib/generators/{add-core-package/files/LICENSE → add-fullstack/files/LICENSE-IST} +0 -0
  228. /package/lib/generators/add-fullstack/files/{LICENSE → LICENSE-MIT} +0 -0
  229. /package/lib/generators/{add-browser-package → add-package}/generator.spec.d.ts +0 -0
  230. /package/src/{constants/index.ts → common/constants.ts} +0 -0
  231. /package/{lib/generators/add-client-package/files/LICENSE → src/generators/add-fullstack/files/LICENSE-GNU} +0 -0
  232. /package/src/generators/add-fullstack/files/{LICENSE → LICENSE-MIT} +0 -0
@@ -10,86 +10,118 @@ const __dirname = fileURLToPath(new URL('.', import.meta.url));
10
10
  const JSON_SPACING = 4;
11
11
  const ADD_END_NEWLINE = true; // Set to true to add a newline at the end of the file
12
12
 
13
- // Paths to package.json files
14
- const backendPackagePath = resolve(__dirname, '../servers/backend-server/package.json');
15
- const frontendPackagePath = resolve(__dirname, '../servers/frontend-server/package.json');
13
+ // Paths to package.json files (now using arrays to handle multiple paths for backend, frontend, and mobile)
14
+ const packagePaths = {
15
+ backend: [
16
+ resolve(__dirname, '../servers/backend-server/package.json'),
17
+ ],
18
+ frontend: [
19
+ resolve(__dirname, '../servers/frontend-server/package.json'),
20
+ ],
21
+ mobile: [
22
+ resolve(__dirname, '../portable-devices/mobile/package.json'),
23
+ ]
24
+ };
16
25
 
17
26
  // Packages to check
18
27
  const packagesToCheck = [
19
28
  '@common-stack/server-stack',
20
- '@common-stack/frontend-stack-react'
29
+ '@common-stack/frontend-stack-react',
30
+ '@common-stack/mobile-stack-react'
21
31
  ];
22
32
 
33
+ // Utility function to wrap `exec` in a promise for sequential execution
34
+ const execCommand = (command, cwd) => {
35
+ return new Promise((resolve, reject) => {
36
+ exec(command, { cwd }, (err, stdout, stderr) => {
37
+ if (err) {
38
+ console.error(`Error executing command: ${command}\n${stderr}`);
39
+ return reject(err);
40
+ }
41
+ console.log(stdout);
42
+ resolve();
43
+ });
44
+ });
45
+ };
46
+
23
47
  // Function to update dependencies
24
48
  const updateDependencies = async (targetPackagePath, sourcePackagePath) => {
25
- const targetPackageJson = JSON.parse(await readFile(targetPackagePath, 'utf-8'));
26
- const sourcePackageJson = JSON.parse(await readFile(sourcePackagePath, 'utf-8'));
27
-
28
- const mergeDependencies = (targetDeps = {}, sourceDeps = {}) => ({
29
- ...targetDeps,
30
- ...sourceDeps
31
- });
32
-
33
- // Merge dependencies only
34
- targetPackageJson.dependencies = mergeDependencies(
35
- targetPackageJson.dependencies,
36
- sourcePackageJson.dependencies
37
- );
38
-
39
- // Format the JSON string with the specified spacing
40
- let jsonString = JSON.stringify(targetPackageJson, null, JSON_SPACING);
41
-
42
- // Optionally add a newline at the end
43
- if (ADD_END_NEWLINE) {
44
- jsonString += '\n';
45
- }
46
-
47
- // Write the formatted JSON back to disk
48
- await writeFile(targetPackagePath, jsonString, 'utf-8');
49
+ const targetPackageJson = JSON.parse(await readFile(targetPackagePath, 'utf-8'));
50
+ const sourcePackageJson = JSON.parse(await readFile(sourcePackagePath, 'utf-8'));
51
+
52
+ const mergeDependencies = (targetDeps = {}, sourceDeps = {}) => ({
53
+ ...targetDeps,
54
+ ...sourceDeps
55
+ });
56
+
57
+ // Merge dependencies only
58
+ targetPackageJson.dependencies = mergeDependencies(targetPackageJson.dependencies, sourcePackageJson.dependencies);
59
+
60
+ // Format the JSON string with the specified spacing
61
+ let jsonString = JSON.stringify(targetPackageJson, null, JSON_SPACING);
62
+
63
+ // Optionally add a newline at the end
64
+ if (ADD_END_NEWLINE) {
65
+ jsonString += '\n';
66
+ }
67
+
68
+ // Write the formatted JSON back to disk
69
+ await writeFile(targetPackagePath, jsonString, 'utf-8');
49
70
  };
50
71
 
51
- // Function to run `ncu`, update dependencies, and then run linting
72
+ // Function to run `ncu`, `yarn` from the root, update dependencies, and then run linting
52
73
  export const runUpdateDependencies = async () => {
53
- // Run `ncu` command to update the dependencies from the root level
54
- await new Promise((resolve, reject) => {
55
- exec('ncu -u -t minor "@common-stack*" && lerna exec "ncu -u -t minor /@common-stack*/"', { cwd: resolve(__dirname, '..') }, (err, stdout, stderr) => {
56
- if (err) {
57
- console.error(`Error running ncu and lerna: ${stderr}`);
58
- return reject(err);
59
- }
60
- console.log(stdout);
61
- resolve();
62
- });
63
- });
74
+ // Step 1: Run `ncu` to update the dependencies from the root level
75
+ console.log('Updating dependencies using `ncu`...');
76
+ await execCommand(
77
+ 'ncu -u -t minor "@common-stack*" && lerna exec "ncu -u -t minor /@common-stack*/"',
78
+ resolve(__dirname, '..')
79
+ );
64
80
 
65
- // Check for changes in the specified packages
66
- for (const packageName of packagesToCheck) {
67
- const packagePath = resolve(__dirname, `../node_modules/${packageName}/package.json`);
68
- try {
69
- await updateDependencies(
70
- packageName.includes('server-stack') ? backendPackagePath : frontendPackagePath,
71
- packagePath
72
- );
73
- } catch (error) {
74
- console.warn(`Package ${packageName} not found or failed to update:`, error);
81
+ // Step 2: Run `yarn` to install updated packages from the root
82
+ console.log('Running yarn install...');
83
+ await execCommand('yarn', resolve(__dirname, '..'));
84
+
85
+ // Step 3: Update dependencies for each package
86
+ for (const packageName of packagesToCheck) {
87
+ const packagePath = resolve(__dirname, `../node_modules/${packageName}/package.json`);
88
+ let targetPaths;
89
+
90
+ // Determine the target package.json paths (array of paths)
91
+ if (packageName.includes('server-stack')) {
92
+ targetPaths = packagePaths.backend;
93
+ } else if (packageName.includes('mobile-stack-react')) {
94
+ targetPaths = packagePaths.mobile;
95
+ } else {
96
+ targetPaths = packagePaths.frontend;
97
+ }
98
+
99
+ // Iterate over all target paths in the corresponding array
100
+ for (const targetPackagePath of targetPaths) {
101
+ try {
102
+ await updateDependencies(targetPackagePath, packagePath);
103
+ console.log(`Updated dependencies for ${packageName} in ${targetPackagePath}`);
104
+ } catch (error) {
105
+ console.warn(`Package ${packageName} not found or failed to update in ${targetPackagePath}:`, error);
106
+ }
107
+ }
75
108
  }
76
- }
77
109
 
78
- console.log('Dependencies from @common-stack packages have been updated.');
110
+ console.log('Dependencies from @common-stack packages have been updated.');
79
111
 
80
- // Run linting to apply Prettier
81
- try {
82
- await runLintStaged();
83
- console.log('Prettier formatting applied.');
84
- } catch (err) {
85
- console.error('Failed to run Prettier:', err);
86
- }
112
+ // Step 4: Run linting to apply Prettier
113
+ try {
114
+ await runLintStaged();
115
+ console.log('Prettier formatting applied.');
116
+ } catch (err) {
117
+ console.error('Failed to run Prettier:', err);
118
+ }
87
119
  };
88
120
 
89
121
  // Execute the function if this file is run directly
90
122
  if (import.meta.url === `file://${process.argv[1]}`) {
91
- runUpdateDependencies().catch(err => {
92
- console.error('Failed to update dependencies:', err);
93
- process.exit(1);
94
- });
123
+ runUpdateDependencies().catch((err) => {
124
+ console.error('Failed to update dependencies:', err);
125
+ process.exit(1);
126
+ });
95
127
  }
@@ -1,4 +1,4 @@
1
- import glob from 'glob';
1
+ import { glob } from 'glob';
2
2
  import { resolve, dirname, relative } from 'path';
3
3
  import { readFileSync, writeFileSync } from 'fs';
4
4
  import simpleGit from 'simple-git';
@@ -8,25 +8,27 @@ import { fileURLToPath } from 'url';
8
8
  const __filename = fileURLToPath(import.meta.url);
9
9
  const __dirname = dirname(__filename);
10
10
 
11
+ const git = simpleGit();
12
+ const monorepoRoot = resolve(__dirname, '..');
13
+
11
14
  // matching prettier format
12
15
  const JSON_SPACING = 4;
13
16
  const ADD_END_NEWLINE = true; // Set to true to add a newline at the end of the file
14
17
 
15
- const git = simpleGit();
16
-
17
- const monorepoRoot = resolve(__dirname, '..');
18
-
19
- const findPackageJsonFiles = () => {
20
- return new Promise((resolve, reject) => {
21
- glob(
18
+ const findPackageJsonFiles = async () => {
19
+ try {
20
+ const findings = await glob(
22
21
  `${monorepoRoot}/+(servers|portable-devices|packages|packages-modules)/**/package.json`,
23
22
  { onlyFiles: true, ignore: '**/node_modules/**' },
24
23
  (err, files) => {
25
- if (err) reject(`Unable to scan directory: ${err}`);
24
+ if (err) reject();
26
25
  resolve(files);
27
26
  },
28
27
  );
29
- });
28
+ return findings;
29
+ } catch (err) {
30
+ throw new Error(`Unable to scan directory: ${err}`);
31
+ }
30
32
  };
31
33
 
32
34
  const buildPackageMap = async () => {
@@ -1,26 +1,34 @@
1
- const path = require('path');
2
- const fs = require('fs');
3
- const simpleGit = require('simple-git');
4
- const glob = require('glob');
1
+ import { glob } from 'glob';
2
+ import { resolve, join, dirname, relative } from 'path';
3
+ import { readFileSync, writeFileSync } from 'fs';
4
+ import simpleGit from 'simple-git';
5
+ import { runLintStaged } from './runLint.mjs';
6
+ import { fileURLToPath } from 'url';
7
+
8
+ const __filename = fileURLToPath(import.meta.url);
9
+ const __dirname = dirname(__filename);
5
10
 
6
11
  const git = simpleGit();
7
- const monorepoRoot = path.resolve(__dirname, '..');
12
+ const monorepoRoot = resolve(__dirname, '..');
8
13
 
9
14
  // matching prettier format
10
15
  const JSON_SPACING = 4;
11
16
  const ADD_END_NEWLINE = true; // Set to true to add a newline at the end of the file
12
17
 
13
- const findPackageJsonFiles = () => {
14
- return new Promise((resolve, reject) => {
15
- glob(
18
+ const findPackageJsonFiles = async () => {
19
+ try {
20
+ const findings = await glob(
16
21
  `${monorepoRoot}/+(servers|portable-devices|packages|packages-modules)/**/package.json`,
17
22
  { onlyFiles: true, ignore: '**/node_modules/**' },
18
23
  (err, files) => {
19
- if (err) reject(`Unable to scan directory: ${err}`);
24
+ if (err) reject();
20
25
  resolve(files);
21
26
  },
22
27
  );
23
- });
28
+ return findings;
29
+ } catch (err) {
30
+ throw new Error(`Unable to scan directory: ${err}`);
31
+ }
24
32
  };
25
33
 
26
34
  const buildPackageMap = async () => {
@@ -28,10 +36,10 @@ const buildPackageMap = async () => {
28
36
  const packageMap = new Map();
29
37
 
30
38
  packageJsonFiles.forEach((file) => {
31
- const packageJson = JSON.parse(fs.readFileSync(file, 'utf8'));
39
+ const packageJson = JSON.parse(readFileSync(file, 'utf8'));
32
40
  if (packageJson.name) {
33
41
  packageMap.set(packageJson.name, {
34
- path: path.dirname(file),
42
+ path: dirname(file),
35
43
  version: packageJson.version,
36
44
  });
37
45
  }
@@ -46,11 +54,11 @@ const searchAndUpdate = (dependencies, filePath, obj, packageMap) => {
46
54
  for (const key in dependencies) {
47
55
  if (dependencies[key].startsWith('link:')) {
48
56
  const relativeDepFolder = dependencies[key].split('link:')[1];
49
- const dependencyFolder = path.join(path.dirname(filePath), relativeDepFolder);
57
+ const dependencyFolder = join(dirname(filePath), relativeDepFolder);
50
58
 
51
59
  try {
52
- const packageJsonPath = path.join(dependencyFolder, 'package.json');
53
- const packageJson = JSON.parse(fs.readFileSync(packageJsonPath, 'utf8'));
60
+ const packageJsonPath = join(dependencyFolder, 'package.json');
61
+ const packageJson = JSON.parse(readFileSync(packageJsonPath, 'utf8'));
54
62
  if (dependencies[key] !== packageJson.version) {
55
63
  dependencies[key] = packageJson.version;
56
64
  modified = true;
@@ -74,7 +82,7 @@ const searchAndUpdate = (dependencies, filePath, obj, packageMap) => {
74
82
  if (ADD_END_NEWLINE) {
75
83
  formattedJson += '\n';
76
84
  }
77
- fs.writeFileSync(filePath, formattedJson, 'utf8');
85
+ writeFileSync(filePath, formattedJson, 'utf8');
78
86
  }
79
87
 
80
88
  return modified;
@@ -88,7 +96,7 @@ const updateDependencies = async () => {
88
96
  packageJsonFiles.forEach((file) => {
89
97
  if (!file.includes('node_modules')) {
90
98
  try {
91
- const data = fs.readFileSync(file, 'utf8');
99
+ const data = readFileSync(file, 'utf8');
92
100
  const obj = JSON.parse(data);
93
101
  const { dependencies, peerDependencies, devDependencies } = obj;
94
102
 
@@ -106,16 +114,39 @@ const updateDependencies = async () => {
106
114
  }
107
115
  });
108
116
 
109
- if (modifiedFiles.length > 0) {
110
- await git.add(modifiedFiles);
111
- await git.commit('Updated packages to use correct versions and linked dependencies');
112
- } else {
113
- console.log('No changes detected');
114
- }
117
+ return modifiedFiles;
115
118
  };
116
119
 
117
120
  updateDependencies()
118
- .then(() => {
119
- console.log('Dependencies updated successfully.');
121
+ .then((modifiedFiles) => {
122
+ const addArray = modifiedFiles.map((file) => `./${relative(monorepoRoot, file)}`);
123
+ console.log('-- Modified Files --', modifiedFiles, addArray);
124
+ if (addArray.length === 0) {
125
+ console.log('No files to stage.');
126
+ return null;
127
+ }
128
+ return git.add(addArray).then(() => git.status()); // Stage files and then check status
120
129
  })
121
- .catch((err) => console.error(`Error in updateDependencies: ${err.message}`));
130
+ .then((status) => {
131
+ if (status && status.modified.length) {
132
+ const fileArray = status.modified.filter((element) => element.includes('package.json'));
133
+ const addArray = fileArray.map((element) => `./${element}`);
134
+ return git
135
+ .add(addArray)
136
+ .then(runLintStaged)
137
+ .then(() => git.status()); // Run lint-staged after adding
138
+ } else {
139
+ console.log('No changes to lint or commit.');
140
+ return null;
141
+ }
142
+ })
143
+ .then((status) => {
144
+ if (status && status.modified.length > 0) {
145
+ return git.commit('Updated packages to use correct versions');
146
+ } else {
147
+ console.log('No changes after linting. Nothing to commit.');
148
+ }
149
+ })
150
+ .catch((err) => {
151
+ console.error(err);
152
+ });
@@ -1,23 +1,36 @@
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) {
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'),lernaJsonUpdate=require('./updates/lernaJsonUpdate.cjs'),htmlPluginUpdate=require('./updates/htmlPluginUpdate.cjs'),licenseUpdate=require('./updates/licenseUpdate.cjs'),ignoreUpdate=require('./updates/ignoreUpdate.cjs'),generator$2=require('../add-frontend/generator.cjs'),generator$1=require('../add-backend/generator.cjs'),generator=require('../add-moleculer/generator.cjs'),generator$3=require('../add-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
4
  const basePath = options.path || '';
5
- const projectRoot = path__namespace.join(basePath, (_a = index.getValid(options.name)) !== null && _a !== void 0 ? _a : 'fullstack-pro');
5
+ const projectName = (_a = index.getValid(options.name)) !== null && _a !== void 0 ? _a : 'fullstack-pro';
6
+ const projectRoot = path__namespace.join(basePath, projectName);
6
7
  console.log(`basePath: ${basePath}`);
8
+ // backup existing lerna values
9
+ const lernaBackup = lernaJsonUpdate.backupLernaJson(tree, projectRoot);
10
+ // backup files codegen.yaml
11
+ const filesToBackup = ['codegen.yml', 'values-dev.yaml', 'values-prod.yaml', 'values-stage.yaml'];
12
+ const filesBackup = ignoreUpdate.backupFiles(tree, projectRoot, filesToBackup);
7
13
  devkit.generateFiles(tree, path__namespace.join(__dirname, 'files'), projectRoot, options);
8
14
  // Update Jenkinsfile with dynamic values
9
- const jenkinsFilePath = path__namespace.join(projectRoot, 'Jenkinsfile');
10
- jenkinsfileUpdate.updateJenkinsFile(jenkinsFilePath, options.name);
15
+ jenkinsfileUpdate.updateJenkinsFile(tree, projectRoot, projectName);
11
16
  // Update package.json with the project name
12
- packageJsonUpdate.updatePackageJson(tree, projectRoot, index.getValid(options.name));
17
+ packageJsonUpdate.updatePackageJson(tree, projectRoot, { name: projectName });
18
+ // Update tools/html-plugin-template
19
+ htmlPluginUpdate.updateHtmlPlugin(tree, projectRoot);
20
+ if (lernaBackup) {
21
+ // When update the existing lerna.json, it shouldn't overwrite version, allowbranch, packages
22
+ lernaJsonUpdate.restoreLernaJson(tree, projectRoot, lernaBackup);
23
+ }
24
+ // Restore files backup to ignore update
25
+ ignoreUpdate.restoreFiles(tree, projectRoot, filesBackup);
13
26
  yield devkit.formatFiles(tree);
14
27
  if (index.isValid(options.config)) {
15
28
  const configPath = path__namespace.resolve(basePath, index.getValid(options.config));
16
29
  if (fs__namespace.existsSync(configPath)) {
17
30
  try {
18
- const content = String(fs__namespace.readFileSync(configPath));
19
- const configs = JSON.parse(content);
31
+ const configs = JSON.parse(fs__namespace.readFileSync(configPath).toString());
20
32
  configs.parent = projectRoot;
33
+ configs.ns = projectName;
21
34
  yield processConfigs(tree, configs);
22
35
  }
23
36
  catch (error) {
@@ -25,13 +38,16 @@
25
38
  }
26
39
  }
27
40
  }
41
+ // Update license from package.json
42
+ licenseUpdate.updateLicense(tree, projectRoot);
28
43
  });
29
44
  }
30
- const generateServers = (tree, parent, servers) => tslib.__awaiter(void 0, void 0, void 0, function* () {
31
- for (const [serverName, serverConfig] of Object.entries(servers)) {
45
+ const generateServers = (tree, options) => tslib.__awaiter(void 0, void 0, void 0, function* () {
46
+ for (const [serverName, serverConfig] of Object.entries(options.servers)) {
32
47
  const configs = serverConfig;
33
48
  configs.name = serverName;
34
- configs.directory = path__namespace.join(parent, 'servers');
49
+ configs.directory = path__namespace.join(options.parent, 'servers');
50
+ configs.ns = options.ns;
35
51
  switch (configs === null || configs === void 0 ? void 0 : configs.type) {
36
52
  case 'frontend':
37
53
  yield generator$2.generateFrontend(tree, configs);
@@ -45,32 +61,25 @@ const generateServers = (tree, parent, servers) => tslib.__awaiter(void 0, void
45
61
  }
46
62
  }
47
63
  });
48
- const generatePackages = (tree, parent, packages) => tslib.__awaiter(void 0, void 0, void 0, function* () {
49
- for (const [packageName, packageConfig] of Object.entries(packages)) {
50
- const configs = packageConfig;
51
- configs.name = packageName;
52
- configs.directory = path__namespace.join(parent, 'packages');
53
- switch (packageConfig === null || packageConfig === void 0 ? void 0 : packageConfig.type) {
54
- case 'packages-core':
55
- yield generator$6.generateCorePackage(tree, configs);
56
- break;
57
- case 'packages-browser':
58
- yield generator$5.generateBrowserPackage(tree, configs);
59
- break;
60
- case 'packages-client':
61
- yield generator$4.generateClientPackage(tree, configs);
62
- break;
63
- case 'packages-server':
64
- yield generator$3.generateServerPackage(tree, configs);
65
- break;
64
+ const generateModules = (tree, options) => tslib.__awaiter(void 0, void 0, void 0, function* () {
65
+ for (const [moduleName, moduleConfig] of Object.entries(options.packages.modules)) {
66
+ for (const [packageName, packageConfig] of Object.entries(moduleConfig)) {
67
+ const configs = Object.assign(Object.assign({}, packageConfig), { name: moduleName, directory: path__namespace.join(options.parent, 'packages'), ns: options.ns, type: packageName });
68
+ yield generator$3.generatePackage(tree, configs, false);
66
69
  }
67
70
  }
68
71
  });
69
72
  const processConfigs = (tree, configs) => tslib.__awaiter(void 0, void 0, void 0, function* () {
70
73
  if (configs.servers) {
71
- yield generateServers(tree, configs.parent, configs.servers);
74
+ yield generateServers(tree, configs);
72
75
  }
73
76
  if (configs.packages && configs.packages.modules) {
74
- yield generatePackages(tree, configs.parent, configs.packages.modules);
77
+ yield generateModules(tree, configs);
78
+ }
79
+ if (configs.license) {
80
+ packageJsonUpdate.updatePackageJson(tree, configs.parent, { license: index.getValid(configs.license) });
81
+ }
82
+ if (configs.repository) {
83
+ packageJsonUpdate.updateRepository(tree, configs.parent, configs.repository);
75
84
  }
76
85
  });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":["path","getValid","generateFiles","updateJenkinsFile","updatePackageJson","formatFiles","isValid","fs","__awaiter","generateFrontend","generateBackend","generateMoleculer","generateCorePackage","generateBrowserPackage","generateClientPackage","generateServerPackage"],"mappings":"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"}
1
+ {"version":3,"file":"generator.cjs","sources":["../../../src/generators/add-fullstack/generator.ts"],"sourcesContent":[null],"names":["getValid","path","backupLernaJson","backupFiles","generateFiles","updateJenkinsFile","updatePackageJson","updateHtmlPlugin","restoreLernaJson","restoreFiles","formatFiles","isValid","fs","updateLicense","__awaiter","generateFrontend","generateBackend","generateMoleculer","generatePackage","updateRepository"],"mappings":"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"}
@@ -1,23 +1,36 @@
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) {
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,updateRepository}from'./updates/packageJsonUpdate.mjs';import {backupLernaJson,restoreLernaJson}from'./updates/lernaJsonUpdate.mjs';import {updateHtmlPlugin}from'./updates/htmlPluginUpdate.mjs';import {updateLicense}from'./updates/licenseUpdate.mjs';import {backupFiles,restoreFiles}from'./updates/ignoreUpdate.mjs';import {generateFrontend}from'../add-frontend/generator.mjs';import {generateBackend}from'../add-backend/generator.mjs';import {generateMoleculer}from'../add-moleculer/generator.mjs';import {generatePackage}from'../add-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
4
  const basePath = options.path || '';
5
- const projectRoot = path.join(basePath, (_a = getValid(options.name)) !== null && _a !== void 0 ? _a : 'fullstack-pro');
5
+ const projectName = (_a = getValid(options.name)) !== null && _a !== void 0 ? _a : 'fullstack-pro';
6
+ const projectRoot = path.join(basePath, projectName);
6
7
  console.log(`basePath: ${basePath}`);
8
+ // backup existing lerna values
9
+ const lernaBackup = backupLernaJson(tree, projectRoot);
10
+ // backup files codegen.yaml
11
+ const filesToBackup = ['codegen.yml', 'values-dev.yaml', 'values-prod.yaml', 'values-stage.yaml'];
12
+ const filesBackup = backupFiles(tree, projectRoot, filesToBackup);
7
13
  generateFiles(tree, path.join(__dirname, 'files'), projectRoot, options);
8
14
  // Update Jenkinsfile with dynamic values
9
- const jenkinsFilePath = path.join(projectRoot, 'Jenkinsfile');
10
- updateJenkinsFile(jenkinsFilePath, options.name);
15
+ updateJenkinsFile(tree, projectRoot, projectName);
11
16
  // Update package.json with the project name
12
- updatePackageJson(tree, projectRoot, getValid(options.name));
17
+ updatePackageJson(tree, projectRoot, { name: projectName });
18
+ // Update tools/html-plugin-template
19
+ updateHtmlPlugin(tree, projectRoot);
20
+ if (lernaBackup) {
21
+ // When update the existing lerna.json, it shouldn't overwrite version, allowbranch, packages
22
+ restoreLernaJson(tree, projectRoot, lernaBackup);
23
+ }
24
+ // Restore files backup to ignore update
25
+ restoreFiles(tree, projectRoot, filesBackup);
13
26
  yield formatFiles(tree);
14
27
  if (isValid(options.config)) {
15
28
  const configPath = path.resolve(basePath, getValid(options.config));
16
29
  if (fs.existsSync(configPath)) {
17
30
  try {
18
- const content = String(fs.readFileSync(configPath));
19
- const configs = JSON.parse(content);
31
+ const configs = JSON.parse(fs.readFileSync(configPath).toString());
20
32
  configs.parent = projectRoot;
33
+ configs.ns = projectName;
21
34
  yield processConfigs(tree, configs);
22
35
  }
23
36
  catch (error) {
@@ -25,13 +38,16 @@ import {__awaiter}from'tslib';import {generateFiles,formatFiles}from'@nx/devkit'
25
38
  }
26
39
  }
27
40
  }
41
+ // Update license from package.json
42
+ updateLicense(tree, projectRoot);
28
43
  });
29
44
  }
30
- const generateServers = (tree, parent, servers) => __awaiter(void 0, void 0, void 0, function* () {
31
- for (const [serverName, serverConfig] of Object.entries(servers)) {
45
+ const generateServers = (tree, options) => __awaiter(void 0, void 0, void 0, function* () {
46
+ for (const [serverName, serverConfig] of Object.entries(options.servers)) {
32
47
  const configs = serverConfig;
33
48
  configs.name = serverName;
34
- configs.directory = path.join(parent, 'servers');
49
+ configs.directory = path.join(options.parent, 'servers');
50
+ configs.ns = options.ns;
35
51
  switch (configs === null || configs === void 0 ? void 0 : configs.type) {
36
52
  case 'frontend':
37
53
  yield generateFrontend(tree, configs);
@@ -45,32 +61,25 @@ const generateServers = (tree, parent, servers) => __awaiter(void 0, void 0, voi
45
61
  }
46
62
  }
47
63
  });
48
- const generatePackages = (tree, parent, packages) => __awaiter(void 0, void 0, void 0, function* () {
49
- for (const [packageName, packageConfig] of Object.entries(packages)) {
50
- const configs = packageConfig;
51
- configs.name = packageName;
52
- configs.directory = path.join(parent, 'packages');
53
- switch (packageConfig === null || packageConfig === void 0 ? void 0 : packageConfig.type) {
54
- case 'packages-core':
55
- yield generateCorePackage(tree, configs);
56
- break;
57
- case 'packages-browser':
58
- yield generateBrowserPackage(tree, configs);
59
- break;
60
- case 'packages-client':
61
- yield generateClientPackage(tree, configs);
62
- break;
63
- case 'packages-server':
64
- yield generateServerPackage(tree, configs);
65
- break;
64
+ const generateModules = (tree, options) => __awaiter(void 0, void 0, void 0, function* () {
65
+ for (const [moduleName, moduleConfig] of Object.entries(options.packages.modules)) {
66
+ for (const [packageName, packageConfig] of Object.entries(moduleConfig)) {
67
+ const configs = Object.assign(Object.assign({}, packageConfig), { name: moduleName, directory: path.join(options.parent, 'packages'), ns: options.ns, type: packageName });
68
+ yield generatePackage(tree, configs, false);
66
69
  }
67
70
  }
68
71
  });
69
72
  const processConfigs = (tree, configs) => __awaiter(void 0, void 0, void 0, function* () {
70
73
  if (configs.servers) {
71
- yield generateServers(tree, configs.parent, configs.servers);
74
+ yield generateServers(tree, configs);
72
75
  }
73
76
  if (configs.packages && configs.packages.modules) {
74
- yield generatePackages(tree, configs.parent, configs.packages.modules);
77
+ yield generateModules(tree, configs);
78
+ }
79
+ if (configs.license) {
80
+ updatePackageJson(tree, configs.parent, { license: getValid(configs.license) });
81
+ }
82
+ if (configs.repository) {
83
+ updateRepository(tree, configs.parent, configs.repository);
75
84
  }
76
85
  });export{addFullstackGenerator,addFullstackGenerator as default};//# sourceMappingURL=generator.mjs.map