mirror of
https://github.com/documentationjs/documentation.git
synced 2026-01-25 14:26:29 +00:00
43 lines
963 B
JavaScript
43 lines
963 B
JavaScript
'use strict';
|
|
|
|
var mdeps = require('module-deps'),
|
|
path = require('path'),
|
|
parse = require('./streams/parse'),
|
|
inferName = require('./streams/infer_name'),
|
|
inferMembership = require('./streams/infer_membership');
|
|
|
|
// Skip external modules. Based on http://git.io/pzPO.
|
|
var externalModuleRegexp = process.platform === 'win32' ?
|
|
/^(\.|\w:)/ :
|
|
/^[\/.]/;
|
|
|
|
/**
|
|
* Generate JavaScript documentation as a list of parsed JSDoc
|
|
* comments, given a root file as a path.
|
|
*
|
|
* @param {Array<String>|String} indexes files to process
|
|
* @return {Object} stream of output
|
|
*/
|
|
module.exports = function (indexes) {
|
|
var md = mdeps({
|
|
filter: function (id) {
|
|
return externalModuleRegexp.test(id);
|
|
}
|
|
});
|
|
|
|
if (typeof indexes === 'string') {
|
|
indexes = [indexes];
|
|
}
|
|
|
|
indexes.forEach(function (index) {
|
|
md.write(path.resolve(index));
|
|
});
|
|
|
|
md.end();
|
|
|
|
return md
|
|
.pipe(parse())
|
|
.pipe(inferName())
|
|
.pipe(inferMembership());
|
|
};
|