@lenne.tech/cli 0.0.108 → 0.0.109
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.
|
@@ -18,8 +18,9 @@ const NewCommand = {
|
|
|
18
18
|
hidden: false,
|
|
19
19
|
name: 'create',
|
|
20
20
|
run: (toolbox) => __awaiter(void 0, void 0, void 0, function* () {
|
|
21
|
+
var _a;
|
|
21
22
|
// Retrieve the tools we need
|
|
22
|
-
const { filesystem, git, helper, meta, parameters, patching, print: { error, info, spin, success }, server, strings: { kebabCase }, system, template, } = toolbox;
|
|
23
|
+
const { filesystem, git, helper, meta, parameters, patching, print: { error, info, spin, success }, prompt: { confirm }, server, strings: { kebabCase }, system, template, } = toolbox;
|
|
23
24
|
// Start timer
|
|
24
25
|
const timer = system.startTimer();
|
|
25
26
|
// Info
|
|
@@ -105,9 +106,15 @@ const NewCommand = {
|
|
|
105
106
|
yield system.run(`cd ${projectDir} && npm i`);
|
|
106
107
|
installSpinner.succeed('NPM packages installed');
|
|
107
108
|
if (git) {
|
|
108
|
-
const
|
|
109
|
-
|
|
110
|
-
|
|
109
|
+
const inGit = (_a = (yield system.run('git rev-parse --is-inside-work-tree'))) === null || _a === void 0 ? void 0 : _a.trim();
|
|
110
|
+
if (inGit !== 'true') {
|
|
111
|
+
const initializeGit = yield confirm('Initialize git?', true);
|
|
112
|
+
if (initializeGit) {
|
|
113
|
+
const initGitSpinner = spin('Initialize git');
|
|
114
|
+
yield system.run(`cd ${projectDir} && git init && git add . && git commit -am "Init via lenne.Tech CLI ${meta.version()}"`);
|
|
115
|
+
initGitSpinner.succeed('Git initialized');
|
|
116
|
+
}
|
|
117
|
+
}
|
|
111
118
|
}
|
|
112
119
|
// We're done, so show what to do next
|
|
113
120
|
info('');
|
|
@@ -128,4 +135,4 @@ const NewCommand = {
|
|
|
128
135
|
}),
|
|
129
136
|
};
|
|
130
137
|
exports.default = NewCommand;
|
|
131
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
138
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbW1hbmRzL3NlcnZlci9jcmVhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFJQTs7R0FFRztBQUNILE1BQU0sVUFBVSxHQUFtQjtJQUNqQyxLQUFLLEVBQUUsQ0FBQyxHQUFHLENBQUM7SUFDWixXQUFXLEVBQUUsc0JBQXNCO0lBQ25DLE1BQU0sRUFBRSxLQUFLO0lBQ2IsSUFBSSxFQUFFLFFBQVE7SUFDZCxHQUFHLEVBQUUsQ0FBTyxPQUErQixFQUFFLEVBQUU7O1FBQzdDLDZCQUE2QjtRQUM3QixNQUFNLEVBQ0osVUFBVSxFQUNWLEdBQUcsRUFDSCxNQUFNLEVBQ04sSUFBSSxFQUNKLFVBQVUsRUFDVixRQUFRLEVBQ1IsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLEVBQ3JDLE1BQU0sRUFBRSxFQUFFLE9BQU8sRUFBRSxFQUNuQixNQUFNLEVBQ04sT0FBTyxFQUFFLEVBQUUsU0FBUyxFQUFFLEVBQ3RCLE1BQU0sRUFDTixRQUFRLEdBQ1QsR0FBRyxPQUFPLENBQUM7UUFFWixjQUFjO1FBQ2QsTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBRWxDLE9BQU87UUFDUCxJQUFJLENBQUMscUJBQXFCLENBQUMsQ0FBQztRQUU1QixZQUFZO1FBQ1osSUFBSSxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsWUFBWSxFQUFFLENBQUMsRUFBRSxDQUFDO1lBQ2hDLE9BQU87UUFDVCxDQUFDO1FBRUQsV0FBVztRQUNYLE1BQU0sSUFBSSxHQUFHLE1BQU0sTUFBTSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsS0FBSyxFQUFFO1lBQ25ELElBQUksRUFBRSxhQUFhO1lBQ25CLFNBQVMsRUFBRSxJQUFJO1NBQ2hCLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxJQUFJLEVB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
|
|
@@ -0,0 +1,39 @@
|
|
|
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
|
+
/**
|
|
13
|
+
* Set secrets for the server configuration
|
|
14
|
+
*/
|
|
15
|
+
const NewCommand = {
|
|
16
|
+
alias: ['scs'],
|
|
17
|
+
description: 'Set secrets for the server configuration',
|
|
18
|
+
hidden: false,
|
|
19
|
+
name: 'setConfigSecrets',
|
|
20
|
+
run: (toolbox) => __awaiter(void 0, void 0, void 0, function* () {
|
|
21
|
+
// Retrieve the tools we need
|
|
22
|
+
const { filesystem, parameters, patching, print: { error, info, spin }, server, } = toolbox;
|
|
23
|
+
// Check if file exists
|
|
24
|
+
const filePath = parameters.first || 'src/config.env.ts';
|
|
25
|
+
if (!filesystem.exists(filePath)) {
|
|
26
|
+
info('');
|
|
27
|
+
error(`There's no file named "${filePath}"`);
|
|
28
|
+
return undefined;
|
|
29
|
+
}
|
|
30
|
+
// Set secrets
|
|
31
|
+
const prepareSpinner = spin(`Setting secrets in server configuration: ${filePath}`);
|
|
32
|
+
yield patching.update(filePath, content => server.replaceSecretOrPrivateKeys(content));
|
|
33
|
+
prepareSpinner.succeed(`Secrets set in server configuration ${filePath}`);
|
|
34
|
+
// For tests
|
|
35
|
+
return 'secrets in server configuration set';
|
|
36
|
+
}),
|
|
37
|
+
};
|
|
38
|
+
exports.default = NewCommand;
|
|
39
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0LXNlY3JldHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tbWFuZHMvc2VydmVyL3NldC1zZWNyZXRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBSUE7O0dBRUc7QUFDSCxNQUFNLFVBQVUsR0FBbUI7SUFDakMsS0FBSyxFQUFFLENBQUMsS0FBSyxDQUFDO0lBQ2QsV0FBVyxFQUFFLDBDQUEwQztJQUN2RCxNQUFNLEVBQUUsS0FBSztJQUNiLElBQUksRUFBRSxrQkFBa0I7SUFDeEIsR0FBRyxFQUFFLENBQU8sT0FBK0IsRUFBRSxFQUFFO1FBQzdDLDZCQUE2QjtRQUM3QixNQUFNLEVBQ0osVUFBVSxFQUNWLFVBQVUsRUFDVixRQUFRLEVBQ1IsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsRUFDNUIsTUFBTSxHQUNQLEdBQUcsT0FBTyxDQUFDO1FBRVosdUJBQXVCO1FBQ3ZCLE1BQU0sUUFBUSxHQUFHLFVBQVUsQ0FBQyxLQUFLLElBQUksbUJBQW1CLENBQUM7UUFDekQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQztZQUNqQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDVCxLQUFLLENBQUMsMEJBQTBCLFFBQVEsR0FBRyxDQUFDLENBQUM7WUFDN0MsT0FBTyxTQUFTLENBQUM7UUFDbkIsQ0FBQztRQUVELGNBQWM7UUFDZCxNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsNENBQTRDLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFDcEYsTUFBTSxRQUFRLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRSxPQUFPLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQywwQkFBMEIsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO1FBQ3ZGLGNBQWMsQ0FBQyxPQUFPLENBQUMsdUNBQXVDLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFFMUUsWUFBWTtRQUNaLE9BQU8scUNBQXFDLENBQUM7SUFDL0MsQ0FBQyxDQUFBO0NBQ0YsQ0FBQztBQUVGLGtCQUFlLFVBQVUsQ0FBQyJ9
|
|
@@ -1,6 +1,11 @@
|
|
|
1
1
|
# <%= props.name %>
|
|
2
|
+
|
|
3
|
+
The <%= props.name %> is a backend server based on the [NestJS](https://nestjs.com/) framework.
|
|
4
|
+
|
|
2
5
|
<%= props.description %>
|
|
3
6
|
|
|
7
|
+
The server was initialized with the [Starter for lenne.Tech Nest Server](https://github.com/lenneTech/nest-server-starter).
|
|
8
|
+
|
|
4
9
|
## Requirements
|
|
5
10
|
|
|
6
11
|
- [Node.js incl. npm](https://nodejs.org):
|
|
@@ -12,8 +17,9 @@ the database for your objects
|
|
|
12
17
|
|
|
13
18
|
## Start the server
|
|
14
19
|
|
|
15
|
-
|
|
16
|
-
|
|
20
|
+
```
|
|
21
|
+
$ npm run start:dev
|
|
22
|
+
```
|
|
17
23
|
|
|
18
24
|
## Extend the server
|
|
19
25
|
|
|
@@ -22,6 +28,12 @@ This server is based on [lenne.Tech Nest Server](https://github.com/lenneTech/ne
|
|
|
22
28
|
Since the lenne.Tech Nest Server is based on [Nest](https://nestjs.com/), you can find all information about extending
|
|
23
29
|
the **<%= props.name %>** in the [documentation of Nest](https://docs.nestjs.com/).
|
|
24
30
|
|
|
31
|
+
To create a new Module with model, inputs, resolver and service you can use the [CLI](https://github.com/lenneTech/cli):
|
|
32
|
+
|
|
33
|
+
```
|
|
34
|
+
$ lt server module MODULE_NAME
|
|
35
|
+
```
|
|
36
|
+
|
|
25
37
|
The documentation of the extensions and auxiliary classes that the
|
|
26
38
|
[lenne.Tech Nest Server](https://github.com/lenneTech/nest-server) contains is currently under construction.
|
|
27
39
|
As long as this is not yet available,have a look at the
|
|
@@ -37,7 +49,6 @@ There you will find a lot of things that will help you to extend your server, su
|
|
|
37
49
|
[helpers for tests](https://github.com/lenneTech/nest-server/blob/master/src/test/test.helper.ts)
|
|
38
50
|
- ...
|
|
39
51
|
|
|
40
|
-
|
|
41
52
|
## Further information
|
|
42
53
|
|
|
43
54
|
### Running the app
|
|
@@ -59,3 +70,78 @@ $ npm run start:prod
|
|
|
59
70
|
# e2e tests
|
|
60
71
|
$ npm run test:e2e
|
|
61
72
|
```
|
|
73
|
+
|
|
74
|
+
Configuration for testing:
|
|
75
|
+
```
|
|
76
|
+
Node interpreter: /user/local/bin/node
|
|
77
|
+
Jest package: FULL_PATH_TO_PROJECT_DIR/node_modules/jest
|
|
78
|
+
Working directory: FULL_PATH_TO_PROJECT_DIR
|
|
79
|
+
Jest options: --config jest-e2e.json --forceExit
|
|
80
|
+
```
|
|
81
|
+
see [E2E-Tests.run.xml](.run/E2E-Tests.run.xml)
|
|
82
|
+
|
|
83
|
+
## Debugging
|
|
84
|
+
|
|
85
|
+
Configuration for debugging is:
|
|
86
|
+
```
|
|
87
|
+
Node interpreter: /user/local/bin/node
|
|
88
|
+
Node parameters: node_modules/@nestjs/cli/bin/nest.js start --debug --watch
|
|
89
|
+
Working directory: FULL_PATH_TO_PROJECT_DIR
|
|
90
|
+
JavaScript file: src/main.ts
|
|
91
|
+
```
|
|
92
|
+
see [Debug.run.xml](.run/Debug.run.xml)
|
|
93
|
+
|
|
94
|
+
|
|
95
|
+
## Test & debug the NestServer package in this project
|
|
96
|
+
Use [yalc](https://github.com/wclr/yalc) to include the NestJS server in the project.
|
|
97
|
+
|
|
98
|
+
1. clone [NestServer](https://github.com/lenneTech/nest-server): `git clone https://github.com/lenneTech/nest-server.git`
|
|
99
|
+
2. go to the nest-server folder (`cd nest-server`), install the packages via `npm i` and start the nest server in watch & yalc mode: `npm run watch`
|
|
100
|
+
3. link the nest server live package to this project via `npm run link:nest-server` and start the server: `npm start`
|
|
101
|
+
4. unlink the nest-server live package and use the normal package again when you are done: `npm run unlink:nest-server`
|
|
102
|
+
|
|
103
|
+
## Deployment with deploy.party
|
|
104
|
+
|
|
105
|
+
This project is prepared for deployment with deploy.party.
|
|
106
|
+
|
|
107
|
+
Example configuration for deploy.party (productive):
|
|
108
|
+
|
|
109
|
+
| Key | Value |
|
|
110
|
+
|----------------------|----------------------------------------------------|
|
|
111
|
+
| Source | GitLab |
|
|
112
|
+
| Repository | my-repo |
|
|
113
|
+
| Branch | main |
|
|
114
|
+
| Registry | localhost |
|
|
115
|
+
| Name | api |
|
|
116
|
+
| URL | api.my-domain.com |
|
|
117
|
+
| Type | Node |
|
|
118
|
+
| Base image | node:20 |
|
|
119
|
+
| Custom image command | RUN apt-get install -y tzdata curl |
|
|
120
|
+
| | ENV TZ Europe/Berlin |
|
|
121
|
+
| Base directory | ./projects/api |
|
|
122
|
+
| Install command | npm install |
|
|
123
|
+
| Build command | npm run build |
|
|
124
|
+
| Start command | npm run dp:prod |
|
|
125
|
+
| Healthcheck command | curl --fail http://localhost:3000/meta \|\| exit 1 |
|
|
126
|
+
| Port | 3000 |
|
|
127
|
+
| Enable SSL | true |
|
|
128
|
+
|
|
129
|
+
## Documentation
|
|
130
|
+
The API and developer documentation can automatically be generated.
|
|
131
|
+
|
|
132
|
+
```bash
|
|
133
|
+
# generate and serve documentation
|
|
134
|
+
$ npm run docs
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
## Update
|
|
138
|
+
An update to a new Nest Sever version can be done as follows:
|
|
139
|
+
|
|
140
|
+
1. set the new Nest Server version in the package.json under `{dependencies: {"@lenne.tech/nest-server": "NEW_VERSION" }}`.
|
|
141
|
+
2. run `npm run update`
|
|
142
|
+
3. adjust project according to changes in git history from nest server
|
|
143
|
+
4. run tests via `npm run tests:e2e`, build via `npm run build` and start the server with `npm start` to check if everything is working
|
|
144
|
+
|
|
145
|
+
Simply compare the current version in the Git history of
|
|
146
|
+
[Starter for lenne.Tech Nest Server](https://github.com/lenneTech/nest-server-starter) with the version that was
|
|
147
|
+
previously used in the project and adapt your own project accordingly.
|