@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 initGitSpinner = spin('Initialize git');
109
- yield system.run(`cd ${projectDir} && git init && git add . && git commit -am "Init via lenne.Tech CLI ${meta.version()}"`);
110
- initGitSpinner.succeed('Git initialized');
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbW1hbmRzL3NlcnZlci9jcmVhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFJQTs7R0FFRztBQUNILE1BQU0sVUFBVSxHQUFtQjtJQUNqQyxLQUFLLEVBQUUsQ0FBQyxHQUFHLENBQUM7SUFDWixXQUFXLEVBQUUsc0JBQXNCO0lBQ25DLE1BQU0sRUFBRSxLQUFLO0lBQ2IsSUFBSSxFQUFFLFFBQVE7SUFDZCxHQUFHLEVBQUUsQ0FBTyxPQUErQixFQUFFLEVBQUU7UUFDN0MsNkJBQTZCO1FBQzdCLE1BQU0sRUFDSixVQUFVLEVBQ1YsR0FBRyxFQUNILE1BQU0sRUFDTixJQUFJLEVBQ0osVUFBVSxFQUNWLFFBQVEsRUFDUixLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsRUFDckMsTUFBTSxFQUNOLE9BQU8sRUFBRSxFQUFFLFNBQVMsRUFBRSxFQUN0QixNQUFNLEVBQ04sUUFBUSxHQUNULEdBQUcsT0FBTyxDQUFDO1FBRVosY0FBYztRQUNkLE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUVsQyxPQUFPO1FBQ1AsSUFBSSxDQUFDLHFCQUFxQixDQUFDLENBQUM7UUFFNUIsWUFBWTtRQUNaLElBQUksQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLFlBQVksRUFBRSxDQUFDLEVBQUUsQ0FBQztZQUNoQyxPQUFPO1FBQ1QsQ0FBQztRQUVELFdBQVc7UUFDWCxNQUFNLElBQUksR0FBRyxNQUFNLE1BQU0sQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLEtBQUssRUFBRTtZQUNuRCxJQUFJLEVBQUUsYUFBYTtZQUNuQixTQUFTLEVBQUUsSUFBSTtTQUNoQixDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDVixPQUFPO1FBQ1QsQ0FBQztRQUVE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
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
- `$ npm run start:dev`
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.108",
3
+ "version": "0.0.109",
4
4
  "description": "lenne.Tech CLI: lt",
5
5
  "keywords": [
6
6
  "lenne.Tech",