@lenne.tech/cli 0.0.107 → 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.
- package/bin/lt +5 -5
- package/build/cli.js +3 -2
- package/build/commands/angular/angular.js +2 -2
- package/build/commands/angular/create.js +20 -20
- package/build/commands/cli/cli.js +3 -3
- package/build/commands/cli/create.js +10 -10
- package/build/commands/cli/rename.js +3 -3
- package/build/commands/components/add.js +41 -41
- package/build/commands/components/components.js +2 -2
- package/build/commands/deployment/create.js +41 -41
- package/build/commands/deployment/deployment.js +2 -2
- package/build/commands/docs/docs.js +3 -3
- package/build/commands/docs/open.js +9 -9
- package/build/commands/fullstack/fullstack.js +2 -2
- package/build/commands/fullstack/init.js +17 -15
- package/build/commands/git/clean.js +6 -6
- package/build/commands/git/clear.js +4 -4
- package/build/commands/git/create.js +7 -7
- package/build/commands/git/force-pull.js +4 -4
- package/build/commands/git/get.js +10 -10
- package/build/commands/git/git.js +3 -3
- package/build/commands/git/rebase.js +2 -2
- package/build/commands/git/rename.js +5 -5
- package/build/commands/git/reset.js +12 -16
- package/build/commands/git/squash.js +9 -9
- package/build/commands/git/undo.js +3 -3
- package/build/commands/git/update.js +4 -4
- package/build/commands/lt.js +4 -4
- package/build/commands/npm/npm.js +3 -3
- package/build/commands/npm/reinit.js +7 -7
- package/build/commands/npm/update.js +6 -6
- package/build/commands/server/add-property.js +131 -0
- package/build/commands/server/create-secret.js +3 -3
- package/build/commands/server/create.js +25 -23
- package/build/commands/server/module.js +64 -109
- package/build/commands/server/object.js +51 -96
- package/build/commands/server/server.js +3 -3
- package/build/commands/server/set-secrets.js +39 -0
- package/build/commands/server/test.js +9 -9
- package/build/commands/starter/chrome-extension.js +11 -11
- package/build/commands/starter/starter.js +3 -3
- package/build/commands/tools/crypt.js +4 -4
- package/build/commands/tools/jwt-read.js +6 -6
- package/build/commands/tools/regex.js +3 -3
- package/build/commands/tools/sha256.js +4 -4
- package/build/commands/tools/tools.js +3 -3
- package/build/commands/typescript/create.js +14 -14
- package/build/commands/typescript/playground.js +9 -9
- package/build/commands/typescript/typescript.js +3 -3
- package/build/commands/update.js +4 -4
- package/build/extensions/git.js +11 -11
- package/build/extensions/server.js +239 -35
- package/build/extensions/tools.js +6 -6
- package/build/extensions/typescript.js +10 -10
- package/build/interfaces/extended-gluegun-command.js +3 -0
- package/build/templates/nest-server-starter/README.md.ejs +89 -3
- package/package.json +2 -1
|
@@ -34,7 +34,7 @@ class Tools {
|
|
|
34
34
|
* Strip JSON comments from a string
|
|
35
35
|
* Inspired by https://github.com/sindresorhus/strip-json-comments/blob/main/index.js
|
|
36
36
|
*/
|
|
37
|
-
stripJsonComments(jsonString, {
|
|
37
|
+
stripJsonComments(jsonString, { trailingCommas = false, whitespace = true } = {}) {
|
|
38
38
|
if (typeof jsonString !== 'string') {
|
|
39
39
|
throw new TypeError(`Expected argument \`jsonString\` to be a \`string\`, got \`${typeof jsonString}\``);
|
|
40
40
|
}
|
|
@@ -105,10 +105,10 @@ class Tools {
|
|
|
105
105
|
offset = index;
|
|
106
106
|
commaIndex = -1;
|
|
107
107
|
}
|
|
108
|
-
else if (currentCharacter !== ' '
|
|
109
|
-
currentCharacter !== '\t'
|
|
110
|
-
currentCharacter !== '\r'
|
|
111
|
-
currentCharacter !== '\n') {
|
|
108
|
+
else if (currentCharacter !== ' '
|
|
109
|
+
&& currentCharacter !== '\t'
|
|
110
|
+
&& currentCharacter !== '\r'
|
|
111
|
+
&& currentCharacter !== '\n') {
|
|
112
112
|
// Hit non-whitespace following a comma; comma is not trailing
|
|
113
113
|
buffer += jsonString.slice(offset, index);
|
|
114
114
|
offset = index;
|
|
@@ -134,4 +134,4 @@ exports.Tools = Tools;
|
|
|
134
134
|
exports.default = (toolbox) => {
|
|
135
135
|
toolbox.tools = new Tools(toolbox);
|
|
136
136
|
};
|
|
137
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
137
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZXh0ZW5zaW9ucy90b29scy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSwyQkFBaUQ7QUFJakQsTUFBTSxhQUFhLEdBQUcsTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFDO0FBQzlDLE1BQU0sWUFBWSxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztBQUU1QyxNQUFNLHNCQUFzQixHQUFHLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQztBQUN4QyxNQUFNLG1CQUFtQixHQUFHLENBQUMsTUFBTSxFQUFFLEtBQU0sRUFBRSxHQUFJLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLENBQUM7QUFFbkcsTUFBTSxTQUFTLEdBQUcsQ0FBQyxVQUFVLEVBQUUsYUFBYSxFQUFFLEVBQUU7SUFDOUMsSUFBSSxLQUFLLEdBQUcsYUFBYSxHQUFHLENBQUMsQ0FBQztJQUM5QixJQUFJLGNBQWMsR0FBRyxDQUFDLENBQUM7SUFFdkIsT0FBTyxVQUFVLENBQUMsS0FBSyxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUM7UUFDbEMsS0FBSyxJQUFJLENBQUMsQ0FBQztRQUNYLGNBQWMsSUFBSSxDQUFDLENBQUM7SUFDdEIsQ0FBQztJQUVELE9BQU8sT0FBTyxDQUFDLGNBQWMsR0FBRyxDQUFDLENBQUMsQ0FBQztBQUNyQyxDQUFDLENBQUM7QUFFRixNQUFhLEtBQUs7SUFDaEI7O09BRUc7SUFDSCxZQUFzQixPQUErQjtRQUEvQixZQUFPLEdBQVAsT0FBTyxDQUF3QjtJQUFHLENBQUM7SUFFekQ7O09BRUc7SUFDSCxvQkFBb0IsQ0FBQyxJQUFZO1FBQy9CLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFBLGlCQUFZLEVBQUMsSUFBSSxFQUFFLE1B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
|
|
@@ -11,8 +11,8 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
12
|
exports.Typescript = void 0;
|
|
13
13
|
const fs = require("fs");
|
|
14
|
-
const path_1 = require("path");
|
|
15
14
|
const open = require("open");
|
|
15
|
+
const path_1 = require("path");
|
|
16
16
|
/**
|
|
17
17
|
* Common helper functions
|
|
18
18
|
*/
|
|
@@ -29,11 +29,11 @@ class Typescript {
|
|
|
29
29
|
create() {
|
|
30
30
|
return __awaiter(this, void 0, void 0, function* () {
|
|
31
31
|
// Toolbox features
|
|
32
|
-
const { filesystem: { cwd, existsAsync }, helper, npm, print: { error, info, spin, success }, system: { run, startTimer, which } } = this.toolbox;
|
|
32
|
+
const { filesystem: { cwd, existsAsync }, helper, npm, print: { error, info, spin, success }, system: { run, startTimer, which }, } = this.toolbox;
|
|
33
33
|
// Get project name
|
|
34
34
|
const name = yield helper.getInput(null, {
|
|
35
35
|
name: 'project name',
|
|
36
|
-
showError: true
|
|
36
|
+
showError: true,
|
|
37
37
|
});
|
|
38
38
|
if (!name) {
|
|
39
39
|
return;
|
|
@@ -51,9 +51,9 @@ class Typescript {
|
|
|
51
51
|
fs.mkdirSync(dir);
|
|
52
52
|
yield run(`cd ${dir} && npm init -y && npx gts init && npm install -D ts-node`);
|
|
53
53
|
// Prepare package.json
|
|
54
|
-
const {
|
|
54
|
+
const { data, path } = yield npm.getPackageJson({
|
|
55
55
|
cwd: dir,
|
|
56
|
-
showError: true
|
|
56
|
+
showError: true,
|
|
57
57
|
});
|
|
58
58
|
if (!path) {
|
|
59
59
|
return;
|
|
@@ -66,10 +66,10 @@ class Typescript {
|
|
|
66
66
|
// Overwrite index.ts
|
|
67
67
|
const pathOfIndex = (0, path_1.join)(dir, 'src', 'index.ts');
|
|
68
68
|
fs.unlinkSync(pathOfIndex);
|
|
69
|
-
fs.writeFileSync(pathOfIndex,
|
|
69
|
+
fs.writeFileSync(pathOfIndex, '// Write your code here\nconsole.log(\'hello world!\');');
|
|
70
70
|
// Init git
|
|
71
71
|
if (which('git')) {
|
|
72
|
-
yield run(
|
|
72
|
+
yield run('git init');
|
|
73
73
|
}
|
|
74
74
|
cloneSpin.succeed();
|
|
75
75
|
// Success info
|
|
@@ -91,7 +91,7 @@ class Typescript {
|
|
|
91
91
|
webmaker() {
|
|
92
92
|
return __awaiter(this, void 0, void 0, function* () {
|
|
93
93
|
// Toolbox features
|
|
94
|
-
const { filesystem: { cwd, existsAsync }, git, helper, npm, print: { error, spin }, system: { run } } = this.toolbox;
|
|
94
|
+
const { filesystem: { cwd, existsAsync }, git, helper, npm, print: { error, spin }, system: { run }, } = this.toolbox;
|
|
95
95
|
// Check git
|
|
96
96
|
if (!(yield git.gitInstalled())) {
|
|
97
97
|
return;
|
|
@@ -99,7 +99,7 @@ class Typescript {
|
|
|
99
99
|
// Get project name
|
|
100
100
|
const name = yield helper.getInput(null, {
|
|
101
101
|
name: 'project name',
|
|
102
|
-
showError: true
|
|
102
|
+
showError: true,
|
|
103
103
|
});
|
|
104
104
|
if (!name) {
|
|
105
105
|
return;
|
|
@@ -130,4 +130,4 @@ exports.Typescript = Typescript;
|
|
|
130
130
|
exports.default = (toolbox) => {
|
|
131
131
|
toolbox.typescript = new Typescript(toolbox);
|
|
132
132
|
};
|
|
133
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
133
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXNjcmlwdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9leHRlbnNpb25zL3R5cGVzY3JpcHQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQUEseUJBQXlCO0FBQ3pCLDZCQUE2QjtBQUM3QiwrQkFBNEI7QUFJNUI7O0dBRUc7QUFDSCxNQUFhLFVBQVU7SUFDckI7O09BRUc7SUFDSCxZQUFzQixPQUErQjtRQUEvQixZQUFPLEdBQVAsT0FBTyxDQUF3QjtJQUFHLENBQUM7SUFFekQ7O09BRUc7SUFDVSxNQUFNOztZQUNqQixtQkFBbUI7WUFDbkIsTUFBTSxFQUNKLFVBQVUsRUFBRSxFQUFFLEdBQUcsRUFBRSxXQUFXLEVBQUUsRUFDaEMsTUFBTSxFQUNOLEdBQUcsRUFDSCxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsRUFDckMsTUFBTSxFQUFFLEVBQUUsR0FBRyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsR0FDbkMsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDO1lBRWpCLG1CQUFtQjtZQUNuQixNQUFNLElBQUksR0FBRyxNQUFNLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFO2dCQUN2QyxJQUFJLEVBQUUsY0FBYztnQkFDcEIsU0FBUyxFQUFFLElBQUk7YUFDaEIsQ0FBQyxDQUFDO1lBQ0gsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO2dCQUNWLE9BQU87WUFDVCxDQUFDO1lBRUQsWUFBWTtZQUNaLE1BQU0sR0FBRyxHQUFHLElBQUEsV0FBSSxFQUFDLEdBQUcsRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFDO1lBQzlCLElBQUksTUFBTSxXQUFXLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztnQkFDM0IsS0FBSyxDQUFDLFlBQVksR0FBRyxVQUFVLENBQUMsQ0FBQztZQUNuQyxDQUFDO1lBRUQsY0FBYztZQUNkLE1BQU0sS0FBSyxHQUFH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
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXh0ZW5kZWQtZ2x1ZWd1bi1jb21tYW5kLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2ludGVyZmFjZXMvZXh0ZW5kZWQtZ2x1ZWd1bi1jb21tYW5kLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIifQ==
|
|
@@ -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.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lenne.tech/cli",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.109",
|
|
4
4
|
"description": "lenne.Tech CLI: lt",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"lenne.Tech",
|
|
@@ -60,6 +60,7 @@
|
|
|
60
60
|
"typescript": "5.5.4"
|
|
61
61
|
},
|
|
62
62
|
"devDependencies": {
|
|
63
|
+
"@lenne.tech/eslint-config-ts": "0.0.16",
|
|
63
64
|
"@lenne.tech/npm-package-helper": "0.0.12",
|
|
64
65
|
"@types/jest": "29.5.13",
|
|
65
66
|
"@types/node": "20.16.10",
|