@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.
- package/CHANGELOG.md +48 -0
- package/README.md +42 -0
- package/generators.json +5 -0
- package/lib/generators/add-backend/files/CHANGELOG.md +196 -0
- package/lib/generators/add-backend/files/Dockerfile +30 -0
- package/lib/generators/add-backend/files/LICENSE +661 -0
- package/lib/generators/add-backend/files/README.md +133 -0
- package/lib/generators/add-backend/files/__tests__/test.ts.template +95 -0
- package/lib/generators/add-backend/files/babel.config.js +45 -0
- package/lib/generators/add-backend/files/build.config.js +14 -0
- package/lib/generators/add-backend/files/build.config.mjs +27 -0
- package/lib/generators/add-backend/files/generated-schema.graphql +235 -0
- package/lib/generators/add-backend/files/jest.config.js +27 -0
- package/lib/generators/add-backend/files/knexfile.js +63 -0
- package/lib/generators/add-backend/files/package.json +162 -0
- package/lib/generators/add-backend/files/src/api/remote-config.ts.template +11 -0
- package/lib/generators/add-backend/files/src/api/resolver.ts.template +15 -0
- package/lib/generators/add-backend/files/src/api/root-schema.graphqls +96 -0
- package/lib/generators/add-backend/files/src/api/scalar.ts.template +16 -0
- package/lib/generators/add-backend/files/src/api/schema-builder.ts.template +189 -0
- package/lib/generators/add-backend/files/src/api/utils.ts.template +44 -0
- package/lib/generators/add-backend/files/src/config/env-config.ts.template +34 -0
- package/lib/generators/add-backend/files/src/config/index.ts.template +1 -0
- package/lib/generators/add-backend/files/src/config/moleculer.config.ts.template +228 -0
- package/lib/generators/add-backend/files/src/connectors/connection-broker.ts.template +80 -0
- package/lib/generators/add-backend/files/src/connectors/graphql-pubsub-connector.ts.template +43 -0
- package/lib/generators/add-backend/files/src/connectors/mongo-connector.ts.template +78 -0
- package/lib/generators/add-backend/files/src/connectors/nats-connector.ts.template +82 -0
- package/lib/generators/add-backend/files/src/connectors/redis-connector.ts.template +73 -0
- package/lib/generators/add-backend/files/src/env.ts.template +5 -0
- package/lib/generators/add-backend/files/src/express-app.ts.template +67 -0
- package/lib/generators/add-backend/files/src/index.ts.template +56 -0
- package/lib/generators/add-backend/files/src/interfaces/index.ts.template +1 -0
- package/lib/generators/add-backend/files/src/interfaces/module-interface.ts.template +16 -0
- package/lib/generators/add-backend/files/src/main.spec.ts.template +129 -0
- package/lib/generators/add-backend/files/src/middleware/__tests__/cors.test.ts.template +12 -0
- package/lib/generators/add-backend/files/src/middleware/cors.ts.template +31 -0
- package/lib/generators/add-backend/files/src/middleware/error.ts.template +63 -0
- package/lib/generators/add-backend/files/src/middleware/moleculer-inter-namespace.ts.template +60 -0
- package/lib/generators/add-backend/files/src/middleware/persistedQuery.ts.template +40 -0
- package/lib/generators/add-backend/files/src/middleware/sentry.ts.template +9 -0
- package/lib/generators/add-backend/files/src/middleware/services.ts.template +16 -0
- package/lib/generators/add-backend/files/src/middleware/tracer.ts.template +24 -0
- package/lib/generators/add-backend/files/src/modules/auth/schema/auth-schema.graphql +25 -0
- package/lib/generators/add-backend/files/src/modules/index.ts.template +17 -0
- package/lib/generators/add-backend/files/src/modules/module.ts.template +78 -0
- package/lib/generators/add-backend/files/src/server-setup/graphql-server.ts.template +185 -0
- package/lib/generators/add-backend/files/src/server-setup/graphql-subscription-server.ts.template +113 -0
- package/lib/generators/add-backend/files/src/server-setup/graphql-ws.ts.template +158 -0
- package/lib/generators/add-backend/files/src/server-setup/mongodb-migration-update.ts.template +47 -0
- package/lib/generators/add-backend/files/src/server-setup/utils.ts.template +43 -0
- package/lib/generators/add-backend/files/src/server-setup/websocket-multipath-update.ts.template +88 -0
- package/lib/generators/add-backend/files/src/service.ts.template +36 -0
- package/lib/generators/add-backend/files/src/stack-server.ts.template +277 -0
- package/lib/generators/add-backend/files/src/utils/migrations.ts.template +32 -0
- package/lib/generators/add-backend/files/tsconfig.base.json +30 -0
- package/lib/generators/add-backend/files/tsconfig.json +19 -0
- package/lib/generators/add-backend/files/uploads/3986781.ppt +0 -0
- package/lib/generators/add-backend/files/webpack.config.js +186 -0
- package/lib/generators/add-backend/files/webpack.config.mjs +209 -0
- package/lib/generators/add-backend/generator.cjs +20 -0
- package/lib/generators/add-backend/generator.cjs.map +1 -0
- package/lib/generators/add-backend/generator.d.ts +4 -0
- package/lib/generators/add-backend/generator.mjs +20 -0
- package/lib/generators/add-backend/generator.mjs.map +1 -0
- package/lib/generators/add-backend/generator.spec.d.ts +1 -0
- package/lib/generators/add-backend/schema.json +17 -0
- package/lib/generators/add-frontend/generator.cjs +3 -12
- package/lib/generators/add-frontend/generator.cjs.map +1 -1
- package/lib/generators/add-frontend/generator.mjs +2 -11
- package/lib/generators/add-frontend/generator.mjs.map +1 -1
- package/lib/generators/add-frontend/templates/package.json +23 -24
- package/lib/index.cjs +1 -1
- package/lib/index.d.ts +1 -0
- package/lib/index.mjs +1 -1
- package/lib/utils/index.cjs +8 -0
- package/lib/utils/index.cjs.map +1 -0
- package/lib/utils/index.d.ts +1 -0
- package/lib/utils/index.mjs +8 -0
- package/lib/utils/index.mjs.map +1 -0
- package/package.json +2 -2
- package/rollup.config.mjs +6 -4
- package/src/generators/add-backend/generator.spec.ts +20 -0
- package/src/generators/add-backend/generator.ts +30 -0
- package/src/generators/add-backend/schema.d.ts +4 -0
- package/src/generators/add-backend/schema.json +17 -0
- package/src/generators/add-frontend/generator.ts +2 -12
- package/src/index.ts +1 -1
- 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,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'),
|
|
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":["
|
|
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
|
|
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":"
|
|
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.
|
|
56
|
-
"@admin-layout/ant-ui": "7.3.8-alpha.
|
|
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": "
|
|
61
|
-
"@adminide-stack/core": "
|
|
62
|
-
"@adminide-stack/extension-api": "
|
|
63
|
-
"@adminide-stack/extension-module-browser": "
|
|
64
|
-
"@adminide-stack/git-api-browser": "
|
|
65
|
-
"@adminide-stack/integration-api-client": "
|
|
66
|
-
"@adminide-stack/marketplace-module-browser": "
|
|
67
|
-
"@adminide-stack/platform-browser": "
|
|
68
|
-
"@adminide-stack/project-mgmt-browser": "
|
|
69
|
-
"@adminide-stack/react-shared-components": "
|
|
70
|
-
"@adminide-stack/registry-api-browser": "
|
|
71
|
-
"@adminide-stack/user-auth0-browser": "
|
|
72
|
-
"@adminide-stack/user-auth0-server": "
|
|
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": "
|
|
80
|
-
"@common-stack/client-react": "
|
|
81
|
-
"@common-stack/components-pro": "
|
|
82
|
-
"@common-stack/core": "
|
|
83
|
-
"@common-stack/remix-router-redux": "
|
|
84
|
-
"@common-stack/server-core": "
|
|
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": "
|
|
165
|
-
"@common-stack/rollup-vite-utils": "
|
|
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
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.
|
|
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": "
|
|
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,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
|
+
}
|