@common-stack/generate-plugin 5.0.4-alpha.9 → 5.0.5-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (89) hide show
  1. package/CHANGELOG.md +48 -0
  2. package/README.md +42 -0
  3. package/generators.json +5 -0
  4. package/lib/generators/add-backend/files/CHANGELOG.md +196 -0
  5. package/lib/generators/add-backend/files/Dockerfile +30 -0
  6. package/lib/generators/add-backend/files/LICENSE +661 -0
  7. package/lib/generators/add-backend/files/README.md +133 -0
  8. package/lib/generators/add-backend/files/__tests__/test.ts.template +95 -0
  9. package/lib/generators/add-backend/files/babel.config.js +45 -0
  10. package/lib/generators/add-backend/files/build.config.js +14 -0
  11. package/lib/generators/add-backend/files/build.config.mjs +27 -0
  12. package/lib/generators/add-backend/files/generated-schema.graphql +235 -0
  13. package/lib/generators/add-backend/files/jest.config.js +27 -0
  14. package/lib/generators/add-backend/files/knexfile.js +63 -0
  15. package/lib/generators/add-backend/files/package.json +162 -0
  16. package/lib/generators/add-backend/files/src/api/remote-config.ts.template +11 -0
  17. package/lib/generators/add-backend/files/src/api/resolver.ts.template +15 -0
  18. package/lib/generators/add-backend/files/src/api/root-schema.graphqls +96 -0
  19. package/lib/generators/add-backend/files/src/api/scalar.ts.template +16 -0
  20. package/lib/generators/add-backend/files/src/api/schema-builder.ts.template +189 -0
  21. package/lib/generators/add-backend/files/src/api/utils.ts.template +44 -0
  22. package/lib/generators/add-backend/files/src/config/env-config.ts.template +34 -0
  23. package/lib/generators/add-backend/files/src/config/index.ts.template +1 -0
  24. package/lib/generators/add-backend/files/src/config/moleculer.config.ts.template +228 -0
  25. package/lib/generators/add-backend/files/src/connectors/connection-broker.ts.template +80 -0
  26. package/lib/generators/add-backend/files/src/connectors/graphql-pubsub-connector.ts.template +43 -0
  27. package/lib/generators/add-backend/files/src/connectors/mongo-connector.ts.template +78 -0
  28. package/lib/generators/add-backend/files/src/connectors/nats-connector.ts.template +82 -0
  29. package/lib/generators/add-backend/files/src/connectors/redis-connector.ts.template +73 -0
  30. package/lib/generators/add-backend/files/src/env.ts.template +5 -0
  31. package/lib/generators/add-backend/files/src/express-app.ts.template +67 -0
  32. package/lib/generators/add-backend/files/src/index.ts.template +56 -0
  33. package/lib/generators/add-backend/files/src/interfaces/index.ts.template +1 -0
  34. package/lib/generators/add-backend/files/src/interfaces/module-interface.ts.template +16 -0
  35. package/lib/generators/add-backend/files/src/main.spec.ts.template +129 -0
  36. package/lib/generators/add-backend/files/src/middleware/__tests__/cors.test.ts.template +12 -0
  37. package/lib/generators/add-backend/files/src/middleware/cors.ts.template +31 -0
  38. package/lib/generators/add-backend/files/src/middleware/error.ts.template +63 -0
  39. package/lib/generators/add-backend/files/src/middleware/moleculer-inter-namespace.ts.template +60 -0
  40. package/lib/generators/add-backend/files/src/middleware/persistedQuery.ts.template +40 -0
  41. package/lib/generators/add-backend/files/src/middleware/sentry.ts.template +9 -0
  42. package/lib/generators/add-backend/files/src/middleware/services.ts.template +16 -0
  43. package/lib/generators/add-backend/files/src/middleware/tracer.ts.template +24 -0
  44. package/lib/generators/add-backend/files/src/modules/auth/schema/auth-schema.graphql +25 -0
  45. package/lib/generators/add-backend/files/src/modules/index.ts.template +17 -0
  46. package/lib/generators/add-backend/files/src/modules/module.ts.template +78 -0
  47. package/lib/generators/add-backend/files/src/server-setup/graphql-server.ts.template +185 -0
  48. package/lib/generators/add-backend/files/src/server-setup/graphql-subscription-server.ts.template +113 -0
  49. package/lib/generators/add-backend/files/src/server-setup/graphql-ws.ts.template +158 -0
  50. package/lib/generators/add-backend/files/src/server-setup/mongodb-migration-update.ts.template +47 -0
  51. package/lib/generators/add-backend/files/src/server-setup/utils.ts.template +43 -0
  52. package/lib/generators/add-backend/files/src/server-setup/websocket-multipath-update.ts.template +88 -0
  53. package/lib/generators/add-backend/files/src/service.ts.template +36 -0
  54. package/lib/generators/add-backend/files/src/stack-server.ts.template +277 -0
  55. package/lib/generators/add-backend/files/src/utils/migrations.ts.template +32 -0
  56. package/lib/generators/add-backend/files/tsconfig.base.json +30 -0
  57. package/lib/generators/add-backend/files/tsconfig.json +19 -0
  58. package/lib/generators/add-backend/files/uploads/3986781.ppt +0 -0
  59. package/lib/generators/add-backend/files/webpack.config.js +186 -0
  60. package/lib/generators/add-backend/files/webpack.config.mjs +209 -0
  61. package/lib/generators/add-backend/generator.cjs +20 -0
  62. package/lib/generators/add-backend/generator.cjs.map +1 -0
  63. package/lib/generators/add-backend/generator.d.ts +4 -0
  64. package/lib/generators/add-backend/generator.mjs +20 -0
  65. package/lib/generators/add-backend/generator.mjs.map +1 -0
  66. package/lib/generators/add-backend/generator.spec.d.ts +1 -0
  67. package/lib/generators/add-backend/schema.json +17 -0
  68. package/lib/generators/add-frontend/generator.cjs +3 -12
  69. package/lib/generators/add-frontend/generator.cjs.map +1 -1
  70. package/lib/generators/add-frontend/generator.mjs +2 -11
  71. package/lib/generators/add-frontend/generator.mjs.map +1 -1
  72. package/lib/generators/add-frontend/templates/package.json +23 -24
  73. package/lib/index.cjs +1 -1
  74. package/lib/index.d.ts +1 -0
  75. package/lib/index.mjs +1 -1
  76. package/lib/utils/index.cjs +8 -0
  77. package/lib/utils/index.cjs.map +1 -0
  78. package/lib/utils/index.d.ts +1 -0
  79. package/lib/utils/index.mjs +8 -0
  80. package/lib/utils/index.mjs.map +1 -0
  81. package/package.json +2 -2
  82. package/rollup.config.mjs +6 -4
  83. package/src/generators/add-backend/generator.spec.ts +20 -0
  84. package/src/generators/add-backend/generator.ts +30 -0
  85. package/src/generators/add-backend/schema.d.ts +4 -0
  86. package/src/generators/add-backend/schema.json +17 -0
  87. package/src/generators/add-frontend/generator.ts +2 -12
  88. package/src/index.ts +1 -1
  89. package/src/utils/index.ts +10 -0
@@ -0,0 +1,209 @@
1
+ import 'source-map-support/register.js';
2
+ import webpack from 'webpack';
3
+ import path from 'path';
4
+ import { fileURLToPath } from 'url';
5
+ import CopyWebpackPlugin from 'copy-webpack-plugin';
6
+ import { CleanWebpackPlugin } from 'clean-webpack-plugin';
7
+ import nodeExternals from 'webpack-node-externals';
8
+ import Dotenv from 'dotenv-webpack';
9
+ import NodemonPlugin from 'nodemon-webpack-plugin';
10
+ import EnvListPlugin from '@common-stack/env-list-loader';
11
+ import buildConfig from './build.config.mjs';
12
+
13
+ const modulenameExtra = process.env.BUILD_MODULE_TO_INCLUDE ? `${process.env.BUILD_MODULE_TO_INCLUDE}|` : '';
14
+ let modulenameRegex;
15
+
16
+ // Get the directory name of the current module
17
+ const __dirname = path.dirname(fileURLToPath(import.meta.url));
18
+
19
+
20
+ try {
21
+ modulenameRegex = new RegExp(
22
+ `(${modulenameExtra}ts-invariant|webpack/hot/poll)|(\\.(css|less|scss|png|ico|jpg|gif|xml|woff|woff2|otf|ttf|eot|svg)(\\?[0-9a-z]+)?$)`,
23
+ );
24
+ console.log('Module Name Regex: ', modulenameRegex);
25
+ } catch (error) {
26
+ console.error('Error creating regex for module name: ', error);
27
+ }
28
+
29
+ if (process.env.BUILD_MODULE_TO_INCLUDE) {
30
+ console.log('Build Module to include (BUILD_MODULE_TO_INCLUDE): ', process.env.BUILD_MODULE_TO_INCLUDE);
31
+ } else {
32
+ console.log('BUILD_MODULE_TO_INCLUDE is not set.');
33
+ }
34
+
35
+ const config = {
36
+ entry: {
37
+ // index: (process.env.NODE_ENV !== 'production' ? ['webpack/hot/poll?200'] : []).concat([
38
+ // // 'raf/polyfill',
39
+ // './src/index.ts',
40
+ // ]),
41
+ server: {
42
+ import: './src/index.ts',
43
+ /*
44
+ * This prevents code-splitting of async imports into separate chunks.
45
+ * We can't allow that for the server, because Webpack will duplicate
46
+ * certain modules that must be shared into each chunk (context,
47
+ * gettext, DBDefs, linkedEntities, ...).
48
+ */
49
+ chunkLoading: false,
50
+ },
51
+ },
52
+ name: 'server',
53
+ module: {
54
+ rules: [
55
+ {
56
+ test: /\.(png|ico|jpg|gif|xml)$/,
57
+ use: { loader: 'url-loader', options: { name: '[hash].[ext]', limit: 100000 } },
58
+ },
59
+ {
60
+ test: /\.woff(2)?(\?[0-9a-z]+)?$/,
61
+ use: { loader: 'url-loader', options: { name: '[hash].[ext]', limit: 100000 } },
62
+ },
63
+ {
64
+ test: /\.(otf|ttf|eot|svg)(\?[0-9a-z]+)?$/,
65
+ use: { loader: 'file-loader', options: { name: '[hash].[ext]' } },
66
+ },
67
+ {
68
+ test: /\.css$/,
69
+ use: [
70
+ { loader: 'isomorphic-style-loader' },
71
+ { loader: 'css-loader', options: { sourceMap: true } },
72
+ { loader: 'postcss-loader', options: { sourceMap: true } },
73
+ ],
74
+ },
75
+ {
76
+ test: /\.scss$/,
77
+ use: [
78
+ { loader: 'isomorphic-style-loader' },
79
+ { loader: 'css-loader', options: { sourceMap: true } },
80
+ { loader: 'postcss-loader', options: { sourceMap: true } },
81
+ { loader: 'sass-loader', options: { sourceMap: true } },
82
+ ],
83
+ },
84
+ {
85
+ test: /\.less$/,
86
+ use: [
87
+ { loader: 'isomorphic-style-loader' },
88
+ { loader: 'css-loader', options: { sourceMap: true } },
89
+ { loader: 'postcss-loader', options: { sourceMap: true } },
90
+ { loader: 'less-loader', options: { javascriptEnabled: true, sourceMap: true } },
91
+ ],
92
+ },
93
+ { test: /\.graphqls/, use: { loader: 'raw-loader' } },
94
+ { test: /\.(graphql|gql)$/, use: [{ loader: 'graphql-tag/loader' }] },
95
+ // {
96
+ // test: /\.[tj]sx?$/,
97
+ // use: {
98
+ // loader: 'babel-loader',
99
+ // options: { babelrc: true, rootMode: 'upward-optional' },
100
+ // },
101
+ // },
102
+ {
103
+ test: /\.tsx?$/, // for TypeScript
104
+ loader: 'esbuild-loader',
105
+ options: {
106
+ loader: 'tsx', // Or 'ts' for TypeScript without JSX
107
+ target: 'es2015', // Specify ECMAScript target version
108
+ },
109
+ exclude: /node_modules/,
110
+ },
111
+ {
112
+ test: /\.jsx?$/, // for JavaScript
113
+ loader: 'esbuild-loader',
114
+ options: {
115
+ loader: 'jsx', // Or 'js' for plain JavaScript
116
+ target: 'es2015',
117
+ },
118
+ exclude: /node_modules/,
119
+ },
120
+ {
121
+ // searches for files ends with <dir>/config/env-config.js or <dir>/config/public-config.js
122
+ test: /config\/(env-config|public-config)\.(j|t)s/,
123
+ use: {
124
+ loader: '@common-stack/env-list-loader',
125
+ },
126
+ },
127
+ { test: /locales/, use: { loader: '@alienfast/i18next-loader' } },
128
+ ],
129
+ unsafeCache: false,
130
+ },
131
+ resolve: {
132
+ symlinks: true,
133
+ cacheWithContext: false,
134
+ unsafeCache: false,
135
+ extensions: [
136
+ '.web.mjs',
137
+ '.web.js',
138
+ '.web.jsx',
139
+ '.web.ts',
140
+ '.web.tsx',
141
+ '.mjs',
142
+ '.js',
143
+ '.jsx',
144
+ '.ts',
145
+ '.tsx',
146
+ '.json',
147
+ ],
148
+ },
149
+ watchOptions: { ignored: /dist/ },
150
+ output: {
151
+ pathinfo: false,
152
+ filename: 'index.js',
153
+ path: path.join(__dirname, 'dist'),
154
+ // publicPath: '/',
155
+ sourceMapFilename: '[name].[chunkhash].js.map',
156
+ module: true, // Enable outputting ESM
157
+ library: {
158
+ type: 'module' // Specify library target as module
159
+ }
160
+ },
161
+ devtool: process.env.NODE_ENV === 'production' ? 'nosources-source-map' : 'cheap-module-source-map',
162
+ mode: process.env.NODE_ENV || 'development',
163
+ performance: { hints: false },
164
+ plugins: (process.env.NODE_ENV !== 'production'
165
+ ? [
166
+ // new Dotenv(),
167
+ new webpack.HotModuleReplacementPlugin(),
168
+ new NodemonPlugin({ script: './dist/index.js' }),
169
+ ]
170
+ : []
171
+ ).concat([
172
+ // The plugin lists the environment that required as well recommendation about the keys used.
173
+ new EnvListPlugin.Plugin(),
174
+ new CleanWebpackPlugin({ cleanOnceBeforeBuildPatterns: ['dist'] }),
175
+ new webpack.DefinePlugin(
176
+ Object.assign(
177
+ ...Object.entries(buildConfig).map(([k, v]) => ({
178
+ [k]: typeof v !== 'string' ? v : `"${v.replace(/\\/g, '\\\\')}"`,
179
+ })),
180
+ ),
181
+ ),
182
+ // new CopyWebpackPlugin({
183
+ // patterns: [
184
+ // {
185
+ // from: '../../tools/esm-wrapper.js',
186
+ // to: 'index.js',
187
+ // },
188
+ // ],
189
+ // }),
190
+ ]),
191
+ target: 'node18',
192
+ experiments: {
193
+ outputModule: true
194
+ },
195
+ externals: [
196
+ nodeExternals(),
197
+ nodeExternals({
198
+ modulesDir: path.resolve(__dirname, '../../node_modules'),
199
+ allowlist: [modulenameRegex],
200
+ }),
201
+ ],
202
+ optimization: {
203
+ concatenateModules: false,
204
+ minimize: false,
205
+ },
206
+ // node: { __dirname: true, __filename: true },
207
+ };
208
+
209
+ export default config;
@@ -0,0 +1,20 @@
1
+ 'use strict';Object.defineProperty(exports,'__esModule',{value:true});var tslib=require('tslib'),devkit=require('@nx/devkit'),path=require('path'),index=require('../../utils/index.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 addBackendGenerator(tree, options) {
2
+ return tslib.__awaiter(this, void 0, void 0, function* () {
3
+ const basePath = process.cwd();
4
+ const projectName = options.ns ? `backend-${options.ns}-server` : 'backend-server';
5
+ const projectRoot = options.path ? `${options.path}${projectName}` : projectName;
6
+ index.resetProject(`${basePath}/${projectRoot}`);
7
+ // addProjectConfiguration(tree, framework, {
8
+ // root: projectRoot,
9
+ // projectType: 'library',
10
+ // sourceRoot: projectSrc,
11
+ // targets: {},
12
+ // });
13
+ devkit.generateFiles(tree, path__namespace.join(__dirname, 'files'), projectRoot, {});
14
+ devkit.updateJson(tree, `${projectRoot}/package.json`, (packageJson) => {
15
+ packageJson['name'] = projectName;
16
+ return packageJson;
17
+ });
18
+ yield devkit.formatFiles(tree);
19
+ });
20
+ }exports.addBackendGenerator=addBackendGenerator;exports.default=addBackendGenerator;//# sourceMappingURL=generator.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generator.cjs","sources":["../../../src/generators/add-backend/generator.ts"],"sourcesContent":[null],"names":["resetProject","generateFiles","path","updateJson","formatFiles"],"mappings":"whBAKsB,SAAA,mBAAmB,CAAC,IAAU,EAAE,OAAkC,EAAA;;AACpF,QAAA,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;AAC/B,QAAA,MAAM,WAAW,GAAG,OAAO,CAAC,EAAE,GAAG,CAAW,QAAA,EAAA,OAAO,CAAC,EAAE,CAAA,OAAA,CAAS,GAAG,gBAAgB,CAAC;AACnF,QAAA,MAAM,WAAW,GAAG,OAAO,CAAC,IAAI,GAAG,CAAA,EAAG,OAAO,CAAC,IAAI,GAAG,WAAW,CAAA,CAAE,GAAG,WAAW,CAAC;AAGjF,QAAAA,kBAAY,CAAC,CAAG,EAAA,QAAQ,IAAI,WAAW,CAAA,CAAE,CAAC,CAAC;;;;;;;AAS3C,QAAAC,oBAAa,CAAC,IAAI,EAAEC,eAAI,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,EAAE,WAAW,EAAE,EAAE,CAAC,CAAC;QACpEC,iBAAU,CAAC,IAAI,EAAE,CAAG,EAAA,WAAW,eAAe,EAAE,CAAC,WAAW,KAAI;AAC5D,YAAA,WAAW,CAAC,MAAM,CAAC,GAAG,WAAW,CAAC;AAClC,YAAA,OAAO,WAAW,CAAC;AACvB,SAAC,CAAC,CAAC;AAEH,QAAA,MAAMC,kBAAW,CAAC,IAAI,CAAC,CAAC;KAC3B,CAAA,CAAA;AAAA"}
@@ -0,0 +1,4 @@
1
+ import { Tree } from '@nx/devkit';
2
+ import { AddBackendGeneratorSchema } from './schema';
3
+ export declare function addBackendGenerator(tree: Tree, options: AddBackendGeneratorSchema): Promise<void>;
4
+ export default addBackendGenerator;
@@ -0,0 +1,20 @@
1
+ import {__awaiter}from'tslib';import {generateFiles,updateJson,formatFiles}from'@nx/devkit';import*as path from'path';import {resetProject}from'../../utils/index.mjs';function addBackendGenerator(tree, options) {
2
+ return __awaiter(this, void 0, void 0, function* () {
3
+ const basePath = process.cwd();
4
+ const projectName = options.ns ? `backend-${options.ns}-server` : 'backend-server';
5
+ const projectRoot = options.path ? `${options.path}${projectName}` : projectName;
6
+ resetProject(`${basePath}/${projectRoot}`);
7
+ // addProjectConfiguration(tree, framework, {
8
+ // root: projectRoot,
9
+ // projectType: 'library',
10
+ // sourceRoot: projectSrc,
11
+ // targets: {},
12
+ // });
13
+ generateFiles(tree, path.join(__dirname, 'files'), projectRoot, {});
14
+ updateJson(tree, `${projectRoot}/package.json`, (packageJson) => {
15
+ packageJson['name'] = projectName;
16
+ return packageJson;
17
+ });
18
+ yield formatFiles(tree);
19
+ });
20
+ }export{addBackendGenerator,addBackendGenerator as default};//# sourceMappingURL=generator.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generator.mjs","sources":["../../../src/generators/add-backend/generator.ts"],"sourcesContent":[null],"names":[],"mappings":"uKAKsB,SAAA,mBAAmB,CAAC,IAAU,EAAE,OAAkC,EAAA;;AACpF,QAAA,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;AAC/B,QAAA,MAAM,WAAW,GAAG,OAAO,CAAC,EAAE,GAAG,CAAW,QAAA,EAAA,OAAO,CAAC,EAAE,CAAA,OAAA,CAAS,GAAG,gBAAgB,CAAC;AACnF,QAAA,MAAM,WAAW,GAAG,OAAO,CAAC,IAAI,GAAG,CAAA,EAAG,OAAO,CAAC,IAAI,GAAG,WAAW,CAAA,CAAE,GAAG,WAAW,CAAC;AAGjF,QAAA,YAAY,CAAC,CAAG,EAAA,QAAQ,IAAI,WAAW,CAAA,CAAE,CAAC,CAAC;;;;;;;AAS3C,QAAA,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,EAAE,WAAW,EAAE,EAAE,CAAC,CAAC;QACpE,UAAU,CAAC,IAAI,EAAE,CAAG,EAAA,WAAW,eAAe,EAAE,CAAC,WAAW,KAAI;AAC5D,YAAA,WAAW,CAAC,MAAM,CAAC,GAAG,WAAW,CAAC;AAClC,YAAA,OAAO,WAAW,CAAC;AACvB,SAAC,CAAC,CAAC;AAEH,QAAA,MAAM,WAAW,CAAC,IAAI,CAAC,CAAC;KAC3B,CAAA,CAAA;AAAA"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,17 @@
1
+ {
2
+ "$schema": "https://json-schema.org/schema",
3
+ "$id": "AddBackend",
4
+ "title": "",
5
+ "type": "object",
6
+ "properties": {
7
+ "ns": {
8
+ "type": "string",
9
+ "description": "The project namespace"
10
+ },
11
+ "path": {
12
+ "type": "string",
13
+ "description": "The project path ex: \"servers/\", default: \"/\""
14
+ }
15
+ },
16
+ "required": ["ns"]
17
+ }
@@ -1,22 +1,13 @@
1
- 'use strict';Object.defineProperty(exports,'__esModule',{value:true});var tslib=require('tslib'),devkit=require('@nx/devkit'),path=require('path'),fs=require('node:fs');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);const DEFAULT_FRAMEWORK = 'antui';
2
- const resetProject = (rootDir) => {
3
- if (fs__namespace.existsSync(`${rootDir}/project.json`)) {
4
- fs__namespace.unlinkSync(`${rootDir}/project.json`);
5
- }
6
- if (fs__namespace.existsSync(`${rootDir}/src`)) {
7
- fs__namespace.rmSync(`${rootDir}/src`, { recursive: true, force: true });
8
- }
9
- };
1
+ 'use strict';Object.defineProperty(exports,'__esModule',{value:true});var tslib=require('tslib'),devkit=require('@nx/devkit'),path=require('path'),index=require('../../utils/index.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);const DEFAULT_FRAMEWORK = 'antui';
10
2
  function addFrontendGenerator(tree, options) {
11
3
  return tslib.__awaiter(this, void 0, void 0, function* () {
12
4
  const basePath = process.cwd();
13
- const projectName = `frontend-${options.ns}-server`;
5
+ const projectName = options.ns ? `frontend-${options.ns}-server` : 'frontend-server';
14
6
  const projectRoot = options.path ? `${options.path}${projectName}` : projectName;
15
7
  const projectSrc = `${projectRoot}/src`;
16
- // const sourcePath = path.join(__dirname, 'entries');
17
8
  const framework = options.framework || DEFAULT_FRAMEWORK;
18
9
  console.log('UI framework specified: ', framework);
19
- resetProject(`${basePath}/${projectRoot}`);
10
+ index.resetProject(`${basePath}/${projectRoot}`);
20
11
  // addProjectConfiguration(tree, framework, {
21
12
  // root: projectRoot,
22
13
  // projectType: 'library',
@@ -1 +1 @@
1
- {"version":3,"file":"generator.cjs","sources":["../../../src/generators/add-frontend/generator.ts"],"sourcesContent":[null],"names":["fs","generateFiles","path","updateJson","formatFiles"],"mappings":"mkBAKA,MAAM,iBAAiB,GAAG,OAAO,CAAC;AAElC,MAAM,YAAY,GAAG,CAAC,OAAe,KAAI;IACrC,IAAIA,aAAE,CAAC,UAAU,CAAC,GAAG,OAAO,CAAA,aAAA,CAAe,CAAC,EAAE;AAC1C,QAAAA,aAAE,CAAC,UAAU,CAAC,GAAG,OAAO,CAAA,aAAA,CAAe,CAAC,CAAC;KAC5C;IACD,IAAIA,aAAE,CAAC,UAAU,CAAC,GAAG,OAAO,CAAA,IAAA,CAAM,CAAC,EAAE;AACjC,QAAAA,aAAE,CAAC,MAAM,CAAC,CAAG,EAAA,OAAO,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;KACjE;AACL,CAAC,CAAA;AAEqB,SAAA,oBAAoB,CAAC,IAAU,EAAE,OAAmC,EAAA;;AACtF,QAAA,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;AAC/B,QAAA,MAAM,WAAW,GAAG,CAAA,SAAA,EAAY,OAAO,CAAC,EAAE,SAAS,CAAC;AACpD,QAAA,MAAM,WAAW,GAAG,OAAO,CAAC,IAAI,GAAG,CAAA,EAAG,OAAO,CAAC,IAAI,GAAG,WAAW,CAAA,CAAE,GAAG,WAAW,CAAC;AACjF,QAAA,MAAM,UAAU,GAAG,CAAG,EAAA,WAAW,MAAM,CAAC;;AAGxC,QAAA,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,iBAAiB,CAAC;AACzD,QAAA,OAAO,CAAC,GAAG,CAAC,0BAA0B,EAAE,SAAS,CAAC,CAAC;AAEnD,QAAA,YAAY,CAAC,CAAG,EAAA,QAAQ,IAAI,WAAW,CAAA,CAAE,CAAC,CAAC;;;;;;;AAS3C,QAAAC,oBAAa,CAAC,IAAI,EAAEC,eAAI,CAAC,IAAI,CAAC,SAAS,EAAE,WAAW,CAAC,EAAE,WAAW,EAAE,EAAE,CAAC,CAAC;AACxE,QAAAD,oBAAa,CAAC,IAAI,EAAEC,eAAI,CAAC,IAAI,CAAC,SAAS,EAAE,YAAY,EAAE,SAAS,CAAC,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;QACxFC,iBAAU,CAAC,IAAI,EAAE,CAAG,EAAA,WAAW,eAAe,EAAE,CAAC,WAAW,KAAI;AAC5D,YAAA,WAAW,CAAC,MAAM,CAAC,GAAG,WAAW,CAAC;AAClC,YAAA,OAAO,WAAW,CAAC;AACvB,SAAC,CAAC,CAAC;QACHA,iBAAU,CAAC,IAAI,EAAE,CAAG,EAAA,WAAW,cAAc,EAAE,CAAC,UAAU,KAAI;AAC1D,YAAA,UAAU,CAAC,aAAa,CAAC,GAAG,SAAS,CAAC;AACtC,YAAA,OAAO,UAAU,CAAC;AACtB,SAAC,CAAC,CAAC;AAEH,QAAA,MAAMC,kBAAW,CAAC,IAAI,CAAC,CAAC;KAC3B,CAAA,CAAA;AAAA"}
1
+ {"version":3,"file":"generator.cjs","sources":["../../../src/generators/add-frontend/generator.ts"],"sourcesContent":[null],"names":["resetProject","generateFiles","path","updateJson","formatFiles"],"mappings":"whBAKA,MAAM,iBAAiB,GAAG,OAAO,CAAC;AAEZ,SAAA,oBAAoB,CAAC,IAAU,EAAE,OAAmC,EAAA;;AACtF,QAAA,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;AAC/B,QAAA,MAAM,WAAW,GAAG,OAAO,CAAC,EAAE,GAAG,CAAY,SAAA,EAAA,OAAO,CAAC,EAAE,CAAA,OAAA,CAAS,GAAG,iBAAiB,CAAC;AACrF,QAAA,MAAM,WAAW,GAAG,OAAO,CAAC,IAAI,GAAG,CAAA,EAAG,OAAO,CAAC,IAAI,GAAG,WAAW,CAAA,CAAE,GAAG,WAAW,CAAC;AACjF,QAAA,MAAM,UAAU,GAAG,CAAG,EAAA,WAAW,MAAM,CAAC;AAExC,QAAA,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,iBAAiB,CAAC;AACzD,QAAA,OAAO,CAAC,GAAG,CAAC,0BAA0B,EAAE,SAAS,CAAC,CAAC;AAEnD,QAAAA,kBAAY,CAAC,CAAG,EAAA,QAAQ,IAAI,WAAW,CAAA,CAAE,CAAC,CAAC;;;;;;;AAS3C,QAAAC,oBAAa,CAAC,IAAI,EAAEC,eAAI,CAAC,IAAI,CAAC,SAAS,EAAE,WAAW,CAAC,EAAE,WAAW,EAAE,EAAE,CAAC,CAAC;AACxE,QAAAD,oBAAa,CAAC,IAAI,EAAEC,eAAI,CAAC,IAAI,CAAC,SAAS,EAAE,YAAY,EAAE,SAAS,CAAC,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;QACxFC,iBAAU,CAAC,IAAI,EAAE,CAAG,EAAA,WAAW,eAAe,EAAE,CAAC,WAAW,KAAI;AAC5D,YAAA,WAAW,CAAC,MAAM,CAAC,GAAG,WAAW,CAAC;AAClC,YAAA,OAAO,WAAW,CAAC;AACvB,SAAC,CAAC,CAAC;QACHA,iBAAU,CAAC,IAAI,EAAE,CAAG,EAAA,WAAW,cAAc,EAAE,CAAC,UAAU,KAAI;AAC1D,YAAA,UAAU,CAAC,aAAa,CAAC,GAAG,SAAS,CAAC;AACtC,YAAA,OAAO,UAAU,CAAC;AACtB,SAAC,CAAC,CAAC;AAEH,QAAA,MAAMC,kBAAW,CAAC,IAAI,CAAC,CAAC;KAC3B,CAAA,CAAA;AAAA"}
@@ -1,19 +1,10 @@
1
- import {__awaiter}from'tslib';import {generateFiles,updateJson,formatFiles}from'@nx/devkit';import*as path from'path';import*as fs from'node:fs';const DEFAULT_FRAMEWORK = 'antui';
2
- const resetProject = (rootDir) => {
3
- if (fs.existsSync(`${rootDir}/project.json`)) {
4
- fs.unlinkSync(`${rootDir}/project.json`);
5
- }
6
- if (fs.existsSync(`${rootDir}/src`)) {
7
- fs.rmSync(`${rootDir}/src`, { recursive: true, force: true });
8
- }
9
- };
1
+ import {__awaiter}from'tslib';import {generateFiles,updateJson,formatFiles}from'@nx/devkit';import*as path from'path';import {resetProject}from'../../utils/index.mjs';const DEFAULT_FRAMEWORK = 'antui';
10
2
  function addFrontendGenerator(tree, options) {
11
3
  return __awaiter(this, void 0, void 0, function* () {
12
4
  const basePath = process.cwd();
13
- const projectName = `frontend-${options.ns}-server`;
5
+ const projectName = options.ns ? `frontend-${options.ns}-server` : 'frontend-server';
14
6
  const projectRoot = options.path ? `${options.path}${projectName}` : projectName;
15
7
  const projectSrc = `${projectRoot}/src`;
16
- // const sourcePath = path.join(__dirname, 'entries');
17
8
  const framework = options.framework || DEFAULT_FRAMEWORK;
18
9
  console.log('UI framework specified: ', framework);
19
10
  resetProject(`${basePath}/${projectRoot}`);
@@ -1 +1 @@
1
- {"version":3,"file":"generator.mjs","sources":["../../../src/generators/add-frontend/generator.ts"],"sourcesContent":[null],"names":[],"mappings":"iJAKA,MAAM,iBAAiB,GAAG,OAAO,CAAC;AAElC,MAAM,YAAY,GAAG,CAAC,OAAe,KAAI;IACrC,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,OAAO,CAAA,aAAA,CAAe,CAAC,EAAE;AAC1C,QAAA,EAAE,CAAC,UAAU,CAAC,GAAG,OAAO,CAAA,aAAA,CAAe,CAAC,CAAC;KAC5C;IACD,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,OAAO,CAAA,IAAA,CAAM,CAAC,EAAE;AACjC,QAAA,EAAE,CAAC,MAAM,CAAC,CAAG,EAAA,OAAO,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;KACjE;AACL,CAAC,CAAA;AAEqB,SAAA,oBAAoB,CAAC,IAAU,EAAE,OAAmC,EAAA;;AACtF,QAAA,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;AAC/B,QAAA,MAAM,WAAW,GAAG,CAAA,SAAA,EAAY,OAAO,CAAC,EAAE,SAAS,CAAC;AACpD,QAAA,MAAM,WAAW,GAAG,OAAO,CAAC,IAAI,GAAG,CAAA,EAAG,OAAO,CAAC,IAAI,GAAG,WAAW,CAAA,CAAE,GAAG,WAAW,CAAC;AACjF,QAAA,MAAM,UAAU,GAAG,CAAG,EAAA,WAAW,MAAM,CAAC;;AAGxC,QAAA,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,iBAAiB,CAAC;AACzD,QAAA,OAAO,CAAC,GAAG,CAAC,0BAA0B,EAAE,SAAS,CAAC,CAAC;AAEnD,QAAA,YAAY,CAAC,CAAG,EAAA,QAAQ,IAAI,WAAW,CAAA,CAAE,CAAC,CAAC;;;;;;;AAS3C,QAAA,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,WAAW,CAAC,EAAE,WAAW,EAAE,EAAE,CAAC,CAAC;AACxE,QAAA,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,YAAY,EAAE,SAAS,CAAC,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;QACxF,UAAU,CAAC,IAAI,EAAE,CAAG,EAAA,WAAW,eAAe,EAAE,CAAC,WAAW,KAAI;AAC5D,YAAA,WAAW,CAAC,MAAM,CAAC,GAAG,WAAW,CAAC;AAClC,YAAA,OAAO,WAAW,CAAC;AACvB,SAAC,CAAC,CAAC;QACH,UAAU,CAAC,IAAI,EAAE,CAAG,EAAA,WAAW,cAAc,EAAE,CAAC,UAAU,KAAI;AAC1D,YAAA,UAAU,CAAC,aAAa,CAAC,GAAG,SAAS,CAAC;AACtC,YAAA,OAAO,UAAU,CAAC;AACtB,SAAC,CAAC,CAAC;AAEH,QAAA,MAAM,WAAW,CAAC,IAAI,CAAC,CAAC;KAC3B,CAAA,CAAA;AAAA"}
1
+ {"version":3,"file":"generator.mjs","sources":["../../../src/generators/add-frontend/generator.ts"],"sourcesContent":[null],"names":[],"mappings":"uKAKA,MAAM,iBAAiB,GAAG,OAAO,CAAC;AAEZ,SAAA,oBAAoB,CAAC,IAAU,EAAE,OAAmC,EAAA;;AACtF,QAAA,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;AAC/B,QAAA,MAAM,WAAW,GAAG,OAAO,CAAC,EAAE,GAAG,CAAY,SAAA,EAAA,OAAO,CAAC,EAAE,CAAA,OAAA,CAAS,GAAG,iBAAiB,CAAC;AACrF,QAAA,MAAM,WAAW,GAAG,OAAO,CAAC,IAAI,GAAG,CAAA,EAAG,OAAO,CAAC,IAAI,GAAG,WAAW,CAAA,CAAE,GAAG,WAAW,CAAC;AACjF,QAAA,MAAM,UAAU,GAAG,CAAG,EAAA,WAAW,MAAM,CAAC;AAExC,QAAA,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,iBAAiB,CAAC;AACzD,QAAA,OAAO,CAAC,GAAG,CAAC,0BAA0B,EAAE,SAAS,CAAC,CAAC;AAEnD,QAAA,YAAY,CAAC,CAAG,EAAA,QAAQ,IAAI,WAAW,CAAA,CAAE,CAAC,CAAC;;;;;;;AAS3C,QAAA,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,WAAW,CAAC,EAAE,WAAW,EAAE,EAAE,CAAC,CAAC;AACxE,QAAA,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,YAAY,EAAE,SAAS,CAAC,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;QACxF,UAAU,CAAC,IAAI,EAAE,CAAG,EAAA,WAAW,eAAe,EAAE,CAAC,WAAW,KAAI;AAC5D,YAAA,WAAW,CAAC,MAAM,CAAC,GAAG,WAAW,CAAC;AAClC,YAAA,OAAO,WAAW,CAAC;AACvB,SAAC,CAAC,CAAC;QACH,UAAU,CAAC,IAAI,EAAE,CAAG,EAAA,WAAW,cAAc,EAAE,CAAC,UAAU,KAAI;AAC1D,YAAA,UAAU,CAAC,aAAa,CAAC,GAAG,SAAS,CAAC;AACtC,YAAA,OAAO,UAAU,CAAC;AACtB,SAAC,CAAC,CAAC;AAEH,QAAA,MAAM,WAAW,CAAC,IAAI,CAAC,CAAC;KAC3B,CAAA,CAAA;AAAA"}
@@ -52,36 +52,36 @@
52
52
  "watch:test": "cross-env ENV_FILE=../../config/test/test.env node ./server.js"
53
53
  },
54
54
  "dependencies": {
55
- "@admin-layout/ant-design-pro": "7.3.8-alpha.21",
56
- "@admin-layout/ant-ui": "7.3.8-alpha.13",
55
+ "@admin-layout/ant-design-pro": "7.3.8-alpha.29",
56
+ "@admin-layout/ant-ui": "7.3.8-alpha.28",
57
57
  "@admin-layout/assets": "7.3.8-alpha.0",
58
58
  "@admin-layout/icons": "7.3.8-alpha.0",
59
59
  "@adminide-stack/account-api-browser": "7.3.8-alpha.0",
60
- "@adminide-stack/billing-api-browser": "^8.0.1-alpha.0",
61
- "@adminide-stack/core": "^8.0.1-alpha.0",
62
- "@adminide-stack/extension-api": "^8.0.1-alpha.0",
63
- "@adminide-stack/extension-module-browser": "^8.0.1-alpha.0",
64
- "@adminide-stack/git-api-browser": "^8.0.1-alpha.0",
65
- "@adminide-stack/integration-api-client": "^8.0.1-alpha.0",
66
- "@adminide-stack/marketplace-module-browser": "^8.0.1-alpha.0",
67
- "@adminide-stack/platform-browser": "^8.0.1-alpha.0",
68
- "@adminide-stack/project-mgmt-browser": "^8.0.1-alpha.0",
69
- "@adminide-stack/react-shared-components": "^8.0.1-alpha.0",
70
- "@adminide-stack/registry-api-browser": "^8.0.1-alpha.0",
71
- "@adminide-stack/user-auth0-browser": "^8.0.1-alpha.0",
72
- "@adminide-stack/user-auth0-server": "^8.0.1-alpha.0",
60
+ "@adminide-stack/billing-api-browser": "7.2.6-alpha.13",
61
+ "@adminide-stack/core": "7.2.6-alpha.13",
62
+ "@adminide-stack/extension-api": "7.2.6-alpha.13",
63
+ "@adminide-stack/extension-module-browser": "7.2.6-alpha.13",
64
+ "@adminide-stack/git-api-browser": "7.2.6-alpha.13",
65
+ "@adminide-stack/integration-api-client": "7.2.6-alpha.13",
66
+ "@adminide-stack/marketplace-module-browser": "7.2.6-alpha.13",
67
+ "@adminide-stack/platform-browser": "7.2.6-alpha.13",
68
+ "@adminide-stack/project-mgmt-browser": "7.2.6-alpha.13",
69
+ "@adminide-stack/react-shared-components": "7.2.6-alpha.13",
70
+ "@adminide-stack/registry-api-browser": "7.2.6-alpha.13",
71
+ "@adminide-stack/user-auth0-browser": "7.2.6-alpha.13",
72
+ "@adminide-stack/user-auth0-server": "7.2.6-alpha.13",
73
73
  "@ant-design/pro-layout": "^7.6.1",
74
74
  "@ant-design/static-style-extract": "^1.0.2",
75
75
  "@apollo/client": "^3.9.0",
76
76
  "@cdm-logger/client": "^9.0.3",
77
77
  "@cdm-logger/server": "^9.0.3",
78
78
  "@cdmbase/redux-data-router": "^1.0.10",
79
- "@common-stack/client-core": "5.0.4-alpha.6",
80
- "@common-stack/client-react": "5.0.4-alpha.6",
81
- "@common-stack/components-pro": "5.0.4-alpha.5",
82
- "@common-stack/core": "5.0.4-alpha.5",
83
- "@common-stack/remix-router-redux": "5.0.4-alpha.5",
84
- "@common-stack/server-core": "5.0.4-alpha.6",
79
+ "@common-stack/client-core": "0.0.1",
80
+ "@common-stack/client-react": "0.0.1",
81
+ "@common-stack/components-pro": "0.0.1",
82
+ "@common-stack/core": "0.0.1",
83
+ "@common-stack/remix-router-redux": "0.0.1",
84
+ "@common-stack/server-core": "0.0.1",
85
85
  "@container-stack/ssh-keygen-server-module": "0.0.36-alpha.23",
86
86
  "@container-stack/territory": "5.1.2",
87
87
  "@emotion/css": "^11.10.0",
@@ -148,7 +148,6 @@
148
148
  "redux-persist": "^6.0.0",
149
149
  "redux-persist-transform-filter": "^0.0.20",
150
150
  "reflect-metadata": "^0.1.13",
151
- "remix-i18next": "^6.1.0",
152
151
  "reselect": "^4.0.0",
153
152
  "rxjs": "^6.5.3",
154
153
  "rxjs-compat": "^6.5.3",
@@ -161,8 +160,8 @@
161
160
  },
162
161
  "devDependencies": {
163
162
  "@cdmbase/vite-plugin-i18next-loader": "^2.0.12",
164
- "@common-stack/frontend-stack-react": "5.0.4-alpha.6",
165
- "@common-stack/rollup-vite-utils": "5.0.4-alpha.6",
163
+ "@common-stack/frontend-stack-react": "0.0.1",
164
+ "@common-stack/rollup-vite-utils": "0.0.1",
166
165
  "@remix-run/dev": "^2.8.1",
167
166
  "@remix-run/serve": "^2.8.1",
168
167
  "cross-env": "^7.0.3",
package/lib/index.cjs CHANGED
@@ -1 +1 @@
1
- 'use strict';var generator=require('./generators/add-frontend/generator.cjs');exports.addFrontendGenerator=generator.addFrontendGenerator;//# sourceMappingURL=index.cjs.map
1
+ 'use strict';var generator=require('./generators/add-frontend/generator.cjs'),generator$1=require('./generators/add-backend/generator.cjs');exports.addFrontendGenerator=generator.addFrontendGenerator;exports.addBackendGenerator=generator$1.addBackendGenerator;//# sourceMappingURL=index.cjs.map
package/lib/index.d.ts CHANGED
@@ -1 +1,2 @@
1
1
  export * from './generators/add-frontend/generator';
2
+ export * from './generators/add-backend/generator';
package/lib/index.mjs CHANGED
@@ -1 +1 @@
1
- export{addFrontendGenerator}from'./generators/add-frontend/generator.mjs';//# sourceMappingURL=index.mjs.map
1
+ export{addFrontendGenerator}from'./generators/add-frontend/generator.mjs';export{addBackendGenerator}from'./generators/add-backend/generator.mjs';//# sourceMappingURL=index.mjs.map
@@ -0,0 +1,8 @@
1
+ 'use strict';var fs=require('node:fs');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 fs__namespace=/*#__PURE__*/_interopNamespaceDefault(fs);const resetProject = (rootDir) => {
2
+ if (fs__namespace.existsSync(`${rootDir}/project.json`)) {
3
+ fs__namespace.unlinkSync(`${rootDir}/project.json`);
4
+ }
5
+ if (fs__namespace.existsSync(`${rootDir}/src`)) {
6
+ fs__namespace.rmSync(`${rootDir}/src`, { recursive: true, force: true });
7
+ }
8
+ };exports.resetProject=resetProject;//# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.cjs","sources":["../../src/utils/index.ts"],"sourcesContent":[null],"names":["fs"],"mappings":"iYAEa,MAAA,YAAY,GAAG,CAAC,OAAe,KAAI;IAC5C,IAAIA,aAAE,CAAC,UAAU,CAAC,GAAG,OAAO,CAAA,aAAA,CAAe,CAAC,EAAE;AAC1C,QAAAA,aAAE,CAAC,UAAU,CAAC,GAAG,OAAO,CAAA,aAAA,CAAe,CAAC,CAAC;KAC5C;IACD,IAAIA,aAAE,CAAC,UAAU,CAAC,GAAG,OAAO,CAAA,IAAA,CAAM,CAAC,EAAE;AACjC,QAAAA,aAAE,CAAC,MAAM,CAAC,CAAG,EAAA,OAAO,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;KACjE;AACL"}
@@ -0,0 +1 @@
1
+ export declare const resetProject: (rootDir: string) => void;
@@ -0,0 +1,8 @@
1
+ import*as fs from'node:fs';const resetProject = (rootDir) => {
2
+ if (fs.existsSync(`${rootDir}/project.json`)) {
3
+ fs.unlinkSync(`${rootDir}/project.json`);
4
+ }
5
+ if (fs.existsSync(`${rootDir}/src`)) {
6
+ fs.rmSync(`${rootDir}/src`, { recursive: true, force: true });
7
+ }
8
+ };export{resetProject};//# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","sources":["../../src/utils/index.ts"],"sourcesContent":[null],"names":[],"mappings":"2BAEa,MAAA,YAAY,GAAG,CAAC,OAAe,KAAI;IAC5C,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,OAAO,CAAA,aAAA,CAAe,CAAC,EAAE;AAC1C,QAAA,EAAE,CAAC,UAAU,CAAC,GAAG,OAAO,CAAA,aAAA,CAAe,CAAC,CAAC;KAC5C;IACD,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,OAAO,CAAA,IAAA,CAAM,CAAC,EAAE;AACjC,QAAA,EAAE,CAAC,MAAM,CAAC,CAAG,EAAA,OAAO,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;KACjE;AACL"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@common-stack/generate-plugin",
3
- "version": "5.0.4-alpha.9",
3
+ "version": "5.0.5-alpha.0",
4
4
  "type": "module",
5
5
  "main": "./lib/index.mjs",
6
6
  "typings": "./lib/index.d.ts",
@@ -24,5 +24,5 @@
24
24
  "tslib": "^2.3.0"
25
25
  },
26
26
  "generators": "./generators.json",
27
- "gitHead": "a160ae96828be333c8f0d5fca27709c0563be6a7"
27
+ "gitHead": "5c81aa92d6126c058e9a336fe93b3eede95c873f"
28
28
  }
package/rollup.config.mjs CHANGED
@@ -8,25 +8,27 @@ import copy from 'rollup-plugin-copy';
8
8
  const baseConfig = {
9
9
  plugins: [
10
10
  image({
11
- exclude: 'src/generators/add-frontend',
11
+ exclude: ['src/generators/add-frontend', 'src/generators/add-backend'],
12
12
  }),
13
13
  graphql({
14
14
  include: '**/*.gql',
15
- exclude: 'src/generators/add-frontend',
15
+ exclude: ['src/generators/add-frontend', 'src/generators/add-backend'],
16
16
  }),
17
17
  string({
18
18
  include: '**/*.graphql',
19
- exclude: 'src/generators/add-frontend',
19
+ exclude: ['src/generators/add-frontend', 'src/generators/add-backend'],
20
20
  }),
21
21
  typescript({
22
22
  noEmitOnError: true,
23
- exclude: 'src/generators/add-frontend',
23
+ exclude: ['src/generators/add-frontend', 'src/generators/add-backend'],
24
24
  }),
25
25
  copy({
26
26
  targets: [
27
27
  { src: 'src/generators/add-frontend/schema.json', dest: 'lib/generators/add-frontend' },
28
28
  { src: 'src/generators/add-frontend/templates/*', dest: 'lib/generators/add-frontend/templates' },
29
29
  { src: 'src/generators/add-frontend/frameworks/*', dest: 'lib/generators/add-frontend/frameworks' },
30
+ { src: 'src/generators/add-backend/schema.json', dest: 'lib/generators/add-backend' },
31
+ { src: 'src/generators/add-backend/files/*', dest: 'lib/generators/add-backend/files' },
30
32
  ],
31
33
  verbose: true,
32
34
  }),
@@ -0,0 +1,20 @@
1
+ import { createTreeWithEmptyWorkspace } from '@nx/devkit/testing';
2
+ import { Tree, readProjectConfiguration } from '@nx/devkit';
3
+
4
+ import { addBackendGenerator } from './generator';
5
+ import { AddBackendGeneratorSchema } from './schema';
6
+
7
+ describe('add-backend generator', () => {
8
+ let tree: Tree;
9
+ const options: AddBackendGeneratorSchema = { ns: 'test' };
10
+
11
+ beforeEach(() => {
12
+ tree = createTreeWithEmptyWorkspace();
13
+ });
14
+
15
+ it('should run successfully', async () => {
16
+ await addBackendGenerator(tree, options);
17
+ const config = readProjectConfiguration(tree, 'test');
18
+ expect(config).toBeDefined();
19
+ });
20
+ });
@@ -0,0 +1,30 @@
1
+ import { addProjectConfiguration, formatFiles, generateFiles, Tree, updateJson } from '@nx/devkit';
2
+ import * as path from 'path';
3
+ import { AddBackendGeneratorSchema } from './schema';
4
+ import { resetProject } from '../../utils';
5
+
6
+ export async function addBackendGenerator(tree: Tree, options: AddBackendGeneratorSchema) {
7
+ const basePath = process.cwd();
8
+ const projectName = options.ns ? `backend-${options.ns}-server` : 'backend-server';
9
+ const projectRoot = options.path ? `${options.path}${projectName}` : projectName;
10
+ const projectSrc = `${projectRoot}/src`;
11
+
12
+ resetProject(`${basePath}/${projectRoot}`);
13
+
14
+ // addProjectConfiguration(tree, framework, {
15
+ // root: projectRoot,
16
+ // projectType: 'library',
17
+ // sourceRoot: projectSrc,
18
+ // targets: {},
19
+ // });
20
+
21
+ generateFiles(tree, path.join(__dirname, 'files'), projectRoot, {});
22
+ updateJson(tree, `${projectRoot}/package.json`, (packageJson) => {
23
+ packageJson['name'] = projectName;
24
+ return packageJson;
25
+ });
26
+
27
+ await formatFiles(tree);
28
+ }
29
+
30
+ export default addBackendGenerator;
@@ -0,0 +1,4 @@
1
+ export interface AddBackendGeneratorSchema {
2
+ ns: string;
3
+ path?: string;
4
+ }
@@ -0,0 +1,17 @@
1
+ {
2
+ "$schema": "https://json-schema.org/schema",
3
+ "$id": "AddBackend",
4
+ "title": "",
5
+ "type": "object",
6
+ "properties": {
7
+ "ns": {
8
+ "type": "string",
9
+ "description": "The project namespace"
10
+ },
11
+ "path": {
12
+ "type": "string",
13
+ "description": "The project path ex: \"servers/\", default: \"/\""
14
+ }
15
+ },
16
+ "required": ["ns"]
17
+ }