This scripts extracts comments from JavaScript code. It's built on esprima.
Transform the following example.js:
'use strict';
/**
* Class description
* @class Test
* @constructor
*/
function Test() {
}
Test.prototype = {
/**
*
* @param {string} text
*/
log: function(text) {
console.log(text);
}
};
module.exports = Test;to Object:
[
{
start: 3,
end: 7,
jsDoc: true,
lines: [ 'Class description' ],
tags: [
{ name: 'class', value: 'Test' },
{ name: 'constructor', value: true }
]
},
{
start: 13,
end: 16,
jsDoc: true,
lines: [],
tags: [
{ name: 'param', value: '{string} text' }
]
}
]Install with npm:
npm install comments-parser
var fs = require('fs');
var parser = require('comments-parser');
var source = fs.readFileSync(__dirname + '/example.js', 'utf-8');
var comments = parser(source);
// Test parsed data
expect(comments[0].lines).to.equal([ 'Class description' ]);parser(options:Object):
| Name | Default | Description |
|---|---|---|
| addEsprimaInfo | false | Add esprima parser data to a comment |
| parseJsDocTags | true | If false jsdoc tags processed as text |
| hideJsDocTags | true | If parseJsDocTags is true remove tags from lines property |
| trim | true | Trim lines, values: true, false, 'right' |
Licensed under MIT.