@rxap/plugin-nestjs 16.1.0 → 16.2.0-dev.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -3,6 +3,23 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ # [16.2.0-dev.0](https://gitlab.com/rxap/packages/compare/@rxap/plugin-nestjs@16.1.1-dev.0...@rxap/plugin-nestjs@16.2.0-dev.0) (2024-03-05)
7
+
8
+ ### Bug Fixes
9
+
10
+ - coerce swagger build target ([0ff56b6](https://gitlab.com/rxap/packages/commit/0ff56b694029a4cb4506d58394c702eb6f474be0))
11
+
12
+ ### Features
13
+
14
+ - add swagger generate executor ([f56accc](https://gitlab.com/rxap/packages/commit/f56accc7d2d0c684e2f37bc2a52a27248b583045))
15
+ - use swagger-executor for nestjs application init ([7d27262](https://gitlab.com/rxap/packages/commit/7d27262b0b0f756d4a85505d05a843cab4637572))
16
+
17
+ ## [16.1.1-dev.0](https://gitlab.com/rxap/packages/compare/@rxap/plugin-nestjs@16.1.0...@rxap/plugin-nestjs@16.1.1-dev.0) (2024-02-22)
18
+
19
+ ### Bug Fixes
20
+
21
+ - ensure the proper output path prefix is used ([38bb064](https://gitlab.com/rxap/packages/commit/38bb064427385974dfa8448e3b0c8f098127d071))
22
+
6
23
  # [16.1.0](https://gitlab.com/rxap/packages/compare/@rxap/plugin-nestjs@16.1.0-dev.48...@rxap/plugin-nestjs@16.1.0) (2024-02-07)
7
24
 
8
25
  **Note:** Version bump only for package @rxap/plugin-nestjs
package/README.md CHANGED
@@ -19,7 +19,7 @@ yarn add @rxap/plugin-nestjs
19
19
  ```
20
20
  **Install peer dependencies:**
21
21
  ```bash
22
- yarn add @nx/devkit@^16.5.0 @nx/js@^16.5.0 @nx/nest@^16.5.0 @rxap/generator-utilities@^1.1.0-dev.19 @rxap/node-utilities@^1.1.0-dev.15 @rxap/plugin-utilities@^16.1.0-dev.22 @rxap/ts-morph@^0.1.0-dev.18 @rxap/utilities@^16.0.0-dev.23 @rxap/workspace-ts-morph@^0.1.0-dev.12 @rxap/workspace-utilities@^0.1.0-dev.26 ts-morph@^18.0.0 tslib@2.6.2
22
+ yarn add @nx/devkit@^16.5.0 @nx/js@^16.5.0 @nx/nest@^16.5.0 @rxap/generator-utilities@^1.1.0 @rxap/node-utilities@^1.1.0 @rxap/plugin-utilities@^16.1.0 @rxap/ts-morph@^1.1.0-dev.1 @rxap/utilities@^16.1.0-dev.0 @rxap/workspace-ts-morph@^16.0.1 @rxap/workspace-utilities@^16.0.1 ts-morph@^18.0.0 tslib@2.6.2
23
23
  ```
24
24
  **Execute the init generator:**
25
25
  ```bash
@@ -224,3 +224,17 @@ yarn nx g @rxap/plugin-nestjs:frontend-microservice
224
224
  }
225
225
  ```
226
226
 
227
+ ## swagger-generate
228
+ > swagger-generate executor
229
+
230
+ **project.json**
231
+ ```json
232
+ {
233
+ "targets": {
234
+ "swagger-generate": {
235
+ "executor": "@rxap/plugin-nestjs:swagger-generate"
236
+ }
237
+ }
238
+ }
239
+ ```
240
+
package/executors.json CHANGED
@@ -4,6 +4,11 @@
4
4
  "implementation": "./src/executors/package-json/executor",
5
5
  "schema": "./src/executors/package-json/schema.json",
6
6
  "description": "package-json executor"
7
+ },
8
+ "swagger-generate": {
9
+ "implementation": "./src/executors/swagger-generate/executor",
10
+ "schema": "./src/executors/swagger-generate/schema.json",
11
+ "description": "swagger-generate executor"
7
12
  }
8
13
  }
9
14
  }
package/package.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "16.1.0",
2
+ "version": "16.2.0-dev.0",
3
3
  "name": "@rxap/plugin-nestjs",
4
4
  "license": "GPL-3.0-or-later",
5
5
  "dependencies": {
@@ -16,8 +16,8 @@
16
16
  "@rxap/generator-utilities": "^1.1.0",
17
17
  "@rxap/node-utilities": "^1.1.0",
18
18
  "@rxap/plugin-utilities": "^16.1.0",
19
- "@rxap/ts-morph": "^1.0.1",
20
- "@rxap/utilities": "^16.0.0",
19
+ "@rxap/ts-morph": "^1.1.0-dev.1",
20
+ "@rxap/utilities": "^16.1.0-dev.0",
21
21
  "@rxap/workspace-ts-morph": "^16.0.1",
22
22
  "@rxap/workspace-utilities": "^16.0.1",
23
23
  "ts-morph": "^18.0.0",
@@ -59,11 +59,11 @@
59
59
  },
60
60
  {
61
61
  "package": "@rxap/ts-morph",
62
- "version": "1.0.1"
62
+ "version": "1.1.0-dev.1"
63
63
  },
64
64
  {
65
65
  "package": "@rxap/utilities",
66
- "version": "16.0.0"
66
+ "version": "16.1.0-dev.0"
67
67
  },
68
68
  {
69
69
  "package": "@rxap/workspace-ts-morph",
@@ -86,6 +86,7 @@
86
86
  },
87
87
  "schematics": "./generators.json",
88
88
  "type": "commonjs",
89
+ "gitHead": "b07c3a57f82485e8f0680fd2ba4d06e635aa1b4f",
89
90
  "main": "./src/index.js",
90
91
  "types": "./src/index.d.ts"
91
92
  }
@@ -0,0 +1,5 @@
1
+ import { ExecutorContext } from '@nx/devkit';
2
+ import { SwaggerGenerateExecutorSchema } from './schema';
3
+ export default function runExecutor(options: SwaggerGenerateExecutorSchema, context: ExecutorContext): Promise<{
4
+ success: boolean;
5
+ }>;
@@ -0,0 +1,69 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ const node_impl_1 = require("@nx/js/src/executors/node/node.impl");
5
+ const plugin_utilities_1 = require("@rxap/plugin-utilities");
6
+ const fs_1 = require("fs");
7
+ const path_1 = require("path");
8
+ function checkIfOpenApiFileExists(context) {
9
+ const outputPath = (0, plugin_utilities_1.GuessOutputPathFromContext)(context, undefined, undefined, 'swagger-build');
10
+ const openApiPath = (0, path_1.join)(outputPath, 'openapi.json');
11
+ const fullPath = (0, path_1.join)(context.root, openApiPath);
12
+ console.log('Checking if OpenAPI file exists at', fullPath);
13
+ return (0, fs_1.existsSync)(fullPath);
14
+ }
15
+ function runExecutor(options, context) {
16
+ var _a, e_1, _b, _c;
17
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
18
+ console.log('Executor ran for SwaggerGenerate', options);
19
+ const projectName = context.projectName;
20
+ // This will give a random number between 9000 and 9999
21
+ const port = Math.floor(Math.random() * 1000) + 9000;
22
+ const nodeProc = (0, node_impl_1.default)({
23
+ watch: false,
24
+ buildTarget: `${projectName}:swagger-build`,
25
+ inspect: false,
26
+ runtimeArgs: [],
27
+ args: [],
28
+ waitUntilTargets: [],
29
+ buildTargetOptions: {},
30
+ host: 'localhost',
31
+ port: port
32
+ }, context);
33
+ try {
34
+ for (var _d = true, nodeProc_1 = tslib_1.__asyncValues(nodeProc), nodeProc_1_1; nodeProc_1_1 = yield nodeProc_1.next(), _a = nodeProc_1_1.done, !_a; _d = true) {
35
+ _c = nodeProc_1_1.value;
36
+ _d = false;
37
+ const event = _c;
38
+ console.log('Node executor event', event);
39
+ if (!event.success) {
40
+ console.log('Node executor target was not successful');
41
+ return {
42
+ success: false,
43
+ };
44
+ }
45
+ }
46
+ }
47
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
48
+ finally {
49
+ try {
50
+ if (!_d && !_a && (_b = nodeProc_1.return)) yield _b.call(nodeProc_1);
51
+ }
52
+ finally { if (e_1) throw e_1.error; }
53
+ }
54
+ if (checkIfOpenApiFileExists(context)) {
55
+ console.log('OpenAPI file exists');
56
+ return {
57
+ success: true,
58
+ };
59
+ }
60
+ else {
61
+ console.log('OpenAPI file does not exist');
62
+ }
63
+ return {
64
+ success: false,
65
+ };
66
+ });
67
+ }
68
+ exports.default = runExecutor;
69
+ //# sourceMappingURL=executor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"executor.js","sourceRoot":"","sources":["../../../../../../../packages/plugin/nestjs/src/executors/swagger-generate/executor.ts"],"names":[],"mappings":";;;AACA,mEAA+D;AAC/D,6DAAoE;AACpE,2BAAgC;AAChC,+BAA4B;AAG5B,SAAS,wBAAwB,CAAC,OAAwB;IACxD,MAAM,UAAU,GAAG,IAAA,6CAA0B,EAAC,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,eAAe,CAAC,CAAC;IAC9F,MAAM,WAAW,GAAG,IAAA,WAAI,EAAC,UAAU,EAAE,cAAc,CAAC,CAAC;IACrD,MAAM,QAAQ,GAAG,IAAA,WAAI,EAAC,OAAO,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;IACjD,OAAO,CAAC,GAAG,CAAC,oCAAoC,EAAE,QAAQ,CAAC,CAAC;IAC5D,OAAO,IAAA,eAAU,EAAC,QAAQ,CAAC,CAAC;AAC9B,CAAC;AAED,SAA8B,WAAW,CACvC,OAAsC,EACtC,OAAwB;;;QAExB,OAAO,CAAC,GAAG,CAAC,kCAAkC,EAAE,OAAO,CAAC,CAAC;QAEzD,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;QAExC,uDAAuD;QACvD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;QAErD,MAAM,QAAQ,GAAG,IAAA,mBAAY,EAAC;YAC5B,KAAK,EAAE,KAAK;YACZ,WAAW,EAAE,GAAG,WAAW,gBAAgB;YAC3C,OAAO,EAAE,KAAK;YACd,WAAW,EAAE,EAAE;YACf,IAAI,EAAE,EAAE;YACR,gBAAgB,EAAE,EAAE;YACpB,kBAAkB,EAAE,EAAE;YACtB,IAAI,EAAE,WAAW;YACjB,IAAI,EAAE,IAAI;SACX,EAAE,OAAO,CAAC,CAAC;;YAEZ,KAA0B,eAAA,aAAA,sBAAA,QAAQ,CAAA,cAAA,kFAAE;gBAAV,wBAAQ;gBAAR,WAAQ;gBAAvB,MAAM,KAAK,KAAA,CAAA;gBACpB,OAAO,CAAC,GAAG,CAAC,qBAAqB,EAAE,KAAK,CAAC,CAAC;gBAC1C,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE;oBAClB,OAAO,CAAC,GAAG,CAAC,yCAAyC,CAAC,CAAC;oBACvD,OAAO;wBACL,OAAO,EAAE,KAAK;qBACf,CAAC;iBACH;aACF;;;;;;;;;QAED,IAAI,wBAAwB,CAAC,OAAO,CAAC,EAAE;YACrC,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;YACnC,OAAO;gBACL,OAAO,EAAE,IAAI;aACd,CAAC;SACH;aAAM;YACL,OAAO,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC;SAC5C;QAED,OAAO;YACL,OAAO,EAAE,KAAK;SACf,CAAC;;CACH;AA7CD,8BA6CC"}
@@ -0,0 +1 @@
1
+ export interface SwaggerGenerateExecutorSchema {} // eslint-disable-line
@@ -0,0 +1,9 @@
1
+ {
2
+ "$schema": "http://json-schema.org/schema",
3
+ "version": 2,
4
+ "title": "SwaggerGenerate executor",
5
+ "description": "",
6
+ "type": "object",
7
+ "properties": {},
8
+ "required": []
9
+ }
@@ -19,8 +19,6 @@ function updateProjectTargets(project) {
19
19
  }
20
20
  const outputPath = buildTargetOptions['outputPath'].replace('dist/', 'dist/swagger/');
21
21
  (0, workspace_utilities_1.CoerceTarget)(project, 'swagger-build', {
22
- executor: '@nx/webpack:webpack',
23
- outputs: ['{options.outputPath}'],
24
22
  options: {
25
23
  outputPath,
26
24
  main: `${project.sourceRoot}/swagger.ts`,
@@ -37,20 +35,45 @@ function updateProjectTargets(project) {
37
35
  ],
38
36
  },
39
37
  });
40
- (0, workspace_utilities_1.CoerceTarget)(project, 'swagger-generate', {
41
- executor: '@nx/js:node',
42
- outputs: [
43
- `${outputPath}/openapi.json`,
44
- ],
45
- options: {
46
- buildTarget: `${project.name}:swagger-build`,
47
- watch: false,
48
- },
49
- });
38
+ (0, workspace_utilities_1.CoerceTarget)(project, 'swagger-generate', {}, workspace_utilities_1.Strategy.REPLACE);
50
39
  }
51
40
  function updateNxDefaults(tree) {
52
41
  const nxJson = (0, devkit_1.readNxJson)(tree);
53
42
  (0, workspace_utilities_1.CoerceNxJsonCacheableOperation)(nxJson, 'swagger-build', 'swagger-generate');
43
+ (0, workspace_utilities_1.CoerceTarget)(nxJson, 'swagger-generate', {
44
+ executor: '@rxap/plugin-nestjs:swagger-generate',
45
+ outputs: [
46
+ '{workspaceRoot}/dist/swagger/{projectRoot}/openapi.json'
47
+ ],
48
+ inputs: [
49
+ '{workspaceRoot}/dist/swagger/{projectRoot}/main.js',
50
+ '{workspaceRoot}/dist/swagger/{projectRoot}/main.js.map'
51
+ ],
52
+ 'dependsOn': [
53
+ '^build',
54
+ '^linking',
55
+ ]
56
+ }, workspace_utilities_1.Strategy.REPLACE);
57
+ (0, workspace_utilities_1.CoerceTarget)(nxJson, 'swagger-build', {
58
+ executor: '@nx/webpack:webpack',
59
+ outputs: [
60
+ '{options.outputPath}',
61
+ ],
62
+ options: {
63
+ transformers: [
64
+ '@nestjs/swagger/plugin',
65
+ ],
66
+ compiler: 'tsc',
67
+ target: 'node',
68
+ },
69
+ inputs: [
70
+ 'build',
71
+ '^build',
72
+ ],
73
+ dependsOn: [
74
+ '^build',
75
+ ],
76
+ }, workspace_utilities_1.Strategy.REPLACE);
54
77
  (0, devkit_1.updateNxJson)(tree, nxJson);
55
78
  }
56
79
  function swaggerGenerator(tree, options) {
@@ -1 +1 @@
1
- {"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../../../packages/plugin/nestjs/src/generators/swagger/generator.ts"],"names":[],"mappings":";;;;AAAA,uCAQoB;AACpB,mEAA2D;AAC3D,6DAGgC;AAChC,mEAImC;AACnC,6BAA6B;AAC7B,+BAA4B;AAG5B,SAAS,oBAAoB,CAAC,OAA6B;IAEzD,MAAM,WAAW,GAAG,IAAA,4BAAS,EAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAChD,MAAM,kBAAkB,GAAG,IAAA,mCAAgB,EAAC,WAAW,CAAC,CAAC;IAEzD,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,EAAE;QACrC,MAAM,IAAI,KAAK,CAAC,yEAAyE,CAAC,CAAC;KAC5F;IACD,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,EAAE;QACnC,MAAM,IAAI,KAAK,CAAC,uEAAuE,CAAC,CAAC;KAC1F;IAED,MAAM,UAAU,GAAI,kBAAkB,CAAC,YAAY,CAAY,CAAC,OAAO,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;IAElG,IAAA,kCAAY,EAAC,OAAO,EAAE,eAAe,EAAE;QACrC,QAAQ,EAAE,qBAAqB;QAC/B,OAAO,EAAE,CAAE,sBAAsB,CAAE;QACnC,OAAO,EAAE;YACP,UAAU;YACV,IAAI,EAAE,GAAI,OAAO,CAAC,UAAW,aAAa;YAC1C,MAAM,EAAE,MAAM;YACd,QAAQ,EAAE,KAAK;YACf,aAAa,EAAE,GAAI,OAAO,CAAC,IAAK,oBAAoB;YACpD,YAAY,EAAE,CAAE,wBAAwB,CAAE;YAC1C,QAAQ,EAAE,kBAAkB,CAAC,UAAU,CAAW;YAClD,gBAAgB,EAAE;gBAChB;oBACE,OAAO,EAAE,GAAI,OAAO,CAAC,UAAW,8BAA8B;oBAC9D,IAAI,EAAE,GAAI,OAAO,CAAC,UAAW,sCAAsC;iBACpE;aACF;SACF;KACF,CAAC,CAAC;IAEH,IAAA,kCAAY,EAAC,OAAO,EAAE,kBAAkB,EAAE;QACxC,QAAQ,EAAE,aAAa;QACvB,OAAO,EAAE;YACP,GAAI,UAAW,eAAe;SAC/B;QACD,OAAO,EAAE;YACP,WAAW,EAAE,GAAI,OAAO,CAAC,IAAK,gBAAgB;YAC9C,KAAK,EAAE,KAAK;SACb;KACF,CAAC,CAAC;AAEL,CAAC;AAED,SAAS,gBAAgB,CAAC,IAAU;IAClC,MAAM,MAAM,GAAG,IAAA,mBAAU,EAAC,IAAI,CAAC,CAAC;IAEhC,IAAA,oDAA8B,EAAC,MAAM,EAAE,eAAe,EAAE,kBAAkB,CAAC,CAAC;IAE5E,IAAA,qBAAY,EAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AAC7B,CAAC;AAED,SAAsB,gBAAgB,CACpC,IAAU,EACV,OAA+B;;QAE/B,MAAM,WAAW,GAAG,IAAA,oCAAc,EAAC,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;QAC1D,IAAA,sBAAa,EACX,IAAI,EACJ,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,EAC7B,IAAA,WAAI,EAAC,WAAW,EAAE,KAAK,CAAC,EACxB;YACE,IAAI,EAAE,EAAE;YACR,WAAW,EAAE,OAAO,CAAC,OAAO;SAC7B,CACF,CAAC;QAEF,MAAM,OAAO,GAAG,IAAA,iCAAwB,EAAC,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;QAEhE,gBAAgB,CAAC,IAAI,CAAC,CAAC;QACvB,oBAAoB,CAAC,OAAO,CAAC,CAAC;QAC9B,MAAM,iBAAiB,GAAG,OAAO,CAAC,UAAU,CAAC;QAC7C,IAAI,CAAC,iBAAiB,EAAE;YACtB,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;SAC3D;QACD,IAAA,mCAA0B,EAAC,IAAI,EAAE,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAE3D,MAAM,IAAA,8CAAwB,EAAC,IAAI,EAAE,oBAAoB,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QACrF,MAAM,IAAA,8CAAwB,EAAC,IAAI,EAAE,iBAAiB,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IAEpF,CAAC;CAAA;AA5BD,4CA4BC;AAED,kBAAe,gBAAgB,CAAC"}
1
+ {"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../../../packages/plugin/nestjs/src/generators/swagger/generator.ts"],"names":[],"mappings":"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"}