@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 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 file)
45
+ ## Documenting your API (Markdown)
46
46
 
47
- Create a file `api-explorer.md` in your project root (or anywhere just set `docsFile` to the path).
47
+ ### Option ASingle 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 the markdown docs file
404
+ // Path to a single markdown docs file
370
405
  // Relative paths are resolved from process.cwd()
371
- // Default: null (no docs, routes still shown without documentation)
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"}
@@ -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":"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"}
1
+ {"version":3,"file":"api-docs-parser.js","sourceRoot":"","sources":["../src/api-docs-parser.ts"],"names":[],"mappings":"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"}
@@ -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;AASD,eAAO,MAAM,oBAAoB,yBAAyB,CAAC;AAE3D,qBACa,iBAAiB;IAC5B,MAAM,CAAC,QAAQ,CAAC,OAAO,GAAE,kBAAuB,GAAG,aAAa;CA+BjE"}
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,iEAAoF;AAuCpF,MAAM,QAAQ,GAA+B;IAC3C,IAAI,EAAE,cAAc;IACpB,KAAK,EAAE,cAAc;IACrB,QAAQ,EAAE,IAAI;IACd,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;SACnC,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;aACF;YACD,OAAO,EAAE,CAAC,yCAAkB,CAAC;SAC9B,CAAC;IACJ,CAAC;CACF,CAAA;AAhCY,8CAAiB;4BAAjB,iBAAiB;IAD7B,IAAA,eAAM,EAAC,EAAE,CAAC;GACE,iBAAiB,CAgC7B"}
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,EAAiB,QAAQ,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAEtE,eAAO,MAAM,sBAAsB,2BAA2B,CAAC;AAE/D,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;IAJ3B,OAAO,CAAC,QAAQ,CAAsC;gBAInC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAG1C,SAAS,CAAC,UAAU,EAAE,GAAG,GAAG,SAAS,EAAE;IAwBvC,OAAO,CAAC,OAAO;IAmBf,OAAO,CAAC,aAAa;IAiBrB,OAAO,CAAC,SAAS;IAOjB,OAAO,CAAC,oBAAoB;IAW5B,OAAO,CAAC,aAAa;CAGtB"}
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 file once
27
+ // Lazy-load docs once
26
28
  if (this._docsMap === null) {
27
- this._docsMap = this.docsFile ? (0, api_docs_parser_1.parseDocsFile)(this.docsFile) : new Map();
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
- __metadata("design:paramtypes", [Object])
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":"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"}
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
@@ -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,qDAAkD;AAAzC,gHAAA,aAAa,OAAA"}
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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vnphu/nestjs-api-explorer",
3
- "version": "0.2.3",
3
+ "version": "0.2.5",
4
4
  "description": "An in-app API explorer for NestJS — like Postman, but built right into your app.",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",