@lenne.tech/cli 0.0.84 → 0.0.86
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/build/commands/angular/create.js +23 -107
- package/build/commands/git/get.js +8 -2
- package/build/commands/server/create.js +2 -1
- package/build/commands/server/module.js +16 -4
- package/build/commands/server/object.js +163 -0
- package/build/extensions/server.js +55 -14
- package/build/templates/monorepro/README.md.ejs +90 -0
- package/build/templates/nest-server-module/inputs/template.input.ts.ejs +2 -2
- package/build/templates/nest-server-module/template.model.ts.ejs +25 -3
- package/build/templates/nest-server-module/template.module.ts.ejs +7 -2
- package/build/templates/nest-server-module/template.resolver.ts.ejs +7 -2
- package/build/templates/nest-server-module/template.service.ts.ejs +11 -5
- package/build/templates/nest-server-object/template-create.input.ts.ejs +18 -0
- package/build/templates/nest-server-object/template.input.ts.ejs +16 -0
- package/build/templates/nest-server-object/template.object.ts.ejs +57 -0
- package/package.json +1 -1
|
@@ -9,6 +9,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
9
9
|
});
|
|
10
10
|
};
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
const crypto = require("crypto");
|
|
12
13
|
/**
|
|
13
14
|
* Create a new server
|
|
14
15
|
*/
|
|
@@ -18,9 +19,9 @@ const NewCommand = {
|
|
|
18
19
|
description: 'Creates a new angular (fullstack) workspace',
|
|
19
20
|
hidden: false,
|
|
20
21
|
run: (toolbox) => __awaiter(void 0, void 0, void 0, function* () {
|
|
21
|
-
var _a, _b
|
|
22
|
+
var _a, _b;
|
|
22
23
|
// Retrieve the tools we need
|
|
23
|
-
const { filesystem, git, helper, parameters, patching, print: { error, info, spin, success }, prompt: { confirm }, strings: { kebabCase }, system,
|
|
24
|
+
const { filesystem, git, helper, parameters, patching, print: { error, info, spin, success }, prompt: { confirm }, strings: { camelCase, kebabCase, pascalCase }, system, template, } = toolbox;
|
|
24
25
|
// Start timer
|
|
25
26
|
const timer = system.startTimer();
|
|
26
27
|
// Info
|
|
@@ -48,11 +49,8 @@ const NewCommand = {
|
|
|
48
49
|
// Localize
|
|
49
50
|
const localize = ((_a = parameters.second) === null || _a === void 0 ? void 0 : _a.toLowerCase().includes('localize')) ||
|
|
50
51
|
(!parameters.second && (yield confirm(`Init localize for Angular?`, true)));
|
|
51
|
-
// Angular Universal
|
|
52
|
-
const angularUniversal = ((_b = parameters.second) === null || _b === void 0 ? void 0 : _b.toLowerCase().includes('universal')) ||
|
|
53
|
-
(!parameters.second && (yield confirm(`Add Angular Universal (SSR)?`, true)));
|
|
54
52
|
// Nest-Server
|
|
55
|
-
const nestServer = ((
|
|
53
|
+
const nestServer = ((_b = parameters.second) === null || _b === void 0 ? void 0 : _b.toLowerCase().includes('nest')) ||
|
|
56
54
|
(!parameters.second && (yield confirm(`Add API (Nest-Server)?`, true)));
|
|
57
55
|
const gitLink = (yield helper.getInput(null, {
|
|
58
56
|
name: 'link to an empty repository (e.g. git@gitlab.lenne.tech:group/project.git or leave empty for no linking)',
|
|
@@ -75,6 +73,10 @@ const NewCommand = {
|
|
|
75
73
|
data.version = '0.0.0';
|
|
76
74
|
return data;
|
|
77
75
|
});
|
|
76
|
+
// Set up initial props (to pass into templates)
|
|
77
|
+
const nameCamel = camelCase(name);
|
|
78
|
+
const nameKebab = kebabCase(name);
|
|
79
|
+
const namePascal = pascalCase(name);
|
|
78
80
|
// Install packages
|
|
79
81
|
yield system.run(`cd ${projectDir} && npm i`);
|
|
80
82
|
// Check if git init is active
|
|
@@ -92,17 +94,7 @@ const NewCommand = {
|
|
|
92
94
|
yield system.run(`cd ${projectDir}/projects && rm .gitkeep`);
|
|
93
95
|
// Clone ng-base-starter
|
|
94
96
|
yield system.run(`cd ${projectDir}/projects && git clone https://github.com/lenneTech/ng-base-starter.git app`);
|
|
95
|
-
// Main version of angular
|
|
96
|
-
let angularVersion = '';
|
|
97
97
|
if (filesystem.isDirectory(`./${projectDir}/projects/app`)) {
|
|
98
|
-
// Get main verion of angular
|
|
99
|
-
yield patching.update(`${projectDir}/projects/app/package.json`, (data) => {
|
|
100
|
-
const version = parseInt(data.dependencies['@angular/core'].split('.')[0]);
|
|
101
|
-
if (version && version > 0) {
|
|
102
|
-
angularVersion = '@' + version;
|
|
103
|
-
}
|
|
104
|
-
return data;
|
|
105
|
-
});
|
|
106
98
|
// Remove git folder after clone
|
|
107
99
|
yield system.run(`cd ${projectDir}/projects/app && rm -rf .git`);
|
|
108
100
|
// Remove husky from app project
|
|
@@ -123,95 +115,6 @@ const NewCommand = {
|
|
|
123
115
|
}
|
|
124
116
|
// Angular example integration done
|
|
125
117
|
ngBaseSpinner.succeed('Example for Angular integrated');
|
|
126
|
-
if (angularUniversal) {
|
|
127
|
-
// Include example app
|
|
128
|
-
const ngUniversalSpinner = spin('Integrate example for Angular');
|
|
129
|
-
yield system.run(`cd ${projectDir}/projects/app && ng add @nguniversal/express-engine${angularVersion} --skip-confirmation`);
|
|
130
|
-
yield system.run(`cd ${projectDir}/projects/app && npm i localstorage-polyfill`);
|
|
131
|
-
yield system.run(`cd ${projectDir}/projects/app && npm i compression`);
|
|
132
|
-
yield system.run(`cd ${projectDir}/projects/app && npm i --save-dev @types/compression`);
|
|
133
|
-
// Add scripts and clean up dependencies
|
|
134
|
-
yield patching.update(`${projectDir}/projects/app/package.json`, (data) => {
|
|
135
|
-
// Add / extend scripts
|
|
136
|
-
data.scripts.build = 'ng build --configuration production && ng run app:server';
|
|
137
|
-
data.scripts['build:test'] = 'ng build --configuration test && ng run app:server';
|
|
138
|
-
// Clean up
|
|
139
|
-
const dependencies = ['dependencies', 'devDependencies'];
|
|
140
|
-
for (const deps of dependencies) {
|
|
141
|
-
for (const dep of Object.keys(data[deps])) {
|
|
142
|
-
data[deps][dep] = data[deps][dep].replace('^', '');
|
|
143
|
-
}
|
|
144
|
-
}
|
|
145
|
-
return data;
|
|
146
|
-
});
|
|
147
|
-
// Set allowSyntheticDefaultImports
|
|
148
|
-
tools.stripAndSaveJsonFile(`${projectDir}/projects/app/tsconfig.json`);
|
|
149
|
-
yield patching.update(`${projectDir}/projects/app/tsconfig.json`, (data) => {
|
|
150
|
-
data.compilerOptions.allowSyntheticDefaultImports = true;
|
|
151
|
-
return data;
|
|
152
|
-
});
|
|
153
|
-
// Pimp server.ts
|
|
154
|
-
let localizeString = '';
|
|
155
|
-
if (localize) {
|
|
156
|
-
localizeString = `\nimport '@angular/localize/init';`;
|
|
157
|
-
}
|
|
158
|
-
const windowAndCo = `
|
|
159
|
-
// ----------------------------------------------
|
|
160
|
-
// window for image lazy loading
|
|
161
|
-
// ----------------------------------------------
|
|
162
|
-
/* eslint-disable */${localizeString}
|
|
163
|
-
import 'reflect-metadata';
|
|
164
|
-
import 'localstorage-polyfill';
|
|
165
|
-
import compression from 'compression';
|
|
166
|
-
import domino from 'domino';
|
|
167
|
-
import { readFileSync } from 'fs';
|
|
168
|
-
const template = readFileSync(join(process.cwd(), 'dist/app/browser/index.html')).toString();
|
|
169
|
-
const win: any = domino.createWindow(template);
|
|
170
|
-
// @ts-ignore
|
|
171
|
-
global['window'] = win;
|
|
172
|
-
global['Node'] = win.Node;
|
|
173
|
-
global['navigator'] = win.navigator;
|
|
174
|
-
global['Event'] = win.Event;
|
|
175
|
-
global['KeyboardEvent'] = win.Event;
|
|
176
|
-
global['MouseEvent'] = win.Event;
|
|
177
|
-
global['Event']['prototype'] = win.Event.prototype;
|
|
178
|
-
global['document'] = win.document;
|
|
179
|
-
global['localStorage'] = localStorage;
|
|
180
|
-
global['WebSocket'] = require('ws');
|
|
181
|
-
/* eslint-enable */
|
|
182
|
-
`;
|
|
183
|
-
yield patching.update(`${projectDir}/projects/app/server.ts`, (str) => {
|
|
184
|
-
const lines = str.split('\n');
|
|
185
|
-
const rest = str.split('\n');
|
|
186
|
-
let back = '';
|
|
187
|
-
for (let i = 0; i < lines.length; i++) {
|
|
188
|
-
// Stop if the line is not empty and does not start with an import
|
|
189
|
-
if (!!lines[i].trim() && !lines[i].trim().startsWith('import')) {
|
|
190
|
-
break;
|
|
191
|
-
}
|
|
192
|
-
back += lines[i] + '\n';
|
|
193
|
-
rest.shift();
|
|
194
|
-
}
|
|
195
|
-
back += windowAndCo + rest.join('\n');
|
|
196
|
-
return back;
|
|
197
|
-
});
|
|
198
|
-
yield patching.replace(`${projectDir}/projects/app/server.ts`, 'const server = express();', `const server = express();\n server.use(compression());`);
|
|
199
|
-
// Commit changes
|
|
200
|
-
yield system.run(`cd ${projectDir} && git add . && git commit -am "feat: Angular Universal integrated"`);
|
|
201
|
-
// Check if git init is active
|
|
202
|
-
if (gitLink) {
|
|
203
|
-
`cd ${projectDir} && git push`;
|
|
204
|
-
}
|
|
205
|
-
// Angular universal integration done
|
|
206
|
-
ngUniversalSpinner.succeed('Angular Universal integrated');
|
|
207
|
-
}
|
|
208
|
-
else {
|
|
209
|
-
yield patching.update(`${projectDir}/projects/app/package.json`, (data) => {
|
|
210
|
-
data.scripts.build = 'ng build --configuration production';
|
|
211
|
-
data.scripts['build:test'] = 'ng build --configuration test';
|
|
212
|
-
return data;
|
|
213
|
-
});
|
|
214
|
-
}
|
|
215
118
|
// Include files from https://github.com/lenneTech/nest-server-starter
|
|
216
119
|
if (nestServer) {
|
|
217
120
|
// Init
|
|
@@ -235,6 +138,18 @@ global['WebSocket'] = require('ws');
|
|
|
235
138
|
description: `API for ${name} app`,
|
|
236
139
|
version: '0.0.0',
|
|
237
140
|
});
|
|
141
|
+
// Set configuration
|
|
142
|
+
for (const env of ['LOCAL', 'DEV', 'TEST', 'PREV', 'PROD']) {
|
|
143
|
+
yield patching.replace(`./${projectDir}/projects/api/src/config.env.ts`, 'SECRET_OR_PRIVATE_KEY_' + env, crypto.randomBytes(512).toString('base64'));
|
|
144
|
+
yield patching.replace(`./${projectDir}/projects/api/src/config.env.ts`, 'SECRET_OR_PRIVATE_KEY_' + env + '_REFRESH', crypto.randomBytes(512).toString('base64'));
|
|
145
|
+
}
|
|
146
|
+
yield patching.update(`./${projectDir}/projects/api/src/config.env.ts`, (data) => data.replace(/nest-server-/g, projectDir + '-'));
|
|
147
|
+
// Set readme
|
|
148
|
+
yield template.generate({
|
|
149
|
+
template: 'monorepro/README.md.ejs',
|
|
150
|
+
target: `./${projectDir}/README.md`,
|
|
151
|
+
props: { repository: gitLink || 'REPOSITORY', name, nameCamel, nameKebab, namePascal },
|
|
152
|
+
});
|
|
238
153
|
// Commit changes
|
|
239
154
|
yield system.run(`cd ${projectDir} && git add . && git commit -am "feat: Nest Server Starter integrated"`);
|
|
240
155
|
// Check if git init is active
|
|
@@ -263,8 +178,9 @@ global['WebSocket'] = require('ws');
|
|
|
263
178
|
success(`Generated workspace ${projectDir} with ${name} app in ${helper.msToMinutesAndSeconds(timer())}m.`);
|
|
264
179
|
info(``);
|
|
265
180
|
info(`Next:`);
|
|
266
|
-
info(`
|
|
181
|
+
info(` Test and run ${name}:`);
|
|
267
182
|
info(` $ cd ${projectDir}`);
|
|
183
|
+
info(` $ npm run test`);
|
|
268
184
|
info(` $ npm run start`);
|
|
269
185
|
info(``);
|
|
270
186
|
if (!toolbox.parameters.options.fromGluegunMenu) {
|
|
@@ -276,4 +192,4 @@ global['WebSocket'] = require('ws');
|
|
|
276
192
|
}),
|
|
277
193
|
};
|
|
278
194
|
exports.default = NewCommand;
|
|
279
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbW1hbmRzL2FuZ3VsYXIvY3JlYXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBR0E7O0dBRUc7QUFDSCxNQUFNLFVBQVUsR0FBbUI7SUFDakMsSUFBSSxFQUFFLFFBQVE7SUFDZCxLQUFLLEVBQUUsQ0FBQyxHQUFHLENBQUM7SUFDWixXQUFXLEVBQUUsNkNBQTZDO0lBQzFELE1BQU0sRUFBRSxLQUFLO0lBQ2IsR0FBRyxFQUFFLENBQU8sT0FBK0IsRUFBRSxFQUFFOztRQUM3Qyw2QkFBNkI7UUFDN0IsTUFBTSxFQUNKLFVBQVUsRUFDVixHQUFHLEVBQ0gsTUFBTSxFQUNOLFVBQVUsRUFDVixRQUFRLEVBQ1IsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLEVBQ3JDLE1BQU0sRUFBRSxFQUFFLE9BQU8sRUFBRSxFQUNuQixPQUFPLEVBQUUsRUFBRSxTQUFTLEVBQUUsRUFDdEIsTUFBTSxFQUNOLEtBQUssR0FDTixHQUFHLE9BQU8sQ0FBQztRQUVaLGNBQWM7UUFDZCxNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsVUFBVSxFQUFFLENBQUM7UUFFbEMsT0FBTztRQUNQLElBQUksQ0FBQyw0Q0FBNEMsQ0FBQyxDQUFDO1FBRW5ELFlBQVk7UUFDWixJQUFJLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxZQUFZLEVBQUUsQ0FBQyxFQUFFO1lBQy9CLE9BQU87U0FDUjtRQUVELDRCQUE0QjtRQUM1QixNQUFNLElBQUksR0FBRyxNQUFNLE1BQU0sQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLEtBQUssRUFBRTtZQUNuRCxJQUFJLEVBQUUsZ0JBQWdCO1lBQ3RCLFNBQVMsRUFBRSxJQUFJO1NBQ2hCLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxJQUFJLEVBQUU7WUFDVCxPQUFPO1NBQ1I7UUFFRCx3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
|
|
195
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbW1hbmRzL2FuZ3VsYXIvY3JlYXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBQUEsaUNBQWlDO0FBSWpDOztHQUVHO0FBQ0gsTUFBTSxVQUFVLEdBQW1CO0lBQ2pDLElBQUksRUFBRSxRQUFRO0lBQ2QsS0FBSyxFQUFFLENBQUMsR0FBRyxDQUFDO0lBQ1osV0FBVyxFQUFFLDZDQUE2QztJQUMxRCxNQUFNLEVBQUUsS0FBSztJQUNiLEdBQUcsRUFBRSxDQUFPLE9BQStCLEVBQUUsRUFBRTs7UUFDN0MsNkJBQTZCO1FBQzdCLE1BQU0sRUFDSixVQUFVLEVBQ1YsR0FBRyxFQUNILE1BQU0sRUFDTixVQUFVLEVBQ1YsUUFBUSxFQUNSLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxFQUNyQyxNQUFNLEVBQUUsRUFBRSxPQUFPLEVBQUUsRUFDbkIsT0FBTyxFQUFFLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsRUFDN0MsTUFBTSxFQUNOLFFBQVEsR0FDVCxHQUFHLE9BQU8sQ0FBQztRQUVaLGNBQWM7UUFDZCxNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsVUFBVSxFQUFFLENBQUM7UUFFbEMsT0FBTztRQUNQLElBQUksQ0FBQyw0Q0FBNEMsQ0FBQyxDQUFDO1FBRW5ELFlBQVk7UUFDWixJQUFJLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxZQUFZLEVBQUUsQ0FBQyxFQUFFO1lBQy9CLE9BQU87U0FDUjtRQUVELDRCQUE0QjtRQUM1QixNQUFNLElBQUksR0FBRyxNQUFNLE1BQU0sQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLEtBQUssRUFBRTtZQUNuRCxJQUFJLEVBQUUsZ0JBQWdCO1lBQ3RCLFNBQVMsRUFBRSxJQUFJO1NBQ2hCLENBQUMsQ0FBQztRQUNILElBQUksQ0FB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
|
|
@@ -19,7 +19,7 @@ const NewCommand = {
|
|
|
19
19
|
hidden: false,
|
|
20
20
|
run: (toolbox) => __awaiter(void 0, void 0, void 0, function* () {
|
|
21
21
|
// Retrieve the tools we need
|
|
22
|
-
const { git, helper, npm, parameters, print: { error, info, spin, success }, prompt, system, } = toolbox;
|
|
22
|
+
const { filesystem, git, helper, npm, parameters, print: { error, info, spin, success }, prompt, system, } = toolbox;
|
|
23
23
|
// Start timer
|
|
24
24
|
const timer = system.startTimer();
|
|
25
25
|
// Check git
|
|
@@ -108,6 +108,12 @@ const NewCommand = {
|
|
|
108
108
|
checkoutSpin.succeed();
|
|
109
109
|
// Install npm packages
|
|
110
110
|
yield npm.install();
|
|
111
|
+
// Init lerna projects
|
|
112
|
+
if (filesystem.isFile(`./lerna.json`)) {
|
|
113
|
+
const initProjectsSpin = spin('Init projects');
|
|
114
|
+
yield system.run(`npm run init --if-present`);
|
|
115
|
+
initProjectsSpin.succeed();
|
|
116
|
+
}
|
|
111
117
|
// Success info
|
|
112
118
|
success(`${remoteBranch ? 'Remote' : 'Local'} branch ${branch} checked out in ${helper.msToMinutesAndSeconds(timer())}m.`);
|
|
113
119
|
info('');
|
|
@@ -119,4 +125,4 @@ const NewCommand = {
|
|
|
119
125
|
}),
|
|
120
126
|
};
|
|
121
127
|
exports.default = NewCommand;
|
|
122
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
128
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbW1hbmRzL2dpdC9nZXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFHQTs7R0FFRztBQUNILE1BQU0sVUFBVSxHQUFtQjtJQUNqQyxJQUFJLEVBQUUsS0FBSztJQUNYLEtBQUssRUFBRSxDQUFDLEdBQUcsQ0FBQztJQUNaLFdBQVcsRUFBRSxxQkFBcUI7SUFDbEMsTUFBTSxFQUFFLEtBQUs7SUFDYixHQUFHLEVBQUUsQ0FBTyxPQUErQixFQUFFLEVBQUU7UUFDN0MsNkJBQTZCO1FBQzdCLE1BQU0sRUFDSixVQUFVLEVBQ1YsR0FBRyxFQUNILE1BQU0sRUFDTixHQUFHLEVBQ0gsVUFBVSxFQUNWLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxFQUNyQyxNQUFNLEVBQ04sTUFBTSxHQUNQLEdBQUcsT0FBTyxDQUFDO1FBRVosY0FBYztRQUNkLE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUVsQyxZQUFZO1FBQ1osSUFBSSxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsWUFBWSxFQUFFLENBQUMsRUFBRTtZQUMvQixPQUFPO1NBQ1I7UUFFRCw0QkFBNEI7UUFDNUIsTUFBTSxVQUFVLEdBQUcsTUFBTSxNQUFNLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxLQUFLLEVBQUU7WUFDekQsSUFBSSxFQUFFLGFBQWE7WUFDbkIsU0FBUyxFQUFFLElBQUk7U0FDaEIsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUNmLE9BQU87U0FDUjtRQUVELG9EQUFvRDtRQUNwRCxJQUFJLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxXQUFXLENBQUMsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxFQUFFO1lBQ2pELE9BQU87U0FDUjtRQUVELGdEQUFn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
|
|
@@ -77,6 +77,7 @@ const NewCommand = {
|
|
|
77
77
|
// Set configuration
|
|
78
78
|
for (const env of ['LOCAL', 'DEV', 'TEST', 'PREV', 'PROD']) {
|
|
79
79
|
yield patching.replace(`./${projectDir}/src/config.env.ts`, 'SECRET_OR_PRIVATE_KEY_' + env, crypto.randomBytes(512).toString('base64'));
|
|
80
|
+
yield patching.replace(`./${projectDir}/src/config.env.ts`, 'SECRET_OR_PRIVATE_KEY_' + env + '_REFRESH', crypto.randomBytes(512).toString('base64'));
|
|
80
81
|
}
|
|
81
82
|
yield patching.update(`./${projectDir}/src/config.env.ts`, (data) => data.replace(/nest-server-/g, projectDir + '-'));
|
|
82
83
|
// Set package.json
|
|
@@ -132,4 +133,4 @@ const NewCommand = {
|
|
|
132
133
|
}),
|
|
133
134
|
};
|
|
134
135
|
exports.default = NewCommand;
|
|
135
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
136
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbW1hbmRzL3NlcnZlci9jcmVhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFBQSxpQ0FBaUM7QUFJakM7O0dBRUc7QUFDSCxNQUFNLFVBQVUsR0FBbUI7SUFDakMsSUFBSSxFQUFFLFFBQVE7SUFDZCxLQUFLLEVBQUUsQ0FBQyxHQUFHLENBQUM7SUFDWixXQUFXLEVBQUUsc0JBQXNCO0lBQ25DLE1BQU0sRUFBRSxLQUFLO0lBQ2IsR0FBRyxFQUFFLENBQU8sT0FBK0IsRUFBRSxFQUFFO1FBQzdDLDZCQUE2QjtRQUM3QixNQUFNLEVBQ0osVUFBVSxFQUNWLEdBQUcsRUFDSCxNQUFNLEVBQ04sSUFBSSxFQUNKLFVBQVUsRUFDVixRQUFRLEVBQ1IsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLEVBQ3JDLE9BQU8sRUFBRSxFQUFFLFNBQVMsRUFBRSxFQUN0QixNQUFNLEVBQ04sUUFBUSxHQUNULEdBQUcsT0FBTyxDQUFDO1FBRVosY0FBYztRQUNkLE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUVsQyxPQUFPO1FBQ1AsSUFBSSxDQUFDLHFCQUFxQixDQUFDLENBQUM7UUFFNUIsWUFBWTtRQUNaLElBQUksQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLFlBQVksRUFBRSxDQUFDLEVBQUU7WUFDL0IsT0FBTztTQUNSO1FBRUQsV0FBVztRQUNYLE1BQU0sSUFBSSxHQUFHLE1BQU0sTUFBTSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsS0FBSyxFQUFFO1lBQ25ELElBQUksRUFBRSxhQUFhO1lBQ25CLFNBQVMsRUFBRSxJQUFJO1NBQ2hCLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxJQUFJLEVBQUU7WUFDVCxPQUFPO1NBQ1I7UUFFRCx3QkFBd0I7UUFDeEIsTUFB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
|
|
@@ -68,7 +68,7 @@ const NewCommand = {
|
|
|
68
68
|
type: 'select',
|
|
69
69
|
name: 'input',
|
|
70
70
|
message: 'Choose property type',
|
|
71
|
-
choices: ['boolean', 'string', 'number', 'ObjectId / Reference', 'Date', 'Use own'],
|
|
71
|
+
choices: ['boolean', 'string', 'number', 'ObjectId / Reference', 'Date', 'enum', 'Use own'],
|
|
72
72
|
},
|
|
73
73
|
])).input;
|
|
74
74
|
if (type === 'ObjectId / Reference') {
|
|
@@ -81,6 +81,7 @@ const NewCommand = {
|
|
|
81
81
|
message: `Enter property type (e.g. MyClass or MyClass[])`,
|
|
82
82
|
})).input;
|
|
83
83
|
let reference;
|
|
84
|
+
let enumRef;
|
|
84
85
|
if (type === 'ObjectId') {
|
|
85
86
|
reference = (yield ask({
|
|
86
87
|
type: 'input',
|
|
@@ -92,15 +93,26 @@ const NewCommand = {
|
|
|
92
93
|
refsSet = true;
|
|
93
94
|
}
|
|
94
95
|
}
|
|
96
|
+
else if (type === 'enum') {
|
|
97
|
+
enumRef = (yield ask({
|
|
98
|
+
type: 'input',
|
|
99
|
+
name: 'input',
|
|
100
|
+
initial: pascalCase(name) + 'Enum',
|
|
101
|
+
message: `Enter enum type`,
|
|
102
|
+
})).input;
|
|
103
|
+
if (enumRef) {
|
|
104
|
+
refsSet = true;
|
|
105
|
+
}
|
|
106
|
+
}
|
|
95
107
|
const arrayEnding = type.endsWith('[]');
|
|
96
108
|
type = type.replace('[]', '');
|
|
97
109
|
const isArray = arrayEnding || (yield confirm(`Array?`));
|
|
98
110
|
const nullable = yield confirm(`Nullable?`, true);
|
|
99
|
-
props[name] = { name, nullable, isArray, type, reference };
|
|
111
|
+
props[name] = { name, nullable, isArray, type, reference, enumRef };
|
|
100
112
|
}
|
|
101
113
|
const generateSpinner = spin('Generate files');
|
|
102
114
|
const inputTemplate = server.propsForInput(props, { modelName: name, nullable: true });
|
|
103
|
-
const createTemplate = server.propsForInput(props, { modelName: name, nullable: false });
|
|
115
|
+
const createTemplate = server.propsForInput(props, { modelName: name, nullable: false, create: true });
|
|
104
116
|
const modelTemplate = server.propsForModel(props, { modelName: name });
|
|
105
117
|
// nest-server-module/inputs/xxx.input.ts
|
|
106
118
|
yield template.generate({
|
|
@@ -198,4 +210,4 @@ const NewCommand = {
|
|
|
198
210
|
}),
|
|
199
211
|
};
|
|
200
212
|
exports.default = NewCommand;
|
|
201
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
213
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbW1hbmRzL3NlcnZlci9tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFDQSwrQkFBNEI7QUFJNUI7O0dBRUc7QUFDSCxNQUFNLFVBQVUsR0FBbUI7SUFDakMsSUFBSSxFQUFFLFFBQVE7SUFDZCxLQUFLLEVBQUUsQ0FBQyxHQUFHLENBQUM7SUFDWixXQUFXLEVBQUUsNkJBQTZCO0lBQzFDLE1BQU0sRUFBRSxLQUFLO0lBQ2IsR0FBRyxFQUFFLENBQU8sT0FBK0IsRUFBRSxFQUFFO1FBQzdDLDZCQUE2QjtRQUM3QixNQUFNLEVBQ0osVUFBVSxFQUNWLE1BQU0sRUFDTixVQUFVLEVBQ1YsUUFBUSxFQUNSLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxFQUNyQyxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsT0FBTyxFQUFFLEVBQ3hCLE1BQU0sRUFDTixPQUFPLEVBQUUsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxFQUM3QyxNQUFNLEVBQ04sUUFBUSxHQUNULEdBQUcsT0FBTyxDQUFDO1FBRVosY0FBYztRQUNkLE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUVsQyxPQUFPO1FBQ1AsSUFBSSxDQUFDLDRCQUE0QixDQUFDLENBQUM7UUFFbkMsV0FBVztRQUNYLE1BQU0sSUFBSSxHQUFHLE1BQU0sTUFBTSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsS0FBSyxFQUFFO1lBQ25ELElBQUksRUFBRSxhQUFhO1NBQ3BCLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxJQUFJLEVBQUU7WUFDVCxPQUFPO1NBQ1I7UUFFRCxnREFBZ0Q7UUFDaEQsTUFBTSxTQUFTLEdBQUcsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2xDLE1BQU0sU0FB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
|
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
const path_1 = require("path");
|
|
13
|
+
/**
|
|
14
|
+
* Create a new server module
|
|
15
|
+
*/
|
|
16
|
+
const NewCommand = {
|
|
17
|
+
name: 'object',
|
|
18
|
+
alias: ['o'],
|
|
19
|
+
description: 'Creates a new server object (with inputs)',
|
|
20
|
+
hidden: false,
|
|
21
|
+
run: (toolbox) => __awaiter(void 0, void 0, void 0, function* () {
|
|
22
|
+
// Retrieve the tools we need
|
|
23
|
+
const { filesystem, helper, parameters, print: { error, info, spin, success }, prompt: { ask, confirm }, server, strings: { kebabCase, pascalCase, camelCase }, system, template, } = toolbox;
|
|
24
|
+
// Start timer
|
|
25
|
+
const timer = system.startTimer();
|
|
26
|
+
// Info
|
|
27
|
+
info('Create a new server object (with inputs)');
|
|
28
|
+
// Get name
|
|
29
|
+
const name = yield helper.getInput(parameters.first, {
|
|
30
|
+
name: 'object name',
|
|
31
|
+
});
|
|
32
|
+
if (!name) {
|
|
33
|
+
return;
|
|
34
|
+
}
|
|
35
|
+
// Set up initial props (to pass into templates)
|
|
36
|
+
const nameCamel = camelCase(name);
|
|
37
|
+
const nameKebab = kebabCase(name);
|
|
38
|
+
const namePascal = pascalCase(name);
|
|
39
|
+
// Check if directory
|
|
40
|
+
const cwd = filesystem.cwd();
|
|
41
|
+
const path = cwd.substr(0, cwd.lastIndexOf('src'));
|
|
42
|
+
if (!filesystem.exists((0, path_1.join)(path, 'src'))) {
|
|
43
|
+
info(``);
|
|
44
|
+
error(`No src directory in "${path}".`);
|
|
45
|
+
return undefined;
|
|
46
|
+
}
|
|
47
|
+
const objectDir = (0, path_1.join)(path, 'src', 'server', 'common', 'objects', nameKebab);
|
|
48
|
+
if (filesystem.exists(objectDir)) {
|
|
49
|
+
info(``);
|
|
50
|
+
error(`Module directory "${objectDir}" already exists.`);
|
|
51
|
+
return undefined;
|
|
52
|
+
}
|
|
53
|
+
// Set props
|
|
54
|
+
const props = {};
|
|
55
|
+
const setProps = true;
|
|
56
|
+
let refsSet = false;
|
|
57
|
+
while (setProps) {
|
|
58
|
+
const name = (yield ask({
|
|
59
|
+
type: 'input',
|
|
60
|
+
name: 'input',
|
|
61
|
+
message: `Enter property name (e.g. myProperty) to create new property or leave empty (ENTER)`,
|
|
62
|
+
})).input;
|
|
63
|
+
if (!name.trim()) {
|
|
64
|
+
break;
|
|
65
|
+
}
|
|
66
|
+
let type = (yield ask([
|
|
67
|
+
{
|
|
68
|
+
type: 'select',
|
|
69
|
+
name: 'input',
|
|
70
|
+
message: 'Choose property type',
|
|
71
|
+
choices: ['boolean', 'string', 'number', 'ObjectId / Reference', 'Date', 'enum', 'Use own'],
|
|
72
|
+
},
|
|
73
|
+
])).input;
|
|
74
|
+
if (type === 'ObjectId / Reference') {
|
|
75
|
+
type = 'ObjectId';
|
|
76
|
+
}
|
|
77
|
+
if (type === 'Use own')
|
|
78
|
+
type = (yield ask({
|
|
79
|
+
type: 'input',
|
|
80
|
+
name: 'input',
|
|
81
|
+
message: `Enter property type (e.g. MyClass or MyClass[])`,
|
|
82
|
+
})).input;
|
|
83
|
+
let reference;
|
|
84
|
+
let enumRef;
|
|
85
|
+
if (type === 'ObjectId') {
|
|
86
|
+
reference = (yield ask({
|
|
87
|
+
type: 'input',
|
|
88
|
+
name: 'input',
|
|
89
|
+
initial: pascalCase(name),
|
|
90
|
+
message: `Enter reference for ObjectId`,
|
|
91
|
+
})).input;
|
|
92
|
+
if (reference) {
|
|
93
|
+
refsSet = true;
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
else if (type === 'enum') {
|
|
97
|
+
enumRef = (yield ask({
|
|
98
|
+
type: 'input',
|
|
99
|
+
name: 'input',
|
|
100
|
+
initial: pascalCase(name) + 'Enum',
|
|
101
|
+
message: `Enter enum type`,
|
|
102
|
+
})).input;
|
|
103
|
+
if (enumRef) {
|
|
104
|
+
refsSet = true;
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
const arrayEnding = type.endsWith('[]');
|
|
108
|
+
type = type.replace('[]', '');
|
|
109
|
+
const isArray = arrayEnding || (yield confirm(`Array?`));
|
|
110
|
+
const nullable = yield confirm(`Nullable?`, true);
|
|
111
|
+
props[name] = { name, nullable, isArray, type, reference, enumRef };
|
|
112
|
+
}
|
|
113
|
+
const generateSpinner = spin('Generate files');
|
|
114
|
+
const inputTemplate = server.propsForInput(props, { modelName: name, nullable: true });
|
|
115
|
+
const createTemplate = server.propsForInput(props, { modelName: name, nullable: false, create: true });
|
|
116
|
+
const objectTemplate = server.propsForModel(props, { modelName: name });
|
|
117
|
+
// nest-server-module/inputs/xxx.input.ts
|
|
118
|
+
yield template.generate({
|
|
119
|
+
template: 'nest-server-object/template.input.ts.ejs',
|
|
120
|
+
target: (0, path_1.join)(objectDir, nameKebab + '.input.ts'),
|
|
121
|
+
props: { nameCamel, nameKebab, namePascal, props: inputTemplate.props, imports: inputTemplate.imports },
|
|
122
|
+
});
|
|
123
|
+
// nest-server-object/inputs/xxx-create.input.ts
|
|
124
|
+
yield template.generate({
|
|
125
|
+
template: 'nest-server-object/template-create.input.ts.ejs',
|
|
126
|
+
target: (0, path_1.join)(objectDir, nameKebab + '-create.input.ts'),
|
|
127
|
+
props: { nameCamel, nameKebab, namePascal, props: createTemplate.props, imports: createTemplate.imports },
|
|
128
|
+
});
|
|
129
|
+
// nest-server-module/xxx.model.ts
|
|
130
|
+
yield template.generate({
|
|
131
|
+
template: 'nest-server-object/template.object.ts.ejs',
|
|
132
|
+
target: (0, path_1.join)(objectDir, nameKebab + '.object.ts'),
|
|
133
|
+
props: {
|
|
134
|
+
nameCamel,
|
|
135
|
+
nameKebab,
|
|
136
|
+
namePascal,
|
|
137
|
+
props: objectTemplate.props,
|
|
138
|
+
imports: objectTemplate.imports,
|
|
139
|
+
mappings: objectTemplate.mappings,
|
|
140
|
+
},
|
|
141
|
+
});
|
|
142
|
+
const prettier = (0, path_1.join)(path, 'node_modules', '.bin', 'prettier');
|
|
143
|
+
if (filesystem.exists(prettier)) {
|
|
144
|
+
yield system.run(prettier + ' ' + (0, path_1.join)(objectDir, '**', '*.ts'));
|
|
145
|
+
}
|
|
146
|
+
generateSpinner.succeed('Files generated');
|
|
147
|
+
// We're done, so show what to do next
|
|
148
|
+
info(``);
|
|
149
|
+
success(`Generated ${namePascal}Object in ${helper.msToMinutesAndSeconds(timer())}m.`);
|
|
150
|
+
info(``);
|
|
151
|
+
// We're done, so show what to do next
|
|
152
|
+
if (refsSet) {
|
|
153
|
+
success(`HINT: References have been added, so it is necessary to add the corresponding imports!`);
|
|
154
|
+
}
|
|
155
|
+
if (!toolbox.parameters.options.fromGluegunMenu) {
|
|
156
|
+
process.exit();
|
|
157
|
+
}
|
|
158
|
+
// For tests
|
|
159
|
+
return `new object ${name}`;
|
|
160
|
+
}),
|
|
161
|
+
};
|
|
162
|
+
exports.default = NewCommand;
|
|
163
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbW1hbmRzL3NlcnZlci9vYmplY3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFDQSwrQkFBNEI7QUFJNUI7O0dBRUc7QUFDSCxNQUFNLFVBQVUsR0FBbUI7SUFDakMsSUFBSSxFQUFFLFFBQVE7SUFDZCxLQUFLLEVBQUUsQ0FBQyxHQUFHLENBQUM7SUFDWixXQUFXLEVBQUUsMkNBQTJDO0lBQ3hELE1BQU0sRUFBRSxLQUFLO0lBQ2IsR0FBRyxFQUFFLENBQU8sT0FBK0IsRUFBRSxFQUFFO1FBQzdDLDZCQUE2QjtRQUM3QixNQUFNLEVBQ0osVUFBVSxFQUNWLE1BQU0sRUFDTixVQUFVLEVBQ1YsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLEVBQ3JDLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxPQUFPLEVBQUUsRUFDeEIsTUFBTSxFQUNOLE9BQU8sRUFBRSxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLEVBQzdDLE1BQU0sRUFDTixRQUFRLEdBQ1QsR0FBRyxPQUFPLENBQUM7UUFFWixjQUFjO1FBQ2QsTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBRWxDLE9BQU87UUFDUCxJQUFJLENBQUMsMENBQTBDLENBQUMsQ0FBQztRQUVqRCxXQUFXO1FBQ1gsTUFBTSxJQUFJLEdBQUcsTUFBTSxNQUFNLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxLQUFLLEVBQUU7WUFDbkQsSUFBSSxFQUFFLGFBQWE7U0FDcEIsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLElBQUksRUFBRTtZQUNULE9BQU87U0FDUjtRQUVELGdEQUFnRDtRQUNoRCxNQUFNLFNBQVMsR0FBRyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDbEMsTUFBTSxTQUFTLEdBQUcsU0FB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
|
|
@@ -18,40 +18,62 @@ class Server {
|
|
|
18
18
|
};
|
|
19
19
|
// Specific types for properties in input fields
|
|
20
20
|
this.inputFieldTypes = {
|
|
21
|
+
Boolean: 'Boolean',
|
|
22
|
+
Date: 'number',
|
|
21
23
|
File: 'GraphQLUpload',
|
|
22
24
|
FileInfo: 'GraphQLUpload',
|
|
23
25
|
Id: 'String',
|
|
24
26
|
ID: 'String',
|
|
27
|
+
Number: 'Number',
|
|
25
28
|
ObjectId: 'String',
|
|
29
|
+
String: 'String',
|
|
26
30
|
Upload: 'GraphQLUpload',
|
|
27
31
|
};
|
|
28
32
|
// Specific types for properties in input classes
|
|
29
33
|
this.inputClassTypes = {
|
|
34
|
+
Boolean: 'boolean',
|
|
35
|
+
Date: 'Date',
|
|
30
36
|
File: 'FileUpload',
|
|
31
37
|
FileInfo: 'FileUpload',
|
|
32
38
|
Id: 'string',
|
|
33
39
|
ID: 'string',
|
|
40
|
+
Number: 'number',
|
|
34
41
|
ObjectId: 'string',
|
|
42
|
+
String: 'string',
|
|
35
43
|
Upload: 'FileUpload',
|
|
36
44
|
};
|
|
37
45
|
// Specific types for properties in model fields
|
|
38
46
|
this.modelFieldTypes = {
|
|
47
|
+
Boolean: 'Boolean',
|
|
48
|
+
Date: 'Number',
|
|
39
49
|
File: 'CoreFileInfo',
|
|
40
50
|
FileInfo: 'CoreFileInfo',
|
|
41
51
|
ID: 'String',
|
|
42
52
|
Id: 'String',
|
|
53
|
+
Number: 'Number',
|
|
43
54
|
ObjectId: 'String',
|
|
55
|
+
String: 'String',
|
|
44
56
|
Upload: 'CoreFileInfo',
|
|
45
57
|
};
|
|
46
58
|
// Specific types for properties in model class
|
|
47
59
|
this.modelClassTypes = {
|
|
60
|
+
Boolean: 'boolean',
|
|
61
|
+
Date: 'Date',
|
|
48
62
|
File: 'CoreFileInfo',
|
|
49
63
|
FileInfo: 'CoreFileInfo',
|
|
50
64
|
ID: 'string',
|
|
51
65
|
Id: 'string',
|
|
66
|
+
Number: 'number',
|
|
52
67
|
ObjectId: 'string',
|
|
68
|
+
String: 'string',
|
|
53
69
|
Upload: 'CoreFileInfo',
|
|
54
70
|
};
|
|
71
|
+
// Additional string for ID properties
|
|
72
|
+
this.propertySuffixTypes = {
|
|
73
|
+
Id: 'Id',
|
|
74
|
+
ID: 'Id',
|
|
75
|
+
ObjectId: 'Id',
|
|
76
|
+
};
|
|
55
77
|
// Standard types: primitives and default JavaScript classes
|
|
56
78
|
this.standardTypes = ['boolean', 'string', 'number', 'Date'];
|
|
57
79
|
this.camelCase = toolbox.strings.camelCase;
|
|
@@ -62,7 +84,7 @@ class Server {
|
|
|
62
84
|
* Create template string for properties in model
|
|
63
85
|
*/
|
|
64
86
|
propsForModel(props, options) {
|
|
65
|
-
var _a;
|
|
87
|
+
var _a, _b;
|
|
66
88
|
// Preparations
|
|
67
89
|
const config = Object.assign({ useDefault: true }, options);
|
|
68
90
|
const { modelName, useDefault } = config;
|
|
@@ -105,12 +127,15 @@ class Server {
|
|
|
105
127
|
for (const [name, item] of Object.entries(props)) {
|
|
106
128
|
const propName = this.camelCase(name);
|
|
107
129
|
const reference = ((_a = item.reference) === null || _a === void 0 ? void 0 : _a.trim()) ? this.pascalCase(item.reference.trim()) : '';
|
|
108
|
-
const
|
|
130
|
+
const enumRef = ((_b = item.enumRef) === null || _b === void 0 ? void 0 : _b.trim()) ? this.pascalCase(item.enumRef.trim()) : '';
|
|
131
|
+
const modelFieldType = enumRef
|
|
132
|
+
? 'String'
|
|
133
|
+
: this.modelFieldTypes[this.pascalCase(item.type)] || this.pascalCase(item.type);
|
|
109
134
|
const isArray = item.isArray;
|
|
110
135
|
const modelClassType = this.modelClassTypes[this.pascalCase(item.type)] ||
|
|
111
136
|
(this.standardTypes.includes(item.type) ? item.type : this.pascalCase(item.type));
|
|
112
137
|
const type = this.standardTypes.includes(item.type) ? item.type : this.pascalCase(item.type);
|
|
113
|
-
if (!this.standardTypes.includes(type) && type !== 'ObjectId') {
|
|
138
|
+
if (!this.standardTypes.includes(type) && type !== 'ObjectId' && type !== 'Enum') {
|
|
114
139
|
mappings[propName] = type;
|
|
115
140
|
}
|
|
116
141
|
if (reference) {
|
|
@@ -121,17 +146,21 @@ class Server {
|
|
|
121
146
|
}
|
|
122
147
|
result += `
|
|
123
148
|
/**
|
|
124
|
-
* ${propName + (modelName ? ' of ' + this.pascalCase(modelName) : '')}
|
|
149
|
+
* ${this.pascalCase(propName) + (modelName ? ' of ' + this.pascalCase(modelName) : '')}
|
|
125
150
|
*/
|
|
126
151
|
@Restricted(RoleEnum.S_EVERYONE)
|
|
127
152
|
@Field(() => ${(isArray ? '[' : '') + (reference ? reference : modelFieldType) + (isArray ? ']' : '')}, {
|
|
128
|
-
description: '${propName + (modelName ? ' of ' + this.pascalCase(modelName) : '')}',
|
|
153
|
+
description: '${this.pascalCase(propName) + (modelName ? ' of ' + this.pascalCase(modelName) : '')}',
|
|
129
154
|
nullable: ${item.nullable},
|
|
130
155
|
})
|
|
131
156
|
@Prop(${reference
|
|
132
157
|
? (isArray ? '[' : '') + `{ type: Schema.Types.ObjectId, ref: '${reference}' }` + (isArray ? ']' : '')
|
|
133
|
-
:
|
|
134
|
-
|
|
158
|
+
: enumRef
|
|
159
|
+
? (isArray ? '[' : '') + `{ type: String, enum: ${enumRef} }` + (isArray ? ']' : '')
|
|
160
|
+
: ''})
|
|
161
|
+
${propName}: ${(reference ? reference : enumRef || modelClassType) + (isArray ? '[]' : '')
|
|
162
|
+
// (reference ? ' | ' + reference + (isArray ? '[]' : '') : '')
|
|
163
|
+
} = undefined;
|
|
135
164
|
`;
|
|
136
165
|
}
|
|
137
166
|
// Process imports
|
|
@@ -157,7 +186,7 @@ class Server {
|
|
|
157
186
|
propsForInput(props, options) {
|
|
158
187
|
// Preparations
|
|
159
188
|
const config = Object.assign({ useDefault: true }, options);
|
|
160
|
-
const { modelName, nullable, useDefault } = config;
|
|
189
|
+
const { modelName, nullable, create, useDefault } = config;
|
|
161
190
|
let result = '';
|
|
162
191
|
// Check parameters
|
|
163
192
|
if (!props || !(typeof props !== 'object') || !Object.keys(props).length) {
|
|
@@ -190,9 +219,21 @@ class Server {
|
|
|
190
219
|
// Process configuration
|
|
191
220
|
const imports = {};
|
|
192
221
|
for (const [name, item] of Object.entries(props)) {
|
|
193
|
-
|
|
222
|
+
let inputFieldType = this.inputFieldTypes[this.pascalCase(item.type)] ||
|
|
223
|
+
(item.enumRef
|
|
224
|
+
? this.pascalCase(item.enumRef)
|
|
225
|
+
: this.pascalCase(item.type) + (create ? 'CreateInput' : 'Input'));
|
|
226
|
+
inputFieldType = this.modelFieldTypes[item.type]
|
|
227
|
+
? this.pascalCase(this.modelFieldTypes[item.type])
|
|
228
|
+
: inputFieldType;
|
|
194
229
|
const inputClassType = this.inputClassTypes[this.pascalCase(item.type)] ||
|
|
195
|
-
(this.standardTypes.includes(item.type)
|
|
230
|
+
(this.standardTypes.includes(item.type)
|
|
231
|
+
? item.type
|
|
232
|
+
: item.enumRef
|
|
233
|
+
? this.pascalCase(item.enumRef)
|
|
234
|
+
: this.pascalCase(item.type) + (create ? 'CreateInput' : 'Input'));
|
|
235
|
+
const propertySuffix = this.propertySuffixTypes[this.pascalCase(item.type)] || '';
|
|
236
|
+
const overrideFlag = create ? 'override ' : '';
|
|
196
237
|
if (this.imports[inputFieldType]) {
|
|
197
238
|
imports[inputFieldType] = this.imports[inputFieldType];
|
|
198
239
|
}
|
|
@@ -201,14 +242,14 @@ class Server {
|
|
|
201
242
|
}
|
|
202
243
|
result += `
|
|
203
244
|
/**
|
|
204
|
-
* ${this.pascalCase(name) + (modelName ? ' of ' + this.pascalCase(modelName) : '')}
|
|
245
|
+
* ${this.pascalCase(name) + propertySuffix + (modelName ? ' of ' + this.pascalCase(modelName) : '')}
|
|
205
246
|
*/
|
|
206
247
|
@Restricted(RoleEnum.S_EVERYONE)
|
|
207
248
|
@Field(() => ${(item.isArray ? '[' : '') + inputFieldType + (item.isArray ? ']' : '')}, {
|
|
208
|
-
description: '${this.pascalCase(name) + (modelName ? ' of ' + this.pascalCase(modelName) : '')}',
|
|
249
|
+
description: '${this.pascalCase(name) + propertySuffix + (modelName ? ' of ' + this.pascalCase(modelName) : '')}',
|
|
209
250
|
nullable: ${nullable || item.nullable},
|
|
210
251
|
})${nullable || item.nullable ? '\n @IsOptional()' : ''}
|
|
211
|
-
${this.camelCase(name)}: ${inputClassType + (item.isArray ? '[]' : '')} = undefined;
|
|
252
|
+
${overrideFlag + this.camelCase(name)}${nullable || item.nullable ? '?' : ''}: ${inputClassType + (item.isArray ? '[]' : '')} = undefined;
|
|
212
253
|
`;
|
|
213
254
|
}
|
|
214
255
|
// Process imports
|
|
@@ -231,4 +272,4 @@ exports.Server = Server;
|
|
|
231
272
|
exports.default = (toolbox) => {
|
|
232
273
|
toolbox.server = new Server(toolbox);
|
|
233
274
|
};
|
|
234
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2V4dGVuc2lvbnMvc2VydmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUdBOztHQUVHO0FBQ0gsTUFBYSxNQUFNO0lBd0RqQjs7T0FFRztJQUNILFlBQXNCLE9BQStCO1FBQS9CLFlBQU8sR0FBUCxPQUFPLENBQXdCO1FBckRyRCx1Q0FBdUM7UUFDdkMsWUFBTyxHQUEyQjtZQUNoQyxZQUFZLEVBQUUseURBQXlEO1lBQ3ZFLGFBQWEsRUFBRSxtRUFBbUU7WUFDbEYsVUFBVSxFQUFFLHFFQUFxRTtTQUNsRixDQUFDO1FBRUYsZ0RBQWdEO1FBQ2hELG9CQUFlLEdBQTJCO1lBQ3hDLElBQUksRUFBRSxlQUFlO1lBQ3JCLFFBQVEsRUFBRSxlQUFlO1lBQ3pCLEVBQUUsRUFBRSxRQUFRO1lBQ1osRUFBRSxFQUFFLFFBQVE7WUFDWixRQUFRLEVBQUUsUUFBUTtZQUNsQixNQUFNLEVBQUUsZUFBZTtTQUN4QixDQUFDO1FBRUYsaURBQWlEO1FBQ2pELG9CQUFlLEdBQTJCO1lBQ3hDLElBQUksRUFBRSxZQUFZO1lBQ2xCLFFBQVEsRUFBRSxZQUFZO1lBQ3RCLEVBQUUsRUFBRSxRQUFRO1lBQ1osRUFBRSxFQUFFLFFBQVE7WUFDWixRQUFRLEVBQUUsUUFBUTtZQUNsQixNQUFNLEVBQUUsWUFBWTtTQUNyQixDQUFDO1FBRUYsZ0RBQWdEO1FBQ2hELG9CQUFlLEdBQTJCO1lBQ3hDLElBQUksRUFBRSxjQUFjO1lBQ3BCLFFBQVEsRUFBRSxjQUFjO1lBQ3hCLEVBQUUsRUFBRSxRQUFRO1lBQ1osRUFBRSxFQUFFLFFBQVE7WUFDWixRQUFRLEVBQUUsUUFBUTtZQUNsQixNQUFNLEVBQUUsY0FBYztTQUN2QixDQUFDO1FBRUYsK0NBQStDO1FBQy9DLG9CQUFlLEdBQTJCO1lBQ3hDLElBQUksRUFBRSxjQUFjO1lBQ3BCLFFBQVEsRUFBRSxjQUFjO1lBQ3hCLEVBQUUsRUFBRSxRQUFR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
|
|
275
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2V4dGVuc2lvbnMvc2VydmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUdBOztHQUVHO0FBQ0gsTUFBYSxNQUFNO0lBK0VqQjs7T0FFRztJQUNILFlBQXNCLE9BQStCO1FBQS9CLFlBQU8sR0FBUCxPQUFPLENBQXdCO1FBNUVyRCx1Q0FBdUM7UUFDdkMsWUFBTyxHQUEyQjtZQUNoQyxZQUFZLEVBQUUseURBQXlEO1lBQ3ZFLGFBQWEsRUFBRSxtRUFBbUU7WUFDbEYsVUFBVSxFQUFFLHFFQUFxRTtTQUNsRixDQUFDO1FBRUYsZ0RBQWdEO1FBQ2hELG9CQUFlLEdBQTJCO1lBQ3hDLE9BQU8sRUFBRSxTQUFTO1lBQ2xCLElBQUksRUFBRSxRQUFRO1lBQ2QsSUFBSSxFQUFFLGVBQWU7WUFDckIsUUFBUSxFQUFFLGVBQWU7WUFDekIsRUFBRSxFQUFFLFFBQVE7WUFDWixFQUFFLEVBQUUsUUFBUTtZQUNaLE1BQU0sRUFBRSxRQUFRO1lBQ2hCLFFBQVEsRUFBRSxRQUFRO1lBQ2xCLE1BQU0sRUFBRSxRQUFRO1lBQ2hCLE1BQU0sRUFBRSxlQUFlO1NBQ3hCLENBQUM7UUFFRixpREFBaUQ7UUFDakQsb0JBQWUsR0FBMkI7WUFDeEMsT0FBTyxFQUFFLFNBQVM7WUFDbEIsSUFBSSxFQUFFLE1BQU07WUFDWixJQUFJLEVBQUUsWUFBWTtZQUNsQixRQUFRLEVBQUUsWUFBWTtZQUN0QixFQUFFLEVBQUUsUUFBUTtZQUNaLEVBQUUsRUFBRSxRQUFRO1lBQ1osTUFBTSxFQUFFLFFBQVE7WUFDaEIsUUFBUSxFQUFFLFFBQVE7WUFDbEIsTUFBTSxFQUFFLFFBQVE7WUFDaEIsTUFBTSxFQUFFLFlBQVk7U0FDckIsQ0FBQztRQUVGLGdEQUFnRDtRQUNoRCxvQkFBZSxHQUEyQjtZQUN4QyxPQUFPLEVBQUUsU0FBUztZQUNsQixJQUFJLEVBQUUsUUFBUTtZQUNkLElBQUksRUFBRSxjQUFj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
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
# <%= props.name %>
|
|
2
|
+
|
|
3
|
+
This is a [lerna](https://lerna.js.org/) [Monorepro](https://monorepo.tools) for App ([Angular](https://angular.io)) and API ([NestJS](https://nestjs.com)).
|
|
4
|
+
Build with [NgBaseStarter](https://github.com/lenneTech/ng-base-starter) and [Starter for Nest Server](https://github.com/lenneTech/nest-server-starter)
|
|
5
|
+
via [CLI](https://github.com/lenneTech/cli).
|
|
6
|
+
|
|
7
|
+
If you are not yet familiar with Angular or NestJS, we recommend you to have a look at the following sections of our
|
|
8
|
+
academy [lenne.Learning](https://lennelearning.de):
|
|
9
|
+
- [Angular](https://lennelearning.de/lernpfad/angular)
|
|
10
|
+
- [NestJS](https://lennelearning.de/lernpfad/nestjs)
|
|
11
|
+
|
|
12
|
+
## Requirements
|
|
13
|
+
|
|
14
|
+
- [Node.js incl. npm](https://nodejs.org):
|
|
15
|
+
the runtime environment for your server
|
|
16
|
+
|
|
17
|
+
- [Git](https://git-scm.com/book/en/v2/Getting-Started-Installing-Git):
|
|
18
|
+
the version control system for your source code
|
|
19
|
+
|
|
20
|
+
- [MongoDB](https://docs.mongodb.com/manual/installation/#mongodb-community-edition-installation-tutorials)
|
|
21
|
+
(or any other database compatible with [MikroORM](https://mikro-orm.io)):
|
|
22
|
+
the database for your objects
|
|
23
|
+
|
|
24
|
+
Installation on MacOS:
|
|
25
|
+
```
|
|
26
|
+
/bin/bash -c "$(curl - fsSL https: //raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
|
|
27
|
+
brew tap mongodb/brew
|
|
28
|
+
brew update
|
|
29
|
+
brew install mongodb-community@6.O
|
|
30
|
+
brew services start mongodb
|
|
31
|
+
brew install node
|
|
32
|
+
npm install -g n
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
To check if all requirements are met, we can display the versions of the respective software
|
|
36
|
+
(the version may differ from your versions in the following example):
|
|
37
|
+
```
|
|
38
|
+
mongod --version
|
|
39
|
+
db version v6.0.1
|
|
40
|
+
|
|
41
|
+
node -v
|
|
42
|
+
v16.17.0
|
|
43
|
+
|
|
44
|
+
npm -v
|
|
45
|
+
8.15.0
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
## Initialization of a local instance
|
|
49
|
+
|
|
50
|
+
Clone this repository and install packages:
|
|
51
|
+
```
|
|
52
|
+
git clone <%= props.repository %>
|
|
53
|
+
cd <%= props.nameKebab %>
|
|
54
|
+
npm run init
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
## Testing
|
|
58
|
+
|
|
59
|
+
Check if the requirements are met by running the tests (in the root directory):
|
|
60
|
+
```
|
|
61
|
+
npm test
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
## Start
|
|
65
|
+
|
|
66
|
+
Both the app and the API are started with the following command (in the root directory):
|
|
67
|
+
```
|
|
68
|
+
npm start
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
The following URLs are then accessible:
|
|
72
|
+
|
|
73
|
+
- App: http://localhost:4200
|
|
74
|
+
- Documentation of the API: http://localhost:3000
|
|
75
|
+
- Playground for using the API: http://localhost:3000/graphql
|
|
76
|
+
|
|
77
|
+
If a URL is not reachable, it may be due to an error in the source code or because another process is already
|
|
78
|
+
occupying the corresponding port (3000 / 4200). In this case you can either stop the other process or set another
|
|
79
|
+
port in the configuration of the app or server.
|
|
80
|
+
|
|
81
|
+
## Architecture
|
|
82
|
+
|
|
83
|
+
The architecture of the projects is based on the following structures:
|
|
84
|
+
- Both the app and the API can be found with their respective dependencies in the `projects` directory
|
|
85
|
+
- Both technologies are still compatible with their own CLI ([Angular CLI](angular cli) / [NestJS CLI](https://docs.nestjs.com/cli/overview))
|
|
86
|
+
- The [lt CLI](https://github.com/lenneTech/cli) also offers a few benefits regarding the extensions [NgBaseStarter](https://github.com/lenneTech/ng-base-starter) and [Starter for Nest Server](https://github.com/lenneTech/nest-server-starter)
|
|
87
|
+
- To organize the monorepro [lerna](https://lerna.js.org/) is used
|
|
88
|
+
|
|
89
|
+
## History
|
|
90
|
+
- Initialized via `lt angular create`
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Restricted, RoleEnum } from '@lenne.tech/nest-server';
|
|
1
|
+
import { CoreInput, Restricted, RoleEnum } from '@lenne.tech/nest-server';
|
|
2
2
|
import { Field, InputType } from '@nestjs/graphql';
|
|
3
3
|
import { IsOptional } from 'class-validator';<%- props.imports %>
|
|
4
4
|
|
|
@@ -7,7 +7,7 @@ import { IsOptional } from 'class-validator';<%- props.imports %>
|
|
|
7
7
|
*/
|
|
8
8
|
@Restricted(RoleEnum.ADMIN)
|
|
9
9
|
@InputType({ description: 'Input data to update an existing <%= props.namePascal %>' })
|
|
10
|
-
export class <%= props.namePascal %>Input {
|
|
10
|
+
export class <%= props.namePascal %>Input extends CoreInput {
|
|
11
11
|
|
|
12
12
|
// ===================================================================================================================
|
|
13
13
|
// Properties
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import { mapClasses, Restricted, RoleEnum } from '@lenne.tech/nest-server';
|
|
1
|
+
import { equalIds, mapClasses, Restricted, RoleEnum } from '@lenne.tech/nest-server';
|
|
2
2
|
import { Field, ObjectType } from '@nestjs/graphql';
|
|
3
3
|
import { Prop, Schema as MongooseSchema, SchemaFactory } from '@nestjs/mongoose';
|
|
4
4
|
import { Document, Schema } from 'mongoose';
|
|
5
5
|
import { PersistenceModel } from '../../common/models/persistence.model';
|
|
6
|
+
import { User } from '../user/user.model';
|
|
6
7
|
|
|
7
8
|
export type <%= props.namePascal %>Document = <%= props.namePascal %> & Document;
|
|
8
9
|
|
|
@@ -26,7 +27,7 @@ export class <%= props.namePascal %> extends PersistenceModel {
|
|
|
26
27
|
/**
|
|
27
28
|
* Initialize instance with default values instead of undefined
|
|
28
29
|
*/
|
|
29
|
-
init() {
|
|
30
|
+
override init() {
|
|
30
31
|
super.init();
|
|
31
32
|
// this.xxx = [];
|
|
32
33
|
return this;
|
|
@@ -37,10 +38,31 @@ export class <%= props.namePascal %> extends PersistenceModel {
|
|
|
37
38
|
*
|
|
38
39
|
* Hint: Non-primitive variables should always be mapped (see mapClasses / mapClassesAsync in ModelHelper)
|
|
39
40
|
*/
|
|
40
|
-
map(input) {
|
|
41
|
+
override map(input) {
|
|
41
42
|
super.map(input);
|
|
42
43
|
return <%- props.mappings %>
|
|
43
44
|
}
|
|
45
|
+
|
|
46
|
+
/**
|
|
47
|
+
* Verification of the user's rights to access the properties of this object
|
|
48
|
+
*
|
|
49
|
+
* Check roles, prepare or remove properties
|
|
50
|
+
* Return undefined if the whole object should not be returned or throw an exception to stop the whole request
|
|
51
|
+
*/
|
|
52
|
+
override securityCheck(user: User, force?: boolean) {
|
|
53
|
+
// In force mode or for admins everything is allowed
|
|
54
|
+
if (force || user?.hasRole(RoleEnum.ADMIN)) {
|
|
55
|
+
return this;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
// Usually only the creator has access to the object
|
|
59
|
+
if (!equalIds(user, this.createdBy)) {
|
|
60
|
+
return undefined;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
// Check permissions for properties of this object and return the object afterwards
|
|
64
|
+
return this;
|
|
65
|
+
}
|
|
44
66
|
}
|
|
45
67
|
|
|
46
68
|
export const <%= props.namePascal %>Schema = SchemaFactory.createForClass(<%= props.namePascal %>);
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { ConfigService } from '@lenne.tech/nest-server';
|
|
2
|
+
import { forwardRef, Module } from '@nestjs/common';
|
|
2
3
|
import { MongooseModule } from '@nestjs/mongoose';
|
|
3
4
|
import { PubSub } from 'graphql-subscriptions';
|
|
4
5
|
import { UserModule } from '../user/user.module';
|
|
@@ -10,9 +11,13 @@ import { <%= props.namePascal %>Service } from './<%= props.nameKebab %>.service
|
|
|
10
11
|
* <%= props.namePascal %> module
|
|
11
12
|
*/
|
|
12
13
|
@Module({
|
|
13
|
-
imports: [
|
|
14
|
+
imports: [
|
|
15
|
+
MongooseModule.forFeature([{ name: <%= props.namePascal %>.name, schema: <%= props.namePascal %>Schema }]),
|
|
16
|
+
forwardRef(() => UserModule),
|
|
17
|
+
],
|
|
14
18
|
controllers: [],
|
|
15
19
|
providers: [
|
|
20
|
+
ConfigService,
|
|
16
21
|
<%= props.namePascal %>Resolver,
|
|
17
22
|
<%= props.namePascal %>Service,
|
|
18
23
|
{
|
|
@@ -32,10 +32,15 @@ export class <%= props.namePascal %>Resolver {
|
|
|
32
32
|
/**
|
|
33
33
|
* Get and total count <%= props.namePascal %>s (via filter)
|
|
34
34
|
*/
|
|
35
|
-
@Roles(RoleEnum.
|
|
35
|
+
@Roles(RoleEnum.S_USER)
|
|
36
36
|
@Query(() => FindAndCount<%= props.namePascal %>sResult, { description: 'Find <%= props.namePascal %>s (via filter)' })
|
|
37
|
-
async findAndCount<%= props.namePascal %>s(
|
|
37
|
+
async findAndCount<%= props.namePascal %>s(
|
|
38
|
+
@Info() info: GraphQLResolveInfo,
|
|
39
|
+
@GraphQLUser() user: User,
|
|
40
|
+
@Args() args?: FilterArgs
|
|
41
|
+
) {
|
|
38
42
|
return await this.<%= props.nameCamel %>Service.findAndCount(args, {
|
|
43
|
+
currentUser: user,
|
|
39
44
|
fieldSelection: { info, select: 'findAndCount<%= props.namePascal %>s.items' },
|
|
40
45
|
inputType: FilterArgs,
|
|
41
46
|
});
|
|
@@ -1,16 +1,17 @@
|
|
|
1
|
-
import { assignPlain, CrudService, ServiceOptions } from '@lenne.tech/nest-server';
|
|
1
|
+
import { assignPlain, ConfigService, CrudService, ServiceOptions } from '@lenne.tech/nest-server';
|
|
2
2
|
import { Inject, Injectable, NotFoundException } from '@nestjs/common';
|
|
3
3
|
import { InjectModel } from '@nestjs/mongoose';
|
|
4
4
|
import { PubSub } from 'graphql-subscriptions';
|
|
5
5
|
import { Model } from 'mongoose';
|
|
6
|
-
import { <%= props.namePascal %>CreateInput } from './inputs/<%= props.nameKebab %>-create.input';
|
|
7
6
|
import { <%= props.namePascal %>, <%= props.namePascal %>Document } from './<%= props.nameKebab %>.model';
|
|
7
|
+
import { <%= props.namePascal %>CreateInput } from './inputs/<%= props.nameKebab %>-create.input';
|
|
8
|
+
import { <%= props.namePascal %>Input } from './inputs/<%= props.nameKebab %>.input';
|
|
8
9
|
|
|
9
10
|
/**
|
|
10
11
|
* <%= props.namePascal %> service
|
|
11
12
|
*/
|
|
12
13
|
@Injectable()
|
|
13
|
-
export class <%= props.namePascal %>Service extends CrudService<<%= props.namePascal
|
|
14
|
+
export class <%= props.namePascal %>Service extends CrudService<<%= props.namePascal %>, <%= props.namePascal %>CreateInput, <%= props.namePascal %>Input> {
|
|
14
15
|
|
|
15
16
|
// ===================================================================================================================
|
|
16
17
|
// Properties
|
|
@@ -22,12 +23,17 @@ export class <%= props.namePascal %>Service extends CrudService<<%= props.namePa
|
|
|
22
23
|
|
|
23
24
|
/**
|
|
24
25
|
* Constructor for injecting services
|
|
26
|
+
*
|
|
27
|
+
* Hints:
|
|
28
|
+
* To resolve circular dependencies, integrate services as follows:
|
|
29
|
+
* @Inject(forwardRef(() => XxxService)) protected readonly xxxService: XxxService
|
|
25
30
|
*/
|
|
26
31
|
constructor(
|
|
32
|
+
protected override readonly configService: ConfigService,
|
|
27
33
|
@InjectModel('<%= props.namePascal %>') protected readonly <%= props.nameCamel %>Model: Model<<%= props.namePascal %>Document>,
|
|
28
34
|
@Inject('PUB_SUB') protected readonly pubSub: PubSub
|
|
29
35
|
) {
|
|
30
|
-
super({mainDbModel: <%= props.nameCamel %>Model, mainModelConstructor: <%= props.namePascal %>});
|
|
36
|
+
super({configService: configService, mainDbModel: <%= props.nameCamel %>Model, mainModelConstructor: <%= props.namePascal %>});
|
|
31
37
|
}
|
|
32
38
|
|
|
33
39
|
// ===================================================================================================================
|
|
@@ -38,7 +44,7 @@ export class <%= props.namePascal %>Service extends CrudService<<%= props.namePa
|
|
|
38
44
|
* Create new <%= props.namePascal %>
|
|
39
45
|
* Overwrites create method from CrudService
|
|
40
46
|
*/
|
|
41
|
-
async create(input: <%= props.namePascal %>CreateInput, serviceOptions?: ServiceOptions): Promise<<%= props.namePascal %>> {
|
|
47
|
+
override async create(input: <%= props.namePascal %>CreateInput, serviceOptions?: ServiceOptions): Promise<<%= props.namePascal %>> {
|
|
42
48
|
// Get new <%= props.namePascal %>
|
|
43
49
|
const created<%= props.namePascal %> = await super.create(input, serviceOptions);
|
|
44
50
|
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { Restricted, RoleEnum } from '@lenne.tech/nest-server';
|
|
2
|
+
import { Field, InputType } from '@nestjs/graphql';
|
|
3
|
+
import { IsOptional } from 'class-validator';
|
|
4
|
+
import { <%= props.namePascal %>Input } from './<%= props.nameKebab %>.input';<%- props.imports %>
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* <%= props.namePascal %> create input
|
|
9
|
+
*/
|
|
10
|
+
@Restricted(RoleEnum.ADMIN)
|
|
11
|
+
@InputType({ description: 'Input data to create a new <%= props.namePascal %>' })
|
|
12
|
+
export class <%= props.namePascal %>CreateInput extends <%= props.namePascal %>Input {
|
|
13
|
+
|
|
14
|
+
// ===================================================================================================================
|
|
15
|
+
// Properties
|
|
16
|
+
// ===================================================================================================================
|
|
17
|
+
<%- props.props %>
|
|
18
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { CoreInput, Restricted, RoleEnum } from '@lenne.tech/nest-server';
|
|
2
|
+
import { Field, InputType } from '@nestjs/graphql';
|
|
3
|
+
import { IsOptional } from 'class-validator';<%- props.imports %>
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* <%= props.namePascal %> input
|
|
7
|
+
*/
|
|
8
|
+
@Restricted(RoleEnum.ADMIN)
|
|
9
|
+
@InputType({ description: 'Input data to update an existing <%= props.namePascal %>' })
|
|
10
|
+
export class <%= props.namePascal %>Input extends CoreInput {
|
|
11
|
+
|
|
12
|
+
// ===================================================================================================================
|
|
13
|
+
// Properties
|
|
14
|
+
// ===================================================================================================================
|
|
15
|
+
<%- props.props %>
|
|
16
|
+
}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { CoreModel, mapClasses, Restricted, RoleEnum } from '@lenne.tech/nest-server';
|
|
2
|
+
import { Field, ObjectType } from '@nestjs/graphql';
|
|
3
|
+
import { Prop, Schema as MongooseSchema, SchemaFactory } from '@nestjs/mongoose';
|
|
4
|
+
import { Document, Schema } from 'mongoose';
|
|
5
|
+
import { User } from '../../../modules/user/user.model';
|
|
6
|
+
|
|
7
|
+
export type <%= props.namePascal %>Document = <%= props.namePascal %> & Document;
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* <%= props.namePascal %> model
|
|
11
|
+
*/
|
|
12
|
+
@Restricted(RoleEnum.ADMIN)
|
|
13
|
+
@ObjectType({ description: '<%= props.namePascal %>' })
|
|
14
|
+
@MongooseSchema({ _id: false })
|
|
15
|
+
export class <%= props.namePascal %> extends CoreModel {
|
|
16
|
+
|
|
17
|
+
// ===================================================================================================================
|
|
18
|
+
// Properties
|
|
19
|
+
// ===================================================================================================================
|
|
20
|
+
<%- props.props %>
|
|
21
|
+
|
|
22
|
+
// ===================================================================================================================
|
|
23
|
+
// Methods
|
|
24
|
+
// ===================================================================================================================
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* Initialize instance with default values instead of undefined
|
|
28
|
+
*/
|
|
29
|
+
override init() {
|
|
30
|
+
super.init();
|
|
31
|
+
// this.xxx = [];
|
|
32
|
+
return this;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* Map input
|
|
37
|
+
*
|
|
38
|
+
* Hint: Non-primitive variables should always be mapped (see mapClasses / mapClassesAsync in ModelHelper)
|
|
39
|
+
*/
|
|
40
|
+
override map(input) {
|
|
41
|
+
super.map(input);
|
|
42
|
+
return <%- props.mappings %>
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
/**
|
|
46
|
+
* Verification of the user's rights to access the properties of this object
|
|
47
|
+
*/
|
|
48
|
+
override securityCheck(user: User, force?: boolean) {
|
|
49
|
+
if (force || user?.hasRole(RoleEnum.ADMIN)) {
|
|
50
|
+
return this;
|
|
51
|
+
}
|
|
52
|
+
// Check rights for properties of this object
|
|
53
|
+
return this;
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
export const <%= props.namePascal %>Schema = SchemaFactory.createForClass(<%= props.namePascal %>);
|