@vnphu/nestjs-api-explorer 0.2.3 → 0.2.5
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 +47 -5
- package/dist/api-docs-parser.d.ts +4 -0
- package/dist/api-docs-parser.d.ts.map +1 -1
- package/dist/api-docs-parser.js +38 -0
- package/dist/api-docs-parser.js.map +1 -1
- package/dist/api-explorer.module.d.ts +10 -0
- package/dist/api-explorer.module.d.ts.map +1 -1
- package/dist/api-explorer.module.js +6 -0
- package/dist/api-explorer.module.js.map +1 -1
- package/dist/api-explorer.service.d.ts +3 -1
- package/dist/api-explorer.service.d.ts.map +1 -1
- package/dist/api-explorer.service.js +17 -5
- package/dist/api-explorer.service.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -5,7 +5,7 @@ An in-app API explorer for NestJS — like Postman, but embedded directly into y
|
|
|
5
5
|
## Features
|
|
6
6
|
|
|
7
7
|
- **Route auto-discovery** — scans the live Express router, no decorators needed
|
|
8
|
-
- **Markdown docs** — document body fields, query params, headers, and responses in a simple `.md` file
|
|
8
|
+
- **Markdown docs** — document body fields, query params, headers, and responses in a simple `.md` file or a folder of `.md` files
|
|
9
9
|
- **Full request builder** — path params, query params, headers, auth, and body
|
|
10
10
|
- **Global auth** — set Bearer Token / Basic Auth / API Key once, applies to all requests
|
|
11
11
|
- **Body types** — JSON (with formatter), Form-encoded, Plain text
|
|
@@ -42,9 +42,44 @@ Open your browser at `http://localhost:3000/api-explorer`.
|
|
|
42
42
|
|
|
43
43
|
---
|
|
44
44
|
|
|
45
|
-
## Documenting your API (Markdown
|
|
45
|
+
## Documenting your API (Markdown)
|
|
46
46
|
|
|
47
|
-
|
|
47
|
+
### Option A — Single file
|
|
48
|
+
|
|
49
|
+
Point `docsFile` to a `.md` file anywhere in your project:
|
|
50
|
+
|
|
51
|
+
```typescript
|
|
52
|
+
ApiExplorerModule.register({
|
|
53
|
+
docsFile: './api-explorer.md',
|
|
54
|
+
})
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
### Option B — Folder of files
|
|
58
|
+
|
|
59
|
+
Point `docsFolder` to a directory. All `.md` files inside (including subfolders) are scanned and merged automatically:
|
|
60
|
+
|
|
61
|
+
```typescript
|
|
62
|
+
ApiExplorerModule.register({
|
|
63
|
+
docsFolder: './docs',
|
|
64
|
+
})
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
Example folder structure:
|
|
68
|
+
|
|
69
|
+
```
|
|
70
|
+
docs/
|
|
71
|
+
├── auth.md
|
|
72
|
+
├── users.md
|
|
73
|
+
└── shop/
|
|
74
|
+
├── products.md
|
|
75
|
+
└── orders.md
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
Each file follows the same markdown syntax. Routes from all files are merged into one map. If two files define the same `METHOD /path`, the last file read wins.
|
|
79
|
+
|
|
80
|
+
---
|
|
81
|
+
|
|
82
|
+
### Full example
|
|
48
83
|
|
|
49
84
|
### Full example
|
|
50
85
|
|
|
@@ -366,11 +401,17 @@ ApiExplorerModule.register({
|
|
|
366
401
|
// Default: 'API Explorer'
|
|
367
402
|
title: 'My API — Explorer',
|
|
368
403
|
|
|
369
|
-
// Path to
|
|
404
|
+
// Path to a single markdown docs file
|
|
370
405
|
// Relative paths are resolved from process.cwd()
|
|
371
|
-
// Default: null
|
|
406
|
+
// Default: null
|
|
372
407
|
docsFile: './api-explorer.md',
|
|
373
408
|
|
|
409
|
+
// Path to a folder of markdown docs files (scanned recursively)
|
|
410
|
+
// All .md files found are merged together
|
|
411
|
+
// If both docsFile and docsFolder are set, docsFolder takes priority
|
|
412
|
+
// Default: null
|
|
413
|
+
docsFolder: './docs',
|
|
414
|
+
|
|
374
415
|
// Explicitly enable or disable
|
|
375
416
|
// The explorer is ALWAYS disabled when NODE_ENV === 'production'
|
|
376
417
|
// Default: true
|
|
@@ -436,6 +477,7 @@ import {
|
|
|
436
477
|
RouteInfo,
|
|
437
478
|
DocField,
|
|
438
479
|
parseDocsFile,
|
|
480
|
+
parseDocsFolder,
|
|
439
481
|
} from '@vnphu/nestjs-api-explorer';
|
|
440
482
|
|
|
441
483
|
// DocField — one field in body/query/params/headers/response
|
|
@@ -21,4 +21,8 @@ export interface RouteDoc {
|
|
|
21
21
|
* `"METHOD:path"` → RouteDoc.
|
|
22
22
|
*/
|
|
23
23
|
export declare function parseDocsFile(filePath: string): Map<string, RouteDoc>;
|
|
24
|
+
/**
|
|
25
|
+
* Parse all `.md` files inside a folder (recursively) and merge into one map.
|
|
26
|
+
*/
|
|
27
|
+
export declare function parseDocsFolder(folderPath: string): Map<string, RouteDoc>;
|
|
24
28
|
//# sourceMappingURL=api-docs-parser.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api-docs-parser.d.ts","sourceRoot":"","sources":["../src/api-docs-parser.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,OAAO,CAAC;IAClB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,QAAQ;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,QAAQ,EAAE,CAAC;IACjB,KAAK,EAAE,QAAQ,EAAE,CAAC;IAClB,MAAM,EAAE,QAAQ,EAAE,CAAC;IACnB,OAAO,EAAE,QAAQ,EAAE,CAAC;IACpB,QAAQ,EAAE,QAAQ,EAAE,CAAC;CACtB;AAyGD;;;GAGG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAmFrE"}
|
|
1
|
+
{"version":3,"file":"api-docs-parser.d.ts","sourceRoot":"","sources":["../src/api-docs-parser.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,OAAO,CAAC;IAClB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,QAAQ;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,QAAQ,EAAE,CAAC;IACjB,KAAK,EAAE,QAAQ,EAAE,CAAC;IAClB,MAAM,EAAE,QAAQ,EAAE,CAAC;IACnB,OAAO,EAAE,QAAQ,EAAE,CAAC;IACpB,QAAQ,EAAE,QAAQ,EAAE,CAAC;CACtB;AAyGD;;;GAGG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAmFrE;AAwBD;;GAEG;AACH,wBAAgB,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAWzE"}
|
package/dist/api-docs-parser.js
CHANGED
|
@@ -34,6 +34,7 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
34
34
|
})();
|
|
35
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
36
|
exports.parseDocsFile = parseDocsFile;
|
|
37
|
+
exports.parseDocsFolder = parseDocsFolder;
|
|
37
38
|
const fs = __importStar(require("fs"));
|
|
38
39
|
const path = __importStar(require("path"));
|
|
39
40
|
const KNOWN_TYPES = new Set(['string', 'number', 'boolean', 'array', 'object']);
|
|
@@ -231,4 +232,41 @@ function parseDocsFile(filePath) {
|
|
|
231
232
|
flush();
|
|
232
233
|
return map;
|
|
233
234
|
}
|
|
235
|
+
/**
|
|
236
|
+
* Recursively collect all `.md` files under a directory.
|
|
237
|
+
*/
|
|
238
|
+
function collectMdFiles(dir) {
|
|
239
|
+
const results = [];
|
|
240
|
+
let entries;
|
|
241
|
+
try {
|
|
242
|
+
entries = fs.readdirSync(dir, { withFileTypes: true });
|
|
243
|
+
}
|
|
244
|
+
catch {
|
|
245
|
+
return results;
|
|
246
|
+
}
|
|
247
|
+
for (const entry of entries) {
|
|
248
|
+
const full = path.join(dir, entry.name);
|
|
249
|
+
if (entry.isDirectory()) {
|
|
250
|
+
results.push(...collectMdFiles(full));
|
|
251
|
+
}
|
|
252
|
+
else if (entry.isFile() && entry.name.endsWith('.md')) {
|
|
253
|
+
results.push(full);
|
|
254
|
+
}
|
|
255
|
+
}
|
|
256
|
+
return results;
|
|
257
|
+
}
|
|
258
|
+
/**
|
|
259
|
+
* Parse all `.md` files inside a folder (recursively) and merge into one map.
|
|
260
|
+
*/
|
|
261
|
+
function parseDocsFolder(folderPath) {
|
|
262
|
+
const resolved = path.isAbsolute(folderPath)
|
|
263
|
+
? folderPath
|
|
264
|
+
: path.resolve(process.cwd(), folderPath);
|
|
265
|
+
const merged = new Map();
|
|
266
|
+
for (const file of collectMdFiles(resolved)) {
|
|
267
|
+
const fileMap = parseDocsFile(file);
|
|
268
|
+
fileMap.forEach((doc, key) => merged.set(key, doc));
|
|
269
|
+
}
|
|
270
|
+
return merged;
|
|
271
|
+
}
|
|
234
272
|
//# sourceMappingURL=api-docs-parser.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api-docs-parser.js","sourceRoot":"","sources":["../src/api-docs-parser.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoIA,sCAmFC;
|
|
1
|
+
{"version":3,"file":"api-docs-parser.js","sourceRoot":"","sources":["../src/api-docs-parser.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoIA,sCAmFC;AA2BD,0CAWC;AA7PD,uCAAyB;AACzB,2CAA6B;AA4B7B,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC;AAEhF;;;;;;;GAOG;AACH,MAAM,OAAO,GACX,wPAAwP,CAAC;AAE3P;;;;GAIG;AACH,SAAS,WAAW,CAAC,GAAW;IAC9B,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,IAAI,OAAO,GAAG,EAAE,CAAC;IACjB,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,KAAK,MAAM,EAAE,IAAI,GAAG,EAAE,CAAC;QACrB,IAAI,EAAE,KAAK,GAAG,EAAE,CAAC;YAAC,KAAK,EAAE,CAAC;YAAC,OAAO,IAAI,EAAE,CAAC;QAAC,CAAC;aACtC,IAAI,EAAE,KAAK,GAAG,EAAE,CAAC;YAAC,KAAK,EAAE,CAAC;YAAC,OAAO,IAAI,EAAE,CAAC;QAAC,CAAC;aAC3C,IAAI,EAAE,KAAK,GAAG,IAAI,KAAK,KAAK,CAAC,EAAE,CAAC;YACnC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;YAC5B,OAAO,GAAG,EAAE,CAAC;QACf,CAAC;aAAM,CAAC;YACN,OAAO,IAAI,EAAE,CAAC;QAChB,CAAC;IACH,CAAC;IACD,IAAI,OAAO,CAAC,IAAI,EAAE;QAAE,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;IAChD,OAAO,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AAChC,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,SAAS,UAAU,CAAC,IAAY;IAC9B,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;IAC5B,IAAI,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IAEpD,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACtC,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC;IAC/C,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAEhD,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAC;IAEvB,MAAM,MAAM,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;IAEjC,IAAI,IAAI,GAAG,EAAE,CAAC;IACd,IAAI,QAAQ,GAAG,KAAK,CAAC;IACrB,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,MAAM,SAAS,GAAa,EAAE,CAAC;IAE/B,IAAI,OAAO,GAAG,IAAI,CAAC;IACnB,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,MAAM,CAAC,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;QACvB,IAAI,CAAC,CAAC;YAAE,SAAS;QAEjB,wCAAwC;QACxC,IAAI,OAAO,EAAE,CAAC;YACZ,OAAO,GAAG,KAAK,CAAC;YAChB,IAAI,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC;gBACrC,IAAI,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC;gBACvB,SAAS;YACX,CAAC;QACH,CAAC;QAED,IAAI,CAAC,CAAC,WAAW,EAAE,KAAK,UAAU,EAAE,CAAC;YACnC,QAAQ,GAAG,IAAI,CAAC;QAClB,CAAC;aAAM,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;YAC3B,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAChB,CAAC;aAAM,CAAC;YACN,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACpB,CAAC;IACH,CAAC;IAED,OAAO;QACL,IAAI;QACJ,IAAI;QACJ,QAAQ;QACR,KAAK;QACL,WAAW,EAAE,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC;KAClC,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,SAAgB,aAAa,CAAC,QAAgB;IAC5C,MAAM,GAAG,GAAG,IAAI,GAAG,EAAoB,CAAC;IAExC,IAAI,GAAW,CAAC;IAChB,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC;YACxC,CAAC,CAAC,QAAQ;YACV,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,QAAQ,CAAC,CAAC;QAC1C,GAAG,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC3C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,GAAG,CAAC;IACb,CAAC;IAED,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAEjC,IAAI,YAAY,GAAG,EAAE,CAAC;IACtB,IAAI,YAAY,GAAoB,IAAI,CAAC;IACzC,IAAI,cAAc,GAAY,IAAI,CAAC;IAEnC,MAAM,KAAK,GAAG,GAAG,EAAE;QACjB,IAAI,CAAC,YAAY;YAAE,OAAO;QAC1B,GAAG,CAAC,GAAG,CAAC,GAAG,YAAY,CAAC,MAAM,IAAI,YAAY,CAAC,IAAI,EAAE,EAAE,YAAY,CAAC,CAAC;QACrE,YAAY,GAAG,IAAI,CAAC;QACpB,cAAc,GAAG,IAAI,CAAC;IACxB,CAAC,CAAC;IAEF,KAAK,MAAM,OAAO,IAAI,KAAK,EAAE,CAAC;QAC5B,gEAAgE;QAChE,IAAI,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;YACrD,KAAK,EAAE,CAAC;YACR,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;YACnD,SAAS;QACX,CAAC;QAED,gEAAgE;QAChE,MAAM,UAAU,GAAG,OAAO,CAAC,KAAK,CAAC,2DAA2D,CAAC,CAAC;QAC9F,IAAI,UAAU,EAAE,CAAC;YACf,KAAK,EAAE,CAAC;YACR,YAAY,GAAG;gBACb,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE;gBACnC,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC;gBACnB,KAAK,EAAE,YAAY;gBACnB,WAAW,EAAE,EAAE;gBACf,IAAI,EAAE,EAAE;gBACR,KAAK,EAAE,EAAE;gBACT,MAAM,EAAE,EAAE;gBACV,OAAO,EAAE,EAAE;gBACX,QAAQ,EAAE,EAAE;aACb,CAAC;YACF,cAAc,GAAG,IAAI,CAAC;YACtB,SAAS;QACX,CAAC;QAED,IAAI,CAAC,YAAY;YAAE,SAAS;QAE5B,iEAAiE;QACjE,IAAI,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;YAC1B,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;YACjD,YAAY,CAAC,WAAW,GAAG,YAAY,CAAC,WAAW;gBACjD,CAAC,CAAC,YAAY,CAAC,WAAW,GAAG,IAAI,GAAG,IAAI;gBACxC,CAAC,CAAC,IAAI,CAAC;YACT,SAAS;QACX,CAAC;QAED,yEAAyE;QACzE,IAAI,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,EAAM,CAAC;YAAC,cAAc,GAAG,MAAM,CAAC;YAAK,SAAS;QAAC,CAAC;QACrF,IAAI,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,EAAK,CAAC;YAAC,cAAc,GAAG,OAAO,CAAC;YAAI,SAAS;QAAC,CAAC;QACrF,IAAI,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,EAAI,CAAC;YAAC,cAAc,GAAG,QAAQ,CAAC;YAAG,SAAS;QAAC,CAAC;QACrF,IAAI,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,EAAG,CAAC;YAAC,cAAc,GAAG,SAAS,CAAC;YAAE,SAAS;QAAC,CAAC;QACrF,IAAI,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;YAAC,cAAc,GAAG,UAAU,CAAC;YAAC,SAAS;QAAC,CAAC;QAErF,gEAAgE;QAChE,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,IAAI,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE;YAAE,SAAS;QAEnE,iEAAiE;QACjE,IAAI,cAAc,IAAI,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAG,CAAC;YAC/C,MAAM,KAAK,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC;YAClC,IAAI,KAAK;gBAAE,YAAY,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACtD,CAAC;IACH,CAAC;IAED,KAAK,EAAE,CAAC;IACR,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;GAEG;AACH,SAAS,cAAc,CAAC,GAAW;IACjC,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,IAAI,OAAoB,CAAC;IACzB,IAAI,CAAC;QACH,OAAO,GAAG,EAAE,CAAC,WAAW,CAAC,GAAG,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;IACzD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,OAAO,CAAC;IACjB,CAAC;IACD,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;QACxC,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;YACxB,OAAO,CAAC,IAAI,CAAC,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC;QACxC,CAAC;aAAM,IAAI,KAAK,CAAC,MAAM,EAAE,IAAI,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YACxD,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACrB,CAAC;IACH,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;GAEG;AACH,SAAgB,eAAe,CAAC,UAAkB;IAChD,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC;QAC1C,CAAC,CAAC,UAAU;QACZ,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,UAAU,CAAC,CAAC;IAE5C,MAAM,MAAM,GAAG,IAAI,GAAG,EAAoB,CAAC;IAC3C,KAAK,MAAM,IAAI,IAAI,cAAc,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC5C,MAAM,OAAO,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;QACpC,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;IACtD,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
|
@@ -18,6 +18,15 @@ export interface ApiExplorerOptions {
|
|
|
18
18
|
* @example '/app/docs/api.md'
|
|
19
19
|
*/
|
|
20
20
|
docsFile?: string;
|
|
21
|
+
/**
|
|
22
|
+
* Path to a folder containing markdown docs files (scanned recursively).
|
|
23
|
+
* All `.md` files found will be merged together.
|
|
24
|
+
* Can be absolute or relative to process.cwd().
|
|
25
|
+
*
|
|
26
|
+
* @example './docs'
|
|
27
|
+
* @example '/app/docs/api'
|
|
28
|
+
*/
|
|
29
|
+
docsFolder?: string;
|
|
21
30
|
/**
|
|
22
31
|
* Explicitly enable or disable the explorer.
|
|
23
32
|
* The explorer is automatically disabled when NODE_ENV === 'production'.
|
|
@@ -29,6 +38,7 @@ export interface ResolvedApiExplorerOptions {
|
|
|
29
38
|
path: string;
|
|
30
39
|
title: string;
|
|
31
40
|
docsFile: string | null;
|
|
41
|
+
docsFolder: string | null;
|
|
32
42
|
enabled: boolean;
|
|
33
43
|
}
|
|
34
44
|
export declare const API_EXPLORER_OPTIONS = "API_EXPLORER_OPTIONS";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api-explorer.module.d.ts","sourceRoot":"","sources":["../src/api-explorer.module.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAU,MAAM,gBAAgB,CAAC;AAIvD,MAAM,WAAW,kBAAkB;IACjC;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;;;;;OAMG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;;;OAIG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,0BAA0B;IACzC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,OAAO,EAAE,OAAO,CAAC;CAClB;
|
|
1
|
+
{"version":3,"file":"api-explorer.module.d.ts","sourceRoot":"","sources":["../src/api-explorer.module.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAU,MAAM,gBAAgB,CAAC;AAIvD,MAAM,WAAW,kBAAkB;IACjC;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;;;;;OAMG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;;;;;;OAOG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;;;OAIG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,0BAA0B;IACzC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,OAAO,EAAE,OAAO,CAAC;CAClB;AAUD,eAAO,MAAM,oBAAoB,yBAAyB,CAAC;AAE3D,qBACa,iBAAiB;IAC5B,MAAM,CAAC,QAAQ,CAAC,OAAO,GAAE,kBAAuB,GAAG,aAAa;CAoCjE"}
|
|
@@ -15,6 +15,7 @@ const DEFAULTS = {
|
|
|
15
15
|
path: 'api-explorer',
|
|
16
16
|
title: 'API Explorer',
|
|
17
17
|
docsFile: null,
|
|
18
|
+
docsFolder: null,
|
|
18
19
|
enabled: true,
|
|
19
20
|
};
|
|
20
21
|
exports.API_EXPLORER_OPTIONS = 'API_EXPLORER_OPTIONS';
|
|
@@ -25,6 +26,7 @@ let ApiExplorerModule = ApiExplorerModule_1 = class ApiExplorerModule {
|
|
|
25
26
|
...DEFAULTS,
|
|
26
27
|
...options,
|
|
27
28
|
docsFile: options.docsFile ?? null,
|
|
29
|
+
docsFolder: options.docsFolder ?? null,
|
|
28
30
|
};
|
|
29
31
|
if (!resolved.enabled || isProduction) {
|
|
30
32
|
return { module: ApiExplorerModule_1 };
|
|
@@ -43,6 +45,10 @@ let ApiExplorerModule = ApiExplorerModule_1 = class ApiExplorerModule {
|
|
|
43
45
|
provide: api_explorer_service_1.API_EXPLORER_DOCS_FILE,
|
|
44
46
|
useValue: resolved.docsFile,
|
|
45
47
|
},
|
|
48
|
+
{
|
|
49
|
+
provide: api_explorer_service_1.API_EXPLORER_DOCS_FOLDER,
|
|
50
|
+
useValue: resolved.docsFolder,
|
|
51
|
+
},
|
|
46
52
|
],
|
|
47
53
|
exports: [api_explorer_service_1.ApiExplorerService],
|
|
48
54
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api-explorer.module.js","sourceRoot":"","sources":["../src/api-explorer.module.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,2CAAuD;AACvD,uEAAwE;AACxE,
|
|
1
|
+
{"version":3,"file":"api-explorer.module.js","sourceRoot":"","sources":["../src/api-explorer.module.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,2CAAuD;AACvD,uEAAwE;AACxE,iEAA8G;AAkD9G,MAAM,QAAQ,GAA+B;IAC3C,IAAI,EAAE,cAAc;IACpB,KAAK,EAAE,cAAc;IACrB,QAAQ,EAAE,IAAI;IACd,UAAU,EAAE,IAAI;IAChB,OAAO,EAAE,IAAI;CACd,CAAC;AAEW,QAAA,oBAAoB,GAAG,sBAAsB,CAAC;AAGpD,IAAM,iBAAiB,yBAAvB,MAAM,iBAAiB;IAC5B,MAAM,CAAC,QAAQ,CAAC,UAA8B,EAAE;QAC9C,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY,CAAC;QAC3D,MAAM,QAAQ,GAA+B;YAC3C,GAAG,QAAQ;YACX,GAAG,OAAO;YACV,QAAQ,EAAE,OAAO,CAAC,QAAQ,IAAI,IAAI;YAClC,UAAU,EAAE,OAAO,CAAC,UAAU,IAAI,IAAI;SACvC,CAAC;QAEF,IAAI,CAAC,QAAQ,CAAC,OAAO,IAAI,YAAY,EAAE,CAAC;YACtC,OAAO,EAAE,MAAM,EAAE,mBAAiB,EAAE,CAAC;QACvC,CAAC;QAED,MAAM,UAAU,GAAG,IAAA,qDAA2B,EAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAE9D,OAAO;YACL,MAAM,EAAE,mBAAiB;YACzB,WAAW,EAAE,CAAC,UAAU,CAAC;YACzB,SAAS,EAAE;gBACT,yCAAkB;gBAClB;oBACE,OAAO,EAAE,4BAAoB;oBAC7B,QAAQ,EAAE,QAAQ;iBACnB;gBACD;oBACE,OAAO,EAAE,6CAAsB;oBAC/B,QAAQ,EAAE,QAAQ,CAAC,QAAQ;iBAC5B;gBACD;oBACE,OAAO,EAAE,+CAAwB;oBACjC,QAAQ,EAAE,QAAQ,CAAC,UAAU;iBAC9B;aACF;YACD,OAAO,EAAE,CAAC,yCAAkB,CAAC;SAC9B,CAAC;IACJ,CAAC;CACF,CAAA;AArCY,8CAAiB;4BAAjB,iBAAiB;IAD7B,IAAA,eAAM,EAAC,EAAE,CAAC;GACE,iBAAiB,CAqC7B"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { RouteDoc, DocField } from './api-docs-parser';
|
|
2
2
|
export declare const API_EXPLORER_DOCS_FILE = "API_EXPLORER_DOCS_FILE";
|
|
3
|
+
export declare const API_EXPLORER_DOCS_FOLDER = "API_EXPLORER_DOCS_FOLDER";
|
|
3
4
|
export { DocField, RouteDoc };
|
|
4
5
|
export interface RouteInfo {
|
|
5
6
|
method: string;
|
|
@@ -14,8 +15,9 @@ export interface RouteInfo {
|
|
|
14
15
|
}
|
|
15
16
|
export declare class ApiExplorerService {
|
|
16
17
|
private readonly docsFile;
|
|
18
|
+
private readonly docsFolder;
|
|
17
19
|
private _docsMap;
|
|
18
|
-
constructor(docsFile: string | null);
|
|
20
|
+
constructor(docsFile: string | null, docsFolder: string | null);
|
|
19
21
|
getRoutes(expressApp: any): RouteInfo[];
|
|
20
22
|
private scanApp;
|
|
21
23
|
private traverseStack;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api-explorer.service.d.ts","sourceRoot":"","sources":["../src/api-explorer.service.ts"],"names":[],"mappings":"AACA,OAAO,
|
|
1
|
+
{"version":3,"file":"api-explorer.service.d.ts","sourceRoot":"","sources":["../src/api-explorer.service.ts"],"names":[],"mappings":"AACA,OAAO,EAAkC,QAAQ,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAEvF,eAAO,MAAM,sBAAsB,2BAA2B,CAAC;AAC/D,eAAO,MAAM,wBAAwB,6BAA6B,CAAC;AAEnE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;AAE9B,MAAM,WAAW,SAAS;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,QAAQ,EAAE,CAAC;IACjB,KAAK,EAAE,QAAQ,EAAE,CAAC;IAClB,OAAO,EAAE,QAAQ,EAAE,CAAC;IACpB,QAAQ,EAAE,QAAQ,EAAE,CAAC;CACtB;AAED,qBACa,kBAAkB;IAK3B,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAEzB,OAAO,CAAC,QAAQ,CAAC,UAAU;IAN7B,OAAO,CAAC,QAAQ,CAAsC;gBAInC,QAAQ,EAAE,MAAM,GAAG,IAAI,EAEvB,UAAU,EAAE,MAAM,GAAG,IAAI;IAG5C,SAAS,CAAC,UAAU,EAAE,GAAG,GAAG,SAAS,EAAE;IA8BvC,OAAO,CAAC,OAAO;IAmBf,OAAO,CAAC,aAAa;IAiBrB,OAAO,CAAC,SAAS;IAOjB,OAAO,CAAC,oBAAoB;IAW5B,OAAO,CAAC,aAAa;CAGtB"}
|
|
@@ -12,19 +12,29 @@ var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
|
12
12
|
return function (target, key) { decorator(target, key, paramIndex); }
|
|
13
13
|
};
|
|
14
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
-
exports.ApiExplorerService = exports.API_EXPLORER_DOCS_FILE = void 0;
|
|
15
|
+
exports.ApiExplorerService = exports.API_EXPLORER_DOCS_FOLDER = exports.API_EXPLORER_DOCS_FILE = void 0;
|
|
16
16
|
const common_1 = require("@nestjs/common");
|
|
17
17
|
const api_docs_parser_1 = require("./api-docs-parser");
|
|
18
18
|
exports.API_EXPLORER_DOCS_FILE = 'API_EXPLORER_DOCS_FILE';
|
|
19
|
+
exports.API_EXPLORER_DOCS_FOLDER = 'API_EXPLORER_DOCS_FOLDER';
|
|
19
20
|
let ApiExplorerService = class ApiExplorerService {
|
|
20
|
-
constructor(docsFile) {
|
|
21
|
+
constructor(docsFile, docsFolder) {
|
|
21
22
|
this.docsFile = docsFile;
|
|
23
|
+
this.docsFolder = docsFolder;
|
|
22
24
|
this._docsMap = null;
|
|
23
25
|
}
|
|
24
26
|
getRoutes(expressApp) {
|
|
25
|
-
// Lazy-load docs
|
|
27
|
+
// Lazy-load docs once
|
|
26
28
|
if (this._docsMap === null) {
|
|
27
|
-
|
|
29
|
+
if (this.docsFolder) {
|
|
30
|
+
this._docsMap = (0, api_docs_parser_1.parseDocsFolder)(this.docsFolder);
|
|
31
|
+
}
|
|
32
|
+
else if (this.docsFile) {
|
|
33
|
+
this._docsMap = (0, api_docs_parser_1.parseDocsFile)(this.docsFile);
|
|
34
|
+
}
|
|
35
|
+
else {
|
|
36
|
+
this._docsMap = new Map();
|
|
37
|
+
}
|
|
28
38
|
}
|
|
29
39
|
const routes = this.scanApp(expressApp);
|
|
30
40
|
return routes.map((r) => {
|
|
@@ -105,6 +115,8 @@ exports.ApiExplorerService = ApiExplorerService = __decorate([
|
|
|
105
115
|
(0, common_1.Injectable)(),
|
|
106
116
|
__param(0, (0, common_1.Optional)()),
|
|
107
117
|
__param(0, (0, common_1.Inject)(exports.API_EXPLORER_DOCS_FILE)),
|
|
108
|
-
|
|
118
|
+
__param(1, (0, common_1.Optional)()),
|
|
119
|
+
__param(1, (0, common_1.Inject)(exports.API_EXPLORER_DOCS_FOLDER)),
|
|
120
|
+
__metadata("design:paramtypes", [Object, Object])
|
|
109
121
|
], ApiExplorerService);
|
|
110
122
|
//# sourceMappingURL=api-explorer.service.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api-explorer.service.js","sourceRoot":"","sources":["../src/api-explorer.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAA8D;AAC9D,
|
|
1
|
+
{"version":3,"file":"api-explorer.service.js","sourceRoot":"","sources":["../src/api-explorer.service.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export { ApiExplorerModule, ApiExplorerOptions, ResolvedApiExplorerOptions, API_EXPLORER_OPTIONS, } from './api-explorer.module';
|
|
2
2
|
export { ApiExplorerService, RouteInfo, DocField, RouteDoc, API_EXPLORER_DOCS_FILE, } from './api-explorer.service';
|
|
3
3
|
export { getExplorerHtml } from './api-explorer.html';
|
|
4
|
-
export { parseDocsFile } from './api-docs-parser';
|
|
4
|
+
export { parseDocsFile, parseDocsFolder } from './api-docs-parser';
|
|
5
5
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,0BAA0B,EAC1B,oBAAoB,GACrB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EACL,kBAAkB,EAClB,SAAS,EACT,QAAQ,EACR,QAAQ,EACR,sBAAsB,GACvB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,0BAA0B,EAC1B,oBAAoB,GACrB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EACL,kBAAkB,EAClB,SAAS,EACT,QAAQ,EACR,QAAQ,EACR,sBAAsB,GACvB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.parseDocsFile = exports.getExplorerHtml = exports.API_EXPLORER_DOCS_FILE = exports.ApiExplorerService = exports.API_EXPLORER_OPTIONS = exports.ApiExplorerModule = void 0;
|
|
3
|
+
exports.parseDocsFolder = exports.parseDocsFile = exports.getExplorerHtml = exports.API_EXPLORER_DOCS_FILE = exports.ApiExplorerService = exports.API_EXPLORER_OPTIONS = exports.ApiExplorerModule = void 0;
|
|
4
4
|
var api_explorer_module_1 = require("./api-explorer.module");
|
|
5
5
|
Object.defineProperty(exports, "ApiExplorerModule", { enumerable: true, get: function () { return api_explorer_module_1.ApiExplorerModule; } });
|
|
6
6
|
Object.defineProperty(exports, "API_EXPLORER_OPTIONS", { enumerable: true, get: function () { return api_explorer_module_1.API_EXPLORER_OPTIONS; } });
|
|
@@ -11,4 +11,5 @@ var api_explorer_html_1 = require("./api-explorer.html");
|
|
|
11
11
|
Object.defineProperty(exports, "getExplorerHtml", { enumerable: true, get: function () { return api_explorer_html_1.getExplorerHtml; } });
|
|
12
12
|
var api_docs_parser_1 = require("./api-docs-parser");
|
|
13
13
|
Object.defineProperty(exports, "parseDocsFile", { enumerable: true, get: function () { return api_docs_parser_1.parseDocsFile; } });
|
|
14
|
+
Object.defineProperty(exports, "parseDocsFolder", { enumerable: true, get: function () { return api_docs_parser_1.parseDocsFolder; } });
|
|
14
15
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,6DAK+B;AAJ7B,wHAAA,iBAAiB,OAAA;AAGjB,2HAAA,oBAAoB,OAAA;AAGtB,+DAMgC;AAL9B,0HAAA,kBAAkB,OAAA;AAIlB,8HAAA,sBAAsB,OAAA;AAGxB,yDAAsD;AAA7C,oHAAA,eAAe,OAAA;AACxB,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,6DAK+B;AAJ7B,wHAAA,iBAAiB,OAAA;AAGjB,2HAAA,oBAAoB,OAAA;AAGtB,+DAMgC;AAL9B,0HAAA,kBAAkB,OAAA;AAIlB,8HAAA,sBAAsB,OAAA;AAGxB,yDAAsD;AAA7C,oHAAA,eAAe,OAAA;AACxB,qDAAmE;AAA1D,gHAAA,aAAa,OAAA;AAAE,kHAAA,eAAe,OAAA"}
|
package/package.json
CHANGED