@rxap/plugin-nestjs 16.1.0-dev.16 → 16.1.0-dev.17

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,12 @@
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.1.0-dev.17](https://gitlab.com/rxap/packages/compare/@rxap/plugin-nestjs@16.1.0-dev.16...@rxap/plugin-nestjs@16.1.0-dev.17) (2023-09-09)
7
+
8
+ ### Features
9
+
10
+ - add openapi utility operation generation ([9e67895](https://gitlab.com/rxap/packages/commit/9e678950b7f47bb39768f2d41c3a64b3af7a3c10))
11
+
6
12
  # [16.1.0-dev.16](https://gitlab.com/rxap/packages/compare/@rxap/plugin-nestjs@16.1.0-dev.15...@rxap/plugin-nestjs@16.1.0-dev.16) (2023-09-07)
7
13
 
8
14
  **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 @rxap/generator-utilities@^1.1.0-dev.9 @rxap/plugin-utilities@^16.1.0-dev.11 @rxap/ts-morph@^0.1.0-dev.5 @rxap/utilities@^16.0.0-dev.15 @rxap/workspace-ts-morph@^0.1.0-dev.5 @rxap/workspace-utilities@^0.1.0-dev.10 ts-morph@^18.0.0
22
+ yarn add @nx/devkit@^16.5.0 @nx/js@^16.5.0 @rxap/generator-utilities@^1.1.0-dev.10 @rxap/plugin-utilities@^16.1.0-dev.12 @rxap/ts-morph@^0.1.0-dev.6 @rxap/utilities@^16.0.0-dev.16 @rxap/workspace-ts-morph@^0.1.0-dev.6 @rxap/workspace-utilities@^0.1.0-dev.11 ts-morph@^18.0.0
23
23
  ```
24
24
  **Execute the init generator:**
25
25
  ```bash
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rxap/plugin-nestjs",
3
- "version": "16.1.0-dev.16",
3
+ "version": "16.1.0-dev.17",
4
4
  "type": "commonjs",
5
5
  "generators": "./generators.json",
6
6
  "publishConfig": {
@@ -40,12 +40,12 @@
40
40
  "peerDependencies": {
41
41
  "@nx/devkit": "^16.5.0",
42
42
  "@nx/js": "^16.5.0",
43
- "@rxap/generator-utilities": "^1.1.0-dev.9",
44
- "@rxap/plugin-utilities": "^16.1.0-dev.11",
45
- "@rxap/ts-morph": "^0.1.0-dev.5",
46
- "@rxap/utilities": "^16.0.0-dev.15",
47
- "@rxap/workspace-ts-morph": "^0.1.0-dev.5",
48
- "@rxap/workspace-utilities": "^0.1.0-dev.10",
43
+ "@rxap/generator-utilities": "^1.1.0-dev.10",
44
+ "@rxap/plugin-utilities": "^16.1.0-dev.12",
45
+ "@rxap/ts-morph": "^0.1.0-dev.6",
46
+ "@rxap/utilities": "^16.0.0-dev.16",
47
+ "@rxap/workspace-ts-morph": "^0.1.0-dev.6",
48
+ "@rxap/workspace-utilities": "^0.1.0-dev.11",
49
49
  "ts-morph": "^18.0.0",
50
50
  "@rxap/node-utilities": "1.1.0-dev.7"
51
51
  },
@@ -53,33 +53,33 @@
53
53
  "packageGroup": [
54
54
  {
55
55
  "package": "@rxap/generator-utilities",
56
- "version": "1.1.0-dev.9"
56
+ "version": "1.1.0-dev.10"
57
57
  },
58
58
  {
59
59
  "package": "@rxap/plugin-utilities",
60
- "version": "16.1.0-dev.11"
60
+ "version": "16.1.0-dev.12"
61
61
  },
62
62
  {
63
63
  "package": "@rxap/ts-morph",
64
- "version": "0.1.0-dev.5"
64
+ "version": "0.1.0-dev.6"
65
65
  },
66
66
  {
67
67
  "package": "@rxap/utilities",
68
- "version": "16.0.0-dev.15"
68
+ "version": "16.0.0-dev.16"
69
69
  },
70
70
  {
71
71
  "package": "@rxap/workspace-ts-morph",
72
- "version": "0.1.0-dev.5"
72
+ "version": "0.1.0-dev.6"
73
73
  },
74
74
  {
75
75
  "package": "@rxap/workspace-utilities",
76
- "version": "0.1.0-dev.10"
76
+ "version": "0.1.0-dev.11"
77
77
  }
78
78
  ]
79
79
  },
80
80
  "executors": "./executors.json",
81
81
  "schematics": "./generators.json",
82
- "gitHead": "492a8436ca0f8d54ca1bef192a3c805fdce19b66",
82
+ "gitHead": "0a2b6a8ad25d8833591332ea55586724e17e5a5c",
83
83
  "main": "./src/index.js",
84
84
  "types": "./src/index.d.ts"
85
85
  }
@@ -33,6 +33,7 @@ const server = new Monolithic<NestApplicationOptions, NestExpressApplication>(
33
33
  exclude: [
34
34
  '/health(.*)',
35
35
  '/info',
36
+ '/openapi',
36
37
  '/register',
37
38
  ]
38
39
  }
@@ -5,10 +5,14 @@ const tslib_1 = require("tslib");
5
5
  const devkit_1 = require("@nx/devkit");
6
6
  const generator_utilities_1 = require("@rxap/generator-utilities");
7
7
  const plugin_utilities_1 = require("@rxap/plugin-utilities");
8
+ const ts_morph_1 = require("@rxap/ts-morph");
9
+ const workspace_ts_morph_1 = require("@rxap/workspace-ts-morph");
8
10
  const workspace_utilities_1 = require("@rxap/workspace-utilities");
9
11
  const path = require("path");
10
12
  const path_1 = require("path");
13
+ const ts_morph_2 = require("ts-morph");
11
14
  function updateProjectTargets(project) {
15
+ var _a, _b;
12
16
  const buildTarget = (0, plugin_utilities_1.GetTarget)(project, 'build');
13
17
  const buildTargetOptions = (0, plugin_utilities_1.GetTargetOptions)(buildTarget);
14
18
  if (!buildTargetOptions['outputPath']) {
@@ -40,13 +44,34 @@ function updateProjectTargets(project) {
40
44
  (0, workspace_utilities_1.CoerceTarget)(project, 'swagger-generate', {
41
45
  executor: '@nx/js:node',
42
46
  outputs: [
43
- `${outputPath}/open-api.json`,
47
+ `${outputPath}/openapi.json`,
44
48
  ],
45
49
  options: {
46
50
  buildTarget: `${project.name}:swagger-build`,
47
51
  watch: false,
48
52
  },
49
53
  });
54
+ const projectSourceRoot = project.sourceRoot;
55
+ if (!projectSourceRoot) {
56
+ throw new Error('The selected project has no sourceRoot');
57
+ }
58
+ (0, workspace_utilities_1.CoerceTarget)(project, 'copy-open-api-json', {
59
+ executor: 'nx:run-commands',
60
+ outputs: [
61
+ `{projectRoot}/src/openapi.json`,
62
+ ],
63
+ inputs: [
64
+ `{workspaceRoot}/dist/swagger/{projectRoot}/openapi.json`,
65
+ ],
66
+ options: {
67
+ command: `cp ${outputPath}/openapi.json ${projectSourceRoot}/openapi.json`,
68
+ },
69
+ }, workspace_utilities_1.Strategy.OVERWRITE);
70
+ (_a = buildTargetOptions.assets) !== null && _a !== void 0 ? _a : (buildTargetOptions.assets = []);
71
+ (0, generator_utilities_1.CoerceAssets)(buildTargetOptions.assets, [`${projectSourceRoot}/openapi.json`]);
72
+ const developmentBuildOptions = (0, plugin_utilities_1.GetTargetOptions)(buildTarget, 'development');
73
+ (_b = developmentBuildOptions.assets) !== null && _b !== void 0 ? _b : (developmentBuildOptions.assets = []);
74
+ (0, generator_utilities_1.CoerceAssets)(developmentBuildOptions.assets, [`${projectSourceRoot}/openapi.json`]);
50
75
  }
51
76
  function updateNxDefaults(tree) {
52
77
  var _a, _b, _c, _d;
@@ -65,6 +90,9 @@ function updateNxDefaults(tree) {
65
90
  if (!nxJson.tasksRunnerOptions['default'].options['cacheableOperations'].includes('swagger-generate')) {
66
91
  nxJson.tasksRunnerOptions['default'].options['cacheableOperations'].push('swagger-generate');
67
92
  }
93
+ if (!nxJson.tasksRunnerOptions['default'].options['cacheableOperations'].includes('copy-open-api-json')) {
94
+ nxJson.tasksRunnerOptions['default'].options['cacheableOperations'].push('copy-open-api-json');
95
+ }
68
96
  (0, devkit_1.updateNxJson)(tree, nxJson);
69
97
  }
70
98
  function swaggerGenerator(tree, options) {
@@ -77,7 +105,45 @@ function swaggerGenerator(tree, options) {
77
105
  const project = (0, devkit_1.readProjectConfiguration)(tree, options.project);
78
106
  updateNxDefaults(tree);
79
107
  updateProjectTargets(project);
108
+ const projectSourceRoot = project.sourceRoot;
109
+ if (!projectSourceRoot) {
110
+ throw new Error('The selected project has no sourceRoot');
111
+ }
112
+ (0, generator_utilities_1.CoerceIgnorePattern)(tree, (0, path_1.join)(projectSourceRoot, '.gitignore'), ['/openapi.json']);
80
113
  (0, devkit_1.updateProjectConfiguration)(tree, options.project, project);
114
+ (0, workspace_ts_morph_1.TsMorphNestProjectTransform)(tree, { project: options.project }, (_, [sourceFile]) => {
115
+ console.log('sourceFile', sourceFile);
116
+ (0, ts_morph_1.CoerceNestOperation)(sourceFile, {
117
+ operationName: 'openapi',
118
+ path: 'openapi',
119
+ statements: [
120
+ 'return GetOpenapiJson(__dirname, this.logger);',
121
+ ],
122
+ });
123
+ const classDeclaration = sourceFile.getClass('AppController');
124
+ (0, ts_morph_1.CoerceClassProperty)(classDeclaration, 'logger', {
125
+ scope: ts_morph_2.Scope.Private,
126
+ isReadonly: true,
127
+ hasExclamationToken: true,
128
+ type: 'Logger',
129
+ decorators: [
130
+ {
131
+ name: 'Inject',
132
+ arguments: ['Logger'],
133
+ },
134
+ ],
135
+ });
136
+ (0, ts_morph_1.CoerceImports)(sourceFile, [
137
+ {
138
+ namedImports: ['Logger', 'Inject'],
139
+ moduleSpecifier: '@nestjs/common',
140
+ },
141
+ {
142
+ namedImports: ['GetOpenapiJson'],
143
+ moduleSpecifier: '@rxap/nest-open-api',
144
+ },
145
+ ]);
146
+ }, ['app/app.controller.ts']);
81
147
  yield (0, workspace_utilities_1.AddPackageJsonDependency)(tree, 'swagger-ui-express', 'latest', { soft: true });
82
148
  yield (0, workspace_utilities_1.AddPackageJsonDependency)(tree, '@nestjs/swagger', 'latest', { soft: true });
83
149
  });
@@ -1 +1 @@
1
- {"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../../../packages/plugin/nestjs/src/generators/swagger/generator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../../../packages/plugin/nestjs/src/generators/swagger/generator.ts"],"names":[],"mappings":"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"}