nestjs-openapi-parser 0.0.2 → 0.0.3
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/README.md +14 -0
- package/dist/parser/path-builder.d.ts +14 -7
- package/dist/parser/path-builder.js +33 -16
- package/dist/parser/path-builder.js.map +1 -1
- package/docs/parser.md +25 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -183,6 +183,20 @@ export class UsersController {
|
|
|
183
183
|
Run `npx nestparser --out openapi.json` — that's it. See [What it parses](docs/parser.md) for
|
|
184
184
|
every supported construct (DTOs, `class-validator` constraints, enums, `@Scope`, `@Tag`, hooks…).
|
|
185
185
|
|
|
186
|
+
## Available JSDoc tags
|
|
187
|
+
|
|
188
|
+
Add these to a controller, method, or property JSDoc to enrich the output. Each must be on its own line (inline mentions are treated as description text).
|
|
189
|
+
|
|
190
|
+
| Tag | Applies to | Effect |
|
|
191
|
+
| --------------------------- | ------------------------------- | ----------------------------------------------------------------------------------------------- |
|
|
192
|
+
| `@Tag <name>` | Controller or method | Group the operation under `<name>` instead of the tag derived from the class name |
|
|
193
|
+
| `@Name <text>` | Method | Set the operation `summary` (otherwise the method name, humanized) |
|
|
194
|
+
| `@Scope <name>` | Controller, method, or property | Emit the item only when `<name>` is an active scope. Comma-separated for several (`@Scope a,b`) |
|
|
195
|
+
| `@Accept <media-type>` | Method | Request body (`@Body()`) media type — default `application/json` |
|
|
196
|
+
| `@ContentType <media-type>` | Method | Response media type — default `application/json` |
|
|
197
|
+
|
|
198
|
+
Inside any JSDoc body you can also wrap text in `<scope>…</scope>` fragments to show it only under matching scopes — see [Configuration](docs/configuration.md#scoped-description-fragments).
|
|
199
|
+
|
|
186
200
|
## What it parses
|
|
187
201
|
|
|
188
202
|
See [Parser Documentation](docs/parser.md)
|
|
@@ -20,8 +20,13 @@ export declare class PathBuilder {
|
|
|
20
20
|
private readonly paths;
|
|
21
21
|
private readonly usedOperationIds;
|
|
22
22
|
private readonly tags;
|
|
23
|
-
/**
|
|
24
|
-
|
|
23
|
+
/**
|
|
24
|
+
* Tag names actually referenced by an emitted operation — each operation's
|
|
25
|
+
* `@Tag`, or the controller tag it falls back to. A controller tag absent here
|
|
26
|
+
* is unused (e.g. its only method overrides it with its own `@Tag`) and so is
|
|
27
|
+
* not emitted in the root `tags[]`.
|
|
28
|
+
*/
|
|
29
|
+
private readonly usedTagNames;
|
|
25
30
|
private readonly globalPrefix;
|
|
26
31
|
private readonly hooks;
|
|
27
32
|
private readonly registeredSchemes;
|
|
@@ -30,11 +35,13 @@ export declare class PathBuilder {
|
|
|
30
35
|
constructor(index: AstIndex, schemaBuilder: SchemaBuilder, options?: PathBuilderOptions);
|
|
31
36
|
build(): Record<string, Record<string, unknown>>;
|
|
32
37
|
/**
|
|
33
|
-
* Root `tags[]` entries: one per
|
|
34
|
-
* (name from `@Tag`/the default-tag hook, description from the
|
|
35
|
-
* first controller wins on a shared name) come first, then any
|
|
36
|
-
* `@Tag` name a controller didn't already declare — description-
|
|
37
|
-
* method's JSDoc is its operation description, not a tag
|
|
38
|
+
* Root `tags[]` entries: one per tag name actually used by an operation.
|
|
39
|
+
* Controller tags (name from `@Tag`/the default-tag hook, description from the
|
|
40
|
+
* class JSDoc; first controller wins on a shared name) come first, then any
|
|
41
|
+
* method-level `@Tag` name a controller didn't already declare — description-
|
|
42
|
+
* less, since a method's JSDoc is its operation description, not a tag
|
|
43
|
+
* description. A controller tag no operation references (every method overrides
|
|
44
|
+
* it) is dropped, so empty controllers don't leak a dangling tag.
|
|
38
45
|
*/
|
|
39
46
|
getTags(): {
|
|
40
47
|
name: string;
|
|
@@ -11,6 +11,9 @@ const HTTP_METHODS = {
|
|
|
11
11
|
Delete: 'delete',
|
|
12
12
|
Patch: 'patch',
|
|
13
13
|
};
|
|
14
|
+
// Media type used for request bodies and responses unless an endpoint overrides
|
|
15
|
+
// it with `@Accept` (request) or `@ContentType` (response) in its JSDoc.
|
|
16
|
+
const DEFAULT_MEDIA_TYPE = 'application/json';
|
|
14
17
|
// NestJS's `HttpStatus` enum (from `@nestjs/common`) member name → numeric code.
|
|
15
18
|
// Used to resolve `@HttpCode(HttpStatus.NO_CONTENT)` statically, since we can't
|
|
16
19
|
// import `@nestjs/common` to read the value at runtime.
|
|
@@ -82,8 +85,13 @@ class PathBuilder {
|
|
|
82
85
|
paths = {};
|
|
83
86
|
usedOperationIds = new Set();
|
|
84
87
|
tags = new Map();
|
|
85
|
-
/**
|
|
86
|
-
|
|
88
|
+
/**
|
|
89
|
+
* Tag names actually referenced by an emitted operation — each operation's
|
|
90
|
+
* `@Tag`, or the controller tag it falls back to. A controller tag absent here
|
|
91
|
+
* is unused (e.g. its only method overrides it with its own `@Tag`) and so is
|
|
92
|
+
* not emitted in the root `tags[]`.
|
|
93
|
+
*/
|
|
94
|
+
usedTagNames = new Set();
|
|
87
95
|
globalPrefix;
|
|
88
96
|
hooks;
|
|
89
97
|
registeredSchemes;
|
|
@@ -105,21 +113,25 @@ class PathBuilder {
|
|
|
105
113
|
// Declare any method-level @Tag name no controller already declared, so the
|
|
106
114
|
// operation's tag isn't dangling. Done after all controllers so a controller's
|
|
107
115
|
// description always wins over a description-less method-tag placeholder.
|
|
108
|
-
for (const name of this.
|
|
116
|
+
for (const name of this.usedTagNames) {
|
|
109
117
|
if (!this.tags.has(name))
|
|
110
118
|
this.tags.set(name, undefined);
|
|
111
119
|
}
|
|
112
120
|
return this.paths;
|
|
113
121
|
}
|
|
114
122
|
/**
|
|
115
|
-
* Root `tags[]` entries: one per
|
|
116
|
-
* (name from `@Tag`/the default-tag hook, description from the
|
|
117
|
-
* first controller wins on a shared name) come first, then any
|
|
118
|
-
* `@Tag` name a controller didn't already declare — description-
|
|
119
|
-
* method's JSDoc is its operation description, not a tag
|
|
123
|
+
* Root `tags[]` entries: one per tag name actually used by an operation.
|
|
124
|
+
* Controller tags (name from `@Tag`/the default-tag hook, description from the
|
|
125
|
+
* class JSDoc; first controller wins on a shared name) come first, then any
|
|
126
|
+
* method-level `@Tag` name a controller didn't already declare — description-
|
|
127
|
+
* less, since a method's JSDoc is its operation description, not a tag
|
|
128
|
+
* description. A controller tag no operation references (every method overrides
|
|
129
|
+
* it) is dropped, so empty controllers don't leak a dangling tag.
|
|
120
130
|
*/
|
|
121
131
|
getTags() {
|
|
122
|
-
return [...this.tags.entries()]
|
|
132
|
+
return [...this.tags.entries()]
|
|
133
|
+
.filter(([name]) => this.usedTagNames.has(name))
|
|
134
|
+
.map(([name, description]) => (description ? { name, description } : { name }));
|
|
123
135
|
}
|
|
124
136
|
processController(controller) {
|
|
125
137
|
if (!(0, tags_1.isVisible)((0, tags_1.getScopes)((0, tags_1.getTags)(controller)), this.activeScopes))
|
|
@@ -157,7 +169,7 @@ class PathBuilder {
|
|
|
157
169
|
for (const route of routePaths) {
|
|
158
170
|
const rawPath = this.joinPath(this.globalPrefix, base, route);
|
|
159
171
|
for (const fullPath of this.expandRoutePaths(rawPath, controller, method)) {
|
|
160
|
-
this.
|
|
172
|
+
this.usedTagNames.add(methodTag);
|
|
161
173
|
const templateParams = this.pathParamNames(fullPath);
|
|
162
174
|
const operation = this.buildOperation(controller, method, httpMethod, methodTag, templateParams);
|
|
163
175
|
this.paths[fullPath] ??= {};
|
|
@@ -175,6 +187,11 @@ class PathBuilder {
|
|
|
175
187
|
const summary = this.resolveSummary(controller, method, httpMethod);
|
|
176
188
|
if (summary)
|
|
177
189
|
operation.summary = summary;
|
|
190
|
+
// `@Accept <type>` overrides the request body media type; `@ContentType
|
|
191
|
+
// <type>` overrides the response media type. Both default to JSON.
|
|
192
|
+
const methodTags = (0, tags_1.getTags)(method);
|
|
193
|
+
const acceptMediaType = methodTags.Accept?.[0] || DEFAULT_MEDIA_TYPE;
|
|
194
|
+
const responseMediaType = methodTags.ContentType?.[0] || DEFAULT_MEDIA_TYPE;
|
|
178
195
|
const rawDesc = method.getJsDocs()[0]?.getCommentText();
|
|
179
196
|
const desc = rawDesc
|
|
180
197
|
? (0, tags_1.filterScopedComments)(rawDesc, this.activeScopes, {
|
|
@@ -223,7 +240,7 @@ class PathBuilder {
|
|
|
223
240
|
break;
|
|
224
241
|
}
|
|
225
242
|
case 'Body':
|
|
226
|
-
requestBody = this.buildRequestBody(param);
|
|
243
|
+
requestBody = this.buildRequestBody(param, acceptMediaType);
|
|
227
244
|
break;
|
|
228
245
|
}
|
|
229
246
|
}
|
|
@@ -242,7 +259,7 @@ class PathBuilder {
|
|
|
242
259
|
operation.parameters = parameters;
|
|
243
260
|
if (requestBody)
|
|
244
261
|
operation.requestBody = requestBody;
|
|
245
|
-
operation.responses = this.buildResponses(method, httpMethod);
|
|
262
|
+
operation.responses = this.buildResponses(method, httpMethod, responseMediaType);
|
|
246
263
|
const security = this.buildSecurity(controller, method);
|
|
247
264
|
if (security !== undefined)
|
|
248
265
|
operation.security = security;
|
|
@@ -281,11 +298,11 @@ class PathBuilder {
|
|
|
281
298
|
schema,
|
|
282
299
|
}));
|
|
283
300
|
}
|
|
284
|
-
buildRequestBody(param) {
|
|
301
|
+
buildRequestBody(param, mediaType) {
|
|
285
302
|
const schema = this.schemaBuilder.typeToSchema(param.getType());
|
|
286
|
-
return { required: true, content: {
|
|
303
|
+
return { required: true, content: { [mediaType]: { schema } } };
|
|
287
304
|
}
|
|
288
|
-
buildResponses(method, httpMethod) {
|
|
305
|
+
buildResponses(method, httpMethod, mediaType) {
|
|
289
306
|
let returnType = method.getReturnType();
|
|
290
307
|
if (ast_index_1.AstIndex.symbolName(returnType) === 'Promise') {
|
|
291
308
|
const args = returnType.getTypeArguments();
|
|
@@ -296,7 +313,7 @@ class PathBuilder {
|
|
|
296
313
|
const status = this.responseStatus(method, httpMethod);
|
|
297
314
|
const response = { description: 'Successful response' };
|
|
298
315
|
if (responseSchema !== undefined) {
|
|
299
|
-
response.content = {
|
|
316
|
+
response.content = { [mediaType]: { schema: responseSchema } };
|
|
300
317
|
}
|
|
301
318
|
return { [status]: response };
|
|
302
319
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"path-builder.js","sourceRoot":"","sources":["../../src/parser/path-builder.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"path-builder.js","sourceRoot":"","sources":["../../src/parser/path-builder.ts"],"names":[],"mappings":"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"}
|
package/docs/parser.md
CHANGED
|
@@ -80,6 +80,31 @@ The default is "method return type **is** the response body" with status `201` f
|
|
|
80
80
|
|
|
81
81
|
**`@HttpCode(...)` overrides the status.** A handler decorated with `@HttpCode(204)` (numeric literal) or `@HttpCode(HttpStatus.NO_CONTENT)` (the `HttpStatus` member is resolved from a built-in name→code table) uses that code as the response key instead of the 201/200 default — matching NestJS's own behavior.
|
|
82
82
|
|
|
83
|
+
## Media types — `@Accept` / `@ContentType`
|
|
84
|
+
|
|
85
|
+
Request bodies and responses default to `application/json`. Override per endpoint with a JSDoc tag on the method (single line, like `@Tag`/`@Name`):
|
|
86
|
+
|
|
87
|
+
| Tag | Overrides |
|
|
88
|
+
| --------------------------- | ------------------------------------------- |
|
|
89
|
+
| `@Accept <media-type>` | the **request body** media type (`@Body()`) |
|
|
90
|
+
| `@ContentType <media-type>` | the **response** media type |
|
|
91
|
+
|
|
92
|
+
```ts
|
|
93
|
+
@Controller('files')
|
|
94
|
+
export class FilesController {
|
|
95
|
+
/**
|
|
96
|
+
* @Accept multipart/form-data
|
|
97
|
+
* @ContentType application/xml
|
|
98
|
+
*/
|
|
99
|
+
@Post('upload')
|
|
100
|
+
upload(@Body() dto: UploadDto): FileInfo {
|
|
101
|
+
/* ... */
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
The `@Body()` schema becomes the `multipart/form-data` content, and the response schema the `application/xml` content. Each tag is independent — set one, the other stays JSON. `@Accept` has no effect on an endpoint without a `@Body()`; `@ContentType` has none when the response has no body.
|
|
107
|
+
|
|
83
108
|
## Schemas
|
|
84
109
|
|
|
85
110
|
The schema builder accepts TypeScript classes and produces OpenAPI object schemas:
|