vuepress-jsdoc 4.2.0 → 4.3.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 +7 -0
- package/README.md +2 -1
- package/dist/cmds.js +1 -0
- package/dist/index.js +87 -103
- package/dist/interfaces.d.ts +1 -0
- package/dist/lib/comment-parser.js +3 -3
- package/dist/lib/list-folder.d.ts +2 -1
- package/dist/lib/list-folder.js +10 -4
- package/dist/lib/parser.js +4 -3
- package/dist/lib/vue-sidebar.js +2 -2
- package/package.json +19 -19
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,12 @@
|
|
|
1
|
+
## 4.3.0 (2022-02-15)
|
|
2
|
+
|
|
3
|
+
* feat(include): add include flag, fix some bugs and improve performance ([082a60a](https://github.com/ph1p/vuepress-jsdoc/commit/082a60a))
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
|
|
1
7
|
## 4.2.0 (2021-11-17)
|
|
2
8
|
|
|
9
|
+
* 4.2.0 ([3cdbc8a](https://github.com/ph1p/vuepress-jsdoc/commit/3cdbc8a))
|
|
3
10
|
* build(deps): update dependencies ([858dff8](https://github.com/ph1p/vuepress-jsdoc/commit/858dff8))
|
|
4
11
|
|
|
5
12
|
|
package/README.md
CHANGED
|
@@ -66,6 +66,7 @@ Use these options after `vuepress-jsdoc`.
|
|
|
66
66
|
| --version | -v | | Show current version |
|
|
67
67
|
| --readme | -r | | Path to custom readme file |
|
|
68
68
|
| --exclude | -e | | Pattern to exclude files/folders (Comma seperated) - \*.test.js,exclude.js [more information](https://github.com/micromatch/micromatch#ismatch) |
|
|
69
|
+
| --include | -e | | Pattern to include files/folders (Comma seperated) - \*.test.js,exclude.js [more information](https://github.com/micromatch/micromatch#ismatch) |
|
|
69
70
|
| --rmPattern | -rm | | Pattern when removing files. You can ex- and include files. (glob pattern) |
|
|
70
71
|
| --partials | -p | | jsdoc2markdown partial templates (overwrites default ones) |
|
|
71
72
|
| --jsDocConfigPath | -c | | Path to [JsDoc Config](http://usejsdoc.org/about-configuring-jsdoc.html) (experimental) |
|
|
@@ -162,7 +163,7 @@ Use `headline` to add a custom `h1` title.
|
|
|
162
163
|
To use typescript, you have to install these dev-dependencies:
|
|
163
164
|
|
|
164
165
|
```bash
|
|
165
|
-
|
|
166
|
+
npm install -D typescript jsdoc-babel @babel/cli @babel/core @babel/preset-env @babel/preset-typescript jsdoc-to-markdown
|
|
166
167
|
```
|
|
167
168
|
|
|
168
169
|
Next, you have to add a `jsdoc.json` to your project with some settings and add it with the `-c` parameter.
|
package/dist/cmds.js
CHANGED
|
@@ -23,6 +23,7 @@ exports.default = (function (version) {
|
|
|
23
23
|
.option('-f, --folder <string>', 'Folder inside destination folder. Gets overwritten everytime', 'code')
|
|
24
24
|
.option('-t, --title <string>', 'Title of your documentation', 'API')
|
|
25
25
|
.option('-r, --readme <string>', 'Path to your custom readme')
|
|
26
|
+
.option('-i, --include <string>', 'Pattern to include files/folders (Comma seperated) - *.test.js,include.js')
|
|
26
27
|
.option('-e, --exclude <string>', 'Pattern to exclude files/folders (Comma seperated) - *.test.js,exclude.js')
|
|
27
28
|
.option('-w, --watch', 'This flag watches your source files')
|
|
28
29
|
.option('-rm, --rmPattern [files...]', 'Pattern when removing files. You can ex- and include files. (glob pattern)', '')
|
package/dist/index.js
CHANGED
|
@@ -88,7 +88,6 @@ var chokidar_1 = __importDefault(require("chokidar"));
|
|
|
88
88
|
var del_1 = __importDefault(require("del"));
|
|
89
89
|
var promises_1 = __importDefault(require("fs/promises"));
|
|
90
90
|
var mkdirp_1 = __importDefault(require("mkdirp"));
|
|
91
|
-
var path_1 = require("path");
|
|
92
91
|
var readline_1 = __importDefault(require("readline"));
|
|
93
92
|
var constants_1 = require("./constants");
|
|
94
93
|
var list_folder_1 = require("./lib/list-folder");
|
|
@@ -100,7 +99,7 @@ var vue_sidebar_1 = require("./lib/vue-sidebar");
|
|
|
100
99
|
* @returns {Promise}
|
|
101
100
|
*/
|
|
102
101
|
var createVuepressSidebar = function (options) {
|
|
103
|
-
return promises_1.default.writeFile(options.docsFolder
|
|
102
|
+
return promises_1.default.writeFile("".concat(options.docsFolder, "/config.js"), "exports.fileTree=".concat(JSON.stringify(options.fileTree), ";exports.sidebarTree = (title = 'Mainpage') => (").concat(JSON.stringify((0, vue_sidebar_1.generateVueSidebar)(options)).replace('::vuepress-jsdoc-title::', '"+title+"'), ");"));
|
|
104
103
|
};
|
|
105
104
|
/**
|
|
106
105
|
* Parse file
|
|
@@ -108,31 +107,17 @@ var createVuepressSidebar = function (options) {
|
|
|
108
107
|
* @param {CLIArguments} argv
|
|
109
108
|
* @returns {Promise}
|
|
110
109
|
*/
|
|
111
|
-
var parseDirectoryFile = function (file, argv) {
|
|
112
|
-
var _a, srcFolder, docsFolder, partials
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
_a = parseArguments(argv), srcFolder = _a.srcFolder, docsFolder = _a.docsFolder, partials = _a.partials;
|
|
117
|
-
if (!(!file.isDir && file.folder)) return [3 /*break*/, 5];
|
|
118
|
-
dest = (0, path_1.join)(docsFolder, file.folder.replace(srcFolder, ''));
|
|
119
|
-
content = void 0;
|
|
120
|
-
if (!['.jsx', '.tsx', '.ts', '.js'].includes(file.ext || '')) return [3 /*break*/, 2];
|
|
121
|
-
return [4 /*yield*/, (0, parser_1.parseFile)(file, srcFolder, docsFolder, argv.jsDocConfigPath, partials)];
|
|
122
|
-
case 1:
|
|
123
|
-
content = _b.sent();
|
|
124
|
-
_b.label = 2;
|
|
125
|
-
case 2:
|
|
126
|
-
if (!(file.ext === '.vue')) return [3 /*break*/, 4];
|
|
127
|
-
return [4 /*yield*/, (0, parser_1.parseVueFile)(file, srcFolder, docsFolder)];
|
|
128
|
-
case 3:
|
|
129
|
-
content = _b.sent();
|
|
130
|
-
_b.label = 4;
|
|
131
|
-
case 4: return [2 /*return*/, { content: content, dest: dest }];
|
|
132
|
-
case 5: return [2 /*return*/];
|
|
110
|
+
var parseDirectoryFile = function (file, argv) {
|
|
111
|
+
var _a = parseArguments(argv), srcFolder = _a.srcFolder, docsFolder = _a.docsFolder, partials = _a.partials;
|
|
112
|
+
if (!file.isDir && file.folder) {
|
|
113
|
+
if (['.jsx', '.tsx', '.ts', '.js'].includes(file.ext || '')) {
|
|
114
|
+
return (0, parser_1.parseFile)(file, srcFolder, docsFolder, argv.jsDocConfigPath, partials);
|
|
133
115
|
}
|
|
134
|
-
|
|
135
|
-
|
|
116
|
+
if (file.ext === '.vue') {
|
|
117
|
+
return (0, parser_1.parseVueFile)(file, srcFolder, docsFolder);
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
};
|
|
136
121
|
/**
|
|
137
122
|
* Create the readme file. First page when entering the documentation.
|
|
138
123
|
* @param {CLIArguments} argv
|
|
@@ -145,23 +130,23 @@ var createReadmeFile = function (argv, deletedPaths) { return __awaiter(void 0,
|
|
|
145
130
|
switch (_b.label) {
|
|
146
131
|
case 0:
|
|
147
132
|
_a = parseArguments(argv), srcFolder = _a.srcFolder, codeFolder = _a.codeFolder, docsFolder = _a.docsFolder, title = _a.title, readme = _a.readme;
|
|
148
|
-
readMeContent = "### Welcome to "
|
|
149
|
-
readmePath = readme || srcFolder
|
|
133
|
+
readMeContent = "### Welcome to ".concat(title);
|
|
134
|
+
readmePath = readme || "".concat(srcFolder, "/README.md");
|
|
150
135
|
_b.label = 1;
|
|
151
136
|
case 1:
|
|
152
137
|
_b.trys.push([1, 3, , 4]);
|
|
153
138
|
return [4 /*yield*/, promises_1.default.readFile(readmePath, 'utf-8')];
|
|
154
139
|
case 2:
|
|
155
140
|
readMeContent = _b.sent();
|
|
156
|
-
if (deletedPaths === null || deletedPaths === void 0 ? void 0 : deletedPaths.some(function (p) { return p.indexOf(codeFolder
|
|
157
|
-
console.log("\n"
|
|
141
|
+
if (deletedPaths === null || deletedPaths === void 0 ? void 0 : deletedPaths.some(function (p) { return p.indexOf("".concat(codeFolder, "/README.md")) !== -1; })) {
|
|
142
|
+
console.log("\n".concat(chalk_1.default.white.bgBlack(' README '), " ").concat(chalk_1.default.dim(readmePath.replace('README.md', ''))).concat(chalk_1.default.bold('README.md'), " \u2192 ").concat(chalk_1.default.dim(docsFolder)).concat(chalk_1.default.bold('/README.md')));
|
|
158
143
|
}
|
|
159
144
|
return [3 /*break*/, 4];
|
|
160
145
|
case 3:
|
|
161
146
|
e_1 = _b.sent();
|
|
162
|
-
console.log("\n"
|
|
147
|
+
console.log("\n".concat(chalk_1.default.white.bgBlack(' README '), " Add default README.md"));
|
|
163
148
|
return [3 /*break*/, 4];
|
|
164
|
-
case 4: return [4 /*yield*/, promises_1.default.writeFile(docsFolder
|
|
149
|
+
case 4: return [4 /*yield*/, promises_1.default.writeFile("".concat(docsFolder, "/README.md"), readMeContent)];
|
|
165
150
|
case 5:
|
|
166
151
|
_b.sent();
|
|
167
152
|
return [2 /*return*/];
|
|
@@ -175,10 +160,11 @@ var createReadmeFile = function (argv, deletedPaths) { return __awaiter(void 0,
|
|
|
175
160
|
*/
|
|
176
161
|
var parseArguments = function (argv) {
|
|
177
162
|
return {
|
|
163
|
+
include: (argv.include || '').split(',').filter(Boolean),
|
|
178
164
|
exclude: (argv.exclude || '').split(',').filter(Boolean),
|
|
179
165
|
srcFolder: argv.source.replace('./', ''),
|
|
180
166
|
codeFolder: argv.folder,
|
|
181
|
-
docsFolder: argv.dist
|
|
167
|
+
docsFolder: "".concat(argv.dist, "/").concat(argv.folder),
|
|
182
168
|
title: argv.title,
|
|
183
169
|
readme: argv.readme,
|
|
184
170
|
rmPattern: argv.rmPattern || [],
|
|
@@ -190,17 +176,17 @@ var parseArguments = function (argv) {
|
|
|
190
176
|
* @param {object} argv passed arguments
|
|
191
177
|
*/
|
|
192
178
|
var generate = function (argv) { return __awaiter(void 0, void 0, void 0, function () {
|
|
193
|
-
var _a, exclude, srcFolder, codeFolder, docsFolder, title, rmPattern, startTime, deletedPaths, lsFolder, parsePromises, _b, _c, file, e_2_1, _d, _e, file,
|
|
179
|
+
var _a, exclude, include, srcFolder, codeFolder, docsFolder, title, rmPattern, startTime, deletedPaths, lsFolder, parsePromises, _b, _c, file, e_2_1, _loop_1, _d, _e, file, result, _f, _g, file, _h, _j, entry, color, resultTime;
|
|
194
180
|
var e_2, _k, e_3, _l, e_4, _m, e_5, _o, _p;
|
|
195
181
|
return __generator(this, function (_q) {
|
|
196
182
|
switch (_q.label) {
|
|
197
183
|
case 0:
|
|
198
|
-
_a = parseArguments(argv), exclude = _a.exclude, srcFolder = _a.srcFolder, codeFolder = _a.codeFolder, docsFolder = _a.docsFolder, title = _a.title, rmPattern = _a.rmPattern;
|
|
184
|
+
_a = parseArguments(argv), exclude = _a.exclude, include = _a.include, srcFolder = _a.srcFolder, codeFolder = _a.codeFolder, docsFolder = _a.docsFolder, title = _a.title, rmPattern = _a.rmPattern;
|
|
199
185
|
startTime = +new Date();
|
|
200
|
-
return [4 /*yield*/, (0, del_1.default)(__spreadArray([docsFolder
|
|
186
|
+
return [4 /*yield*/, (0, del_1.default)(__spreadArray(["".concat(docsFolder, "/**/*")], __read(rmPattern), false))];
|
|
201
187
|
case 1:
|
|
202
188
|
deletedPaths = _q.sent();
|
|
203
|
-
return [4 /*yield*/, (0, list_folder_1.listFolder)(srcFolder, exclude)];
|
|
189
|
+
return [4 /*yield*/, (0, list_folder_1.listFolder)(srcFolder, exclude, include)];
|
|
204
190
|
case 2:
|
|
205
191
|
lsFolder = _q.sent();
|
|
206
192
|
return [4 /*yield*/, (0, mkdirp_1.default)(docsFolder)];
|
|
@@ -218,7 +204,7 @@ var generate = function (argv) { return __awaiter(void 0, void 0, void 0, functi
|
|
|
218
204
|
if (!!file.isDir) return [3 /*break*/, 7];
|
|
219
205
|
readline_1.default.clearLine(process.stdout, 0);
|
|
220
206
|
readline_1.default.cursorTo(process.stdout, 0);
|
|
221
|
-
process.stdout.write(chalk_1.default.dim(" "
|
|
207
|
+
process.stdout.write(chalk_1.default.dim(" ".concat(file.path, " ")));
|
|
222
208
|
return [4 /*yield*/, new Promise(function (resolve) { return setTimeout(resolve, 20); })];
|
|
223
209
|
case 6:
|
|
224
210
|
_q.sent();
|
|
@@ -240,38 +226,40 @@ var generate = function (argv) { return __awaiter(void 0, void 0, void 0, functi
|
|
|
240
226
|
case 11:
|
|
241
227
|
readline_1.default.clearLine(process.stdout, 0);
|
|
242
228
|
readline_1.default.cursorTo(process.stdout, 0);
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
_e = _d.next();
|
|
260
|
-
return [3 /*break*/, 13];
|
|
261
|
-
case 16: return [3 /*break*/, 19];
|
|
262
|
-
case 17:
|
|
263
|
-
e_3_1 = _q.sent();
|
|
264
|
-
e_3 = { error: e_3_1 };
|
|
265
|
-
return [3 /*break*/, 19];
|
|
266
|
-
case 18:
|
|
229
|
+
_loop_1 = function (file) {
|
|
230
|
+
parsePromises.push((function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
231
|
+
var data;
|
|
232
|
+
return __generator(this, function (_a) {
|
|
233
|
+
switch (_a.label) {
|
|
234
|
+
case 0: return [4 /*yield*/, parseDirectoryFile(file, argv)];
|
|
235
|
+
case 1:
|
|
236
|
+
data = _a.sent();
|
|
237
|
+
if (data && (data === null || data === void 0 ? void 0 : data.relativePathDest)) {
|
|
238
|
+
return [2 /*return*/, (0, parser_1.writeContentToFile)(data, data.relativePathDest)];
|
|
239
|
+
}
|
|
240
|
+
return [2 /*return*/];
|
|
241
|
+
}
|
|
242
|
+
});
|
|
243
|
+
}); })());
|
|
244
|
+
};
|
|
267
245
|
try {
|
|
268
|
-
|
|
246
|
+
// iterate through files and parse them
|
|
247
|
+
for (_d = __values(lsFolder.paths), _e = _d.next(); !_e.done; _e = _d.next()) {
|
|
248
|
+
file = _e.value;
|
|
249
|
+
_loop_1(file);
|
|
250
|
+
}
|
|
269
251
|
}
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
252
|
+
catch (e_3_1) { e_3 = { error: e_3_1 }; }
|
|
253
|
+
finally {
|
|
254
|
+
try {
|
|
255
|
+
if (_e && !_e.done && (_l = _d.return)) _l.call(_d);
|
|
256
|
+
}
|
|
257
|
+
finally { if (e_3) throw e_3.error; }
|
|
258
|
+
}
|
|
259
|
+
return [4 /*yield*/, Promise.all(parsePromises)];
|
|
260
|
+
case 12:
|
|
274
261
|
result = _q.sent();
|
|
262
|
+
result = result.filter(Boolean);
|
|
275
263
|
// write vuepress sidebar
|
|
276
264
|
return [4 /*yield*/, createVuepressSidebar({
|
|
277
265
|
fileTree: lsFolder.tree,
|
|
@@ -280,14 +268,14 @@ var generate = function (argv) { return __awaiter(void 0, void 0, void 0, functi
|
|
|
280
268
|
codeFolder: codeFolder,
|
|
281
269
|
title: title
|
|
282
270
|
})];
|
|
283
|
-
case
|
|
271
|
+
case 13:
|
|
284
272
|
// write vuepress sidebar
|
|
285
273
|
_q.sent();
|
|
286
274
|
try {
|
|
287
275
|
// print stats
|
|
288
276
|
for (_f = __values(lsFolder.excluded), _g = _f.next(); !_g.done; _g = _f.next()) {
|
|
289
277
|
file = _g.value;
|
|
290
|
-
console.log(chalk_1.default.reset.inverse.bold.blue(' EXCLUDE '), ""
|
|
278
|
+
console.log(chalk_1.default.reset.inverse.bold.blue(' EXCLUDE '), "".concat(chalk_1.default.dim(file.folder)).concat(chalk_1.default.bold(file.name + file.ext)));
|
|
291
279
|
}
|
|
292
280
|
}
|
|
293
281
|
catch (e_4_1) { e_4 = { error: e_4_1 }; }
|
|
@@ -309,7 +297,7 @@ var generate = function (argv) { return __awaiter(void 0, void 0, void 0, functi
|
|
|
309
297
|
_p[constants_1.StatisticType.EMPTY] = 'yellow',
|
|
310
298
|
_p[constants_1.StatisticType.EXCLUDE] = 'blue',
|
|
311
299
|
_p)[entry.type];
|
|
312
|
-
console.log(chalk_1.default.reset.inverse.bold[color](" "
|
|
300
|
+
console.log(chalk_1.default.reset.inverse.bold[color](" ".concat(entry.type, " ")), "".concat(chalk_1.default.dim(entry.relativePathSrc)).concat(chalk_1.default.bold(entry.file.name + entry.file.ext), " \u2192 ").concat(chalk_1.default.dim(entry.relativePathDest)).concat(chalk_1.default.bold(entry.file.name + '.md')));
|
|
313
301
|
}
|
|
314
302
|
}
|
|
315
303
|
catch (e_5_1) { e_5 = { error: e_5_1 }; }
|
|
@@ -321,11 +309,11 @@ var generate = function (argv) { return __awaiter(void 0, void 0, void 0, functi
|
|
|
321
309
|
}
|
|
322
310
|
// create README.md
|
|
323
311
|
return [4 /*yield*/, createReadmeFile(argv, deletedPaths)];
|
|
324
|
-
case
|
|
312
|
+
case 14:
|
|
325
313
|
// create README.md
|
|
326
314
|
_q.sent();
|
|
327
315
|
resultTime = (Math.abs(startTime - +new Date()) / 1000).toFixed(2);
|
|
328
|
-
console.log("\n\u23F0 Time: "
|
|
316
|
+
console.log("\n\u23F0 Time: ".concat(resultTime, "s"));
|
|
329
317
|
watchFiles(argv);
|
|
330
318
|
return [2 /*return*/];
|
|
331
319
|
}
|
|
@@ -337,50 +325,46 @@ exports.generate = generate;
|
|
|
337
325
|
* @param {CLIArguments} argv
|
|
338
326
|
*/
|
|
339
327
|
var watchFiles = function (argv) {
|
|
340
|
-
var _a = parseArguments(argv), exclude = _a.exclude, srcFolder = _a.srcFolder, codeFolder = _a.codeFolder, docsFolder = _a.docsFolder, title = _a.title;
|
|
328
|
+
var _a = parseArguments(argv), exclude = _a.exclude, include = _a.include, srcFolder = _a.srcFolder, codeFolder = _a.codeFolder, docsFolder = _a.docsFolder, title = _a.title;
|
|
341
329
|
if (argv.watch) {
|
|
342
330
|
console.log('\n---\n\n👀 watching files...');
|
|
343
|
-
var watcher = chokidar_1.default.watch([srcFolder, argv.readme, srcFolder
|
|
331
|
+
var watcher = chokidar_1.default.watch([srcFolder, argv.readme, "".concat(srcFolder, "/README.md")].filter(Boolean), {
|
|
344
332
|
ignored: /(^|[\/\\])\../,
|
|
345
333
|
persistent: true
|
|
346
334
|
});
|
|
347
335
|
watcher.on('change', function (path) { return __awaiter(void 0, void 0, void 0, function () {
|
|
348
|
-
var lsFolder, file
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
336
|
+
var lsFolder, file;
|
|
337
|
+
var _a;
|
|
338
|
+
return __generator(this, function (_b) {
|
|
339
|
+
switch (_b.label) {
|
|
340
|
+
case 0: return [4 /*yield*/, (0, list_folder_1.listFolder)(srcFolder, exclude, include)];
|
|
352
341
|
case 1:
|
|
353
|
-
lsFolder =
|
|
342
|
+
lsFolder = _b.sent();
|
|
354
343
|
file = lsFolder.paths.find(function (p) { return p.path === path; });
|
|
355
344
|
readline_1.default.clearLine(process.stdout, 0);
|
|
356
345
|
readline_1.default.cursorTo(process.stdout, 0);
|
|
357
|
-
if (!(path === 'README.md' || path === srcFolder
|
|
346
|
+
if (!(path === 'README.md' || path === "".concat(srcFolder, "/README.md"))) return [3 /*break*/, 3];
|
|
358
347
|
return [4 /*yield*/, createReadmeFile(argv)];
|
|
359
348
|
case 2:
|
|
360
|
-
|
|
361
|
-
|
|
349
|
+
_b.sent();
|
|
350
|
+
_b.label = 3;
|
|
362
351
|
case 3:
|
|
363
|
-
if (
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
})];
|
|
380
|
-
case 7:
|
|
381
|
-
_a.sent();
|
|
382
|
-
_a.label = 8;
|
|
383
|
-
case 8: return [2 /*return*/];
|
|
352
|
+
if (file) {
|
|
353
|
+
process.stdout.write(chalk_1.default.dim("update ".concat(file.name + file.ext)));
|
|
354
|
+
(_a = parseDirectoryFile(file, argv)) === null || _a === void 0 ? void 0 : _a.then(function (data) {
|
|
355
|
+
if (data) {
|
|
356
|
+
(0, parser_1.writeContentToFile)(data, data.relativePathDest);
|
|
357
|
+
}
|
|
358
|
+
createVuepressSidebar({
|
|
359
|
+
fileTree: lsFolder.tree,
|
|
360
|
+
srcFolder: srcFolder,
|
|
361
|
+
docsFolder: docsFolder,
|
|
362
|
+
codeFolder: codeFolder,
|
|
363
|
+
title: title
|
|
364
|
+
});
|
|
365
|
+
});
|
|
366
|
+
}
|
|
367
|
+
return [2 /*return*/];
|
|
384
368
|
}
|
|
385
369
|
});
|
|
386
370
|
}); });
|
package/dist/interfaces.d.ts
CHANGED
|
@@ -53,10 +53,10 @@ exports.parseComment = parseComment;
|
|
|
53
53
|
var parseVuepressFileHeader = function (content, file) {
|
|
54
54
|
var _a = (0, exports.parseComment)(content), frontmatter = _a.frontmatter, attributes = _a.attributes;
|
|
55
55
|
var fileContent = '---\n';
|
|
56
|
-
fileContent += !(attributes === null || attributes === void 0 ? void 0 : attributes.title) ? "title: "
|
|
56
|
+
fileContent += !(attributes === null || attributes === void 0 ? void 0 : attributes.title) ? "title: ".concat(file.name) : '';
|
|
57
57
|
if (frontmatter) {
|
|
58
58
|
fileContent += !(attributes === null || attributes === void 0 ? void 0 : attributes.title) ? '\n' : '';
|
|
59
|
-
fileContent += ""
|
|
59
|
+
fileContent += "".concat(frontmatter);
|
|
60
60
|
}
|
|
61
61
|
fileContent += '\n---\n';
|
|
62
62
|
if ((attributes === null || attributes === void 0 ? void 0 : attributes.title) || file.ext !== '.vue') {
|
|
@@ -67,7 +67,7 @@ var parseVuepressFileHeader = function (content, file) {
|
|
|
67
67
|
else if (attributes === null || attributes === void 0 ? void 0 : attributes.title) {
|
|
68
68
|
headline = attributes.title;
|
|
69
69
|
}
|
|
70
|
-
fileContent += "\n# "
|
|
70
|
+
fileContent += "\n# ".concat(headline, "\n\n");
|
|
71
71
|
}
|
|
72
72
|
return fileContent;
|
|
73
73
|
};
|
|
@@ -3,11 +3,12 @@ import { DirectoryFile, FileTree } from '../interfaces';
|
|
|
3
3
|
* Recursively traverse folders and return exluded files, a file list and a file tree.
|
|
4
4
|
* @param {string} srcPath path to source dir
|
|
5
5
|
* @param {array} exclude exluded file patter list
|
|
6
|
+
* @param {array} include included file patter list
|
|
6
7
|
* @param {string} mainPath path to hold source dir
|
|
7
8
|
* @param {object} tree tree array
|
|
8
9
|
* @returns {object} paths array, tree, excluded array
|
|
9
10
|
*/
|
|
10
|
-
export declare const listFolder: (srcPath: string, exclude: string[], mainPath?: string | undefined, tree?: FileTree[]) => Promise<{
|
|
11
|
+
export declare const listFolder: (srcPath: string, exclude: string[], include: string[], mainPath?: string | undefined, tree?: FileTree[]) => Promise<{
|
|
11
12
|
paths: DirectoryFile[];
|
|
12
13
|
tree: FileTree[];
|
|
13
14
|
excluded: DirectoryFile[];
|
package/dist/lib/list-folder.js
CHANGED
|
@@ -100,11 +100,12 @@ var path_1 = __importDefault(require("path"));
|
|
|
100
100
|
* Recursively traverse folders and return exluded files, a file list and a file tree.
|
|
101
101
|
* @param {string} srcPath path to source dir
|
|
102
102
|
* @param {array} exclude exluded file patter list
|
|
103
|
+
* @param {array} include included file patter list
|
|
103
104
|
* @param {string} mainPath path to hold source dir
|
|
104
105
|
* @param {object} tree tree array
|
|
105
106
|
* @returns {object} paths array, tree, excluded array
|
|
106
107
|
*/
|
|
107
|
-
var listFolder = function (srcPath, exclude, mainPath, tree) {
|
|
108
|
+
var listFolder = function (srcPath, exclude, include, mainPath, tree) {
|
|
108
109
|
if (tree === void 0) { tree = []; }
|
|
109
110
|
return __awaiter(void 0, void 0, void 0, function () {
|
|
110
111
|
var paths, excluded, dirs, _a, dirs_1, dirs_1_1, dirent, filePath, isDir, ext, name_1, folder, file, baseSrc, treeEntry, _b, _c, _d, _e, e_1_1;
|
|
@@ -115,7 +116,11 @@ var listFolder = function (srcPath, exclude, mainPath, tree) {
|
|
|
115
116
|
if (!Boolean(exclude) || !Array.isArray(exclude)) {
|
|
116
117
|
exclude = [];
|
|
117
118
|
}
|
|
119
|
+
if (!Boolean(include) || !Array.isArray(include)) {
|
|
120
|
+
include = [];
|
|
121
|
+
}
|
|
118
122
|
exclude = exclude.filter(Boolean);
|
|
123
|
+
include = include.filter(Boolean);
|
|
119
124
|
paths = [];
|
|
120
125
|
excluded = [];
|
|
121
126
|
if (!srcPath) return [3 /*break*/, 2];
|
|
@@ -151,7 +156,8 @@ var listFolder = function (srcPath, exclude, mainPath, tree) {
|
|
|
151
156
|
if (name_1.toLowerCase() === 'readme')
|
|
152
157
|
return [3 /*break*/, 10];
|
|
153
158
|
baseSrc = mainPath || srcPath;
|
|
154
|
-
if (
|
|
159
|
+
if (!(micromatch_1.default.every(path_1.default.join(srcPath.replace(baseSrc, ''), dirent.name), __spreadArray(__spreadArray([], __read(include), false), __read(exclude.map(function (e) { return '!' + e; })), false)) ||
|
|
160
|
+
isDir)) return [3 /*break*/, 9];
|
|
155
161
|
treeEntry = {
|
|
156
162
|
name: name_1
|
|
157
163
|
};
|
|
@@ -160,12 +166,12 @@ var listFolder = function (srcPath, exclude, mainPath, tree) {
|
|
|
160
166
|
_c = (_b = paths.push).apply;
|
|
161
167
|
_d = [paths];
|
|
162
168
|
_e = [[]];
|
|
163
|
-
return [4 /*yield*/, (0, exports.listFolder)(filePath, exclude, baseSrc, treeEntry.children)];
|
|
169
|
+
return [4 /*yield*/, (0, exports.listFolder)(filePath, exclude, include, baseSrc, treeEntry.children)];
|
|
164
170
|
case 6:
|
|
165
171
|
_c.apply(_b, _d.concat([__spreadArray.apply(void 0, _e.concat([__read.apply(void 0, [(_g.sent()).paths]), false]))]));
|
|
166
172
|
return [3 /*break*/, 8];
|
|
167
173
|
case 7:
|
|
168
|
-
treeEntry = __assign(__assign({}, treeEntry), { path: "/"
|
|
174
|
+
treeEntry = __assign(__assign({}, treeEntry), { path: "/".concat(name_1), fullPath: path_1.default.join(srcPath, name_1), ext: ext });
|
|
169
175
|
_g.label = 8;
|
|
170
176
|
case 8:
|
|
171
177
|
tree.push(treeEntry);
|
package/dist/lib/parser.js
CHANGED
|
@@ -123,6 +123,7 @@ var parseFile = function (file, srcFolder, destFolder, configPath, partials) { r
|
|
|
123
123
|
fileName = 'index';
|
|
124
124
|
}
|
|
125
125
|
return [4 /*yield*/, jsdoc_to_markdown_1.default.render({
|
|
126
|
+
'no-cache': configPath ? true : false,
|
|
126
127
|
files: [(0, path_1.join)(process.cwd(), file.folder, fileName + file.ext)],
|
|
127
128
|
configure: configPath,
|
|
128
129
|
partial: __spreadArray([
|
|
@@ -133,7 +134,7 @@ var parseFile = function (file, srcFolder, destFolder, configPath, partials) { r
|
|
|
133
134
|
case 2:
|
|
134
135
|
content = _b.sent();
|
|
135
136
|
_a = comment_parser_1.parseVuepressFileHeader;
|
|
136
|
-
return [4 /*yield*/, promises_1.default.readFile(""
|
|
137
|
+
return [4 /*yield*/, promises_1.default.readFile("".concat((0, path_1.join)(folderInSrc, fileName + file.ext)), 'utf-8')];
|
|
137
138
|
case 3:
|
|
138
139
|
fileContent = _a.apply(void 0, [_b.sent(), file]);
|
|
139
140
|
if (content) {
|
|
@@ -195,7 +196,7 @@ var parseVueFile = function (file, srcFolder, destFolder) { return __awaiter(voi
|
|
|
195
196
|
case 2:
|
|
196
197
|
data = _b.sent();
|
|
197
198
|
_a = comment_parser_1.parseVuepressFileHeader;
|
|
198
|
-
return [4 /*yield*/, promises_1.default.readFile(""
|
|
199
|
+
return [4 /*yield*/, promises_1.default.readFile("".concat((0, path_1.join)(folderInSrc, fileName + file.ext)), 'utf-8')];
|
|
199
200
|
case 3:
|
|
200
201
|
fileContent = _a.apply(void 0, [_b.sent(), file]);
|
|
201
202
|
if (data.content) {
|
|
@@ -244,7 +245,7 @@ var writeContentToFile = function (parseData, dest) { return __awaiter(void 0, v
|
|
|
244
245
|
case 1:
|
|
245
246
|
_b.trys.push([1, 5, , 6]);
|
|
246
247
|
if (!(parseData === null || parseData === void 0 ? void 0 : parseData.content)) return [3 /*break*/, 4];
|
|
247
|
-
path = (0, path_1.join)(dest, parseData.file.name)
|
|
248
|
+
path = "".concat((0, path_1.join)(dest, parseData.file.name), ".md");
|
|
248
249
|
return [4 /*yield*/, (0, mkdirp_1.default)(dest)];
|
|
249
250
|
case 2:
|
|
250
251
|
_b.sent();
|
package/dist/lib/vue-sidebar.js
CHANGED
|
@@ -50,7 +50,7 @@ var generateVueSidebar = function (_a) {
|
|
|
50
50
|
}
|
|
51
51
|
else if (child.fullPath) {
|
|
52
52
|
if (fs_1.default.existsSync((0, path_1.join)(docsFolder, child.fullPath.replace(srcFolder, '')) + '.md')) {
|
|
53
|
-
newChildren.push(child.fullPath.replace(srcFolder
|
|
53
|
+
newChildren.push(child.fullPath.replace("".concat(srcFolder, "/"), ''));
|
|
54
54
|
}
|
|
55
55
|
}
|
|
56
56
|
}
|
|
@@ -70,7 +70,7 @@ var generateVueSidebar = function (_a) {
|
|
|
70
70
|
children: buildChildren(folder.children, folder.name, 0)
|
|
71
71
|
}); });
|
|
72
72
|
return _b = {},
|
|
73
|
-
_b["/"
|
|
73
|
+
_b["/".concat(codeFolder, "/")] = [
|
|
74
74
|
{
|
|
75
75
|
title: title,
|
|
76
76
|
collapsable: false,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "vuepress-jsdoc",
|
|
3
|
-
"version": "4.
|
|
3
|
+
"version": "4.3.0",
|
|
4
4
|
"description": "Generate jsdoc markdown files for vuepress",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"scripts": {
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
"prepublishOnly": "npm i && npm run build",
|
|
14
14
|
"prepare": "husky install",
|
|
15
15
|
"version": "conventional-changelog -p karma -i CHANGELOG.md -s -r 0 && git add .",
|
|
16
|
-
"docs": "./bin/vuepress-jsdoc.js --source=./dist --partials=./example/partials/*.hbs --readme ./README.md --exclude=\"**/*.d.ts,**/interfaces.*,**/constants.*\"",
|
|
16
|
+
"docs": "./bin/vuepress-jsdoc.js --source=./dist --partials=./example/partials/*.hbs --readme ./README.md --include=\"**/*.(ts|js)\" --exclude=\"**/*.d.ts,**/interfaces.*,**/constants.*\"",
|
|
17
17
|
"docs:dev": "npx concurrently --kill-others \"npm run dev\" \"npm run docs && npx vuepress dev documentation\"",
|
|
18
18
|
"docs:build": "npm run build && npm run docs && npx vuepress build documentation"
|
|
19
19
|
},
|
|
@@ -80,35 +80,35 @@
|
|
|
80
80
|
},
|
|
81
81
|
"dependencies": {
|
|
82
82
|
"chalk": "^4.1.2",
|
|
83
|
-
"chokidar": "^3.5.
|
|
84
|
-
"commander": "^
|
|
83
|
+
"chokidar": "^3.5.3",
|
|
84
|
+
"commander": "^9.0.0",
|
|
85
85
|
"del": "^6.0.0",
|
|
86
86
|
"front-matter": "^4.0.2",
|
|
87
|
-
"jsdoc-to-markdown": "^7.1.
|
|
87
|
+
"jsdoc-to-markdown": "^7.1.1",
|
|
88
88
|
"micromatch": "^4.0.4",
|
|
89
89
|
"mkdirp": "^1.0.4",
|
|
90
|
-
"vue-docgen-cli": "^4.
|
|
90
|
+
"vue-docgen-cli": "^4.44.15"
|
|
91
91
|
},
|
|
92
92
|
"devDependencies": {
|
|
93
|
-
"@types/jest": "^27.0
|
|
94
|
-
"@types/jsdoc-to-markdown": "^7.0.
|
|
93
|
+
"@types/jest": "^27.4.0",
|
|
94
|
+
"@types/jsdoc-to-markdown": "^7.0.3",
|
|
95
95
|
"@types/micromatch": "^4.0.2",
|
|
96
96
|
"@types/mkdirp": "^1.0.2",
|
|
97
|
-
"@typescript-eslint/eslint-plugin": "^5.
|
|
98
|
-
"@typescript-eslint/parser": "^5.
|
|
99
|
-
"babel-jest": "^27.
|
|
97
|
+
"@typescript-eslint/eslint-plugin": "^5.12.0",
|
|
98
|
+
"@typescript-eslint/parser": "^5.12.0",
|
|
99
|
+
"babel-jest": "^27.5.1",
|
|
100
100
|
"cross-env": "^7.0.3",
|
|
101
|
-
"eslint": "^8.
|
|
101
|
+
"eslint": "^8.9.0",
|
|
102
102
|
"eslint-config-prettier": "^8.3.0",
|
|
103
|
-
"eslint-plugin-import": "^2.25.
|
|
104
|
-
"eslint-plugin-jest": "^
|
|
103
|
+
"eslint-plugin-import": "^2.25.4",
|
|
104
|
+
"eslint-plugin-jest": "^26.1.1",
|
|
105
105
|
"eslint-plugin-prefer-arrow": "^1.2.3",
|
|
106
106
|
"husky": "^7.0.4",
|
|
107
|
-
"jest": "^27.
|
|
108
|
-
"lint-staged": "^12.
|
|
109
|
-
"memfs": "^3.
|
|
110
|
-
"ts-jest": "^27.
|
|
111
|
-
"typescript": "^4.
|
|
107
|
+
"jest": "^27.5.1",
|
|
108
|
+
"lint-staged": "^12.3.4",
|
|
109
|
+
"memfs": "^3.4.1",
|
|
110
|
+
"ts-jest": "^27.1.3",
|
|
111
|
+
"typescript": "^4.5.5"
|
|
112
112
|
},
|
|
113
113
|
"lint-staged": {
|
|
114
114
|
"src/**/*.{css,scss,json}": [
|