Yadop (Yet Another Doc Parser) is a JSDoc parser that uses Espree and Doctrine to process your sources.
You can install Yadop using npm:
$ npm install yadop --save-dev
Require yadop inside of your JavaScript:
var yadop = require("yadop");
In order to process the jsdoc you can execute the following:
yadop.jsdoc.processor({
cwd: 'directory/containing/sources', // the source directory
pattern: '*/*.js' // the pattern
}).process();
In order to process the ngdoc you can execute the following:
var comments = yadop.ngdoc.processor({
cwd: 'directory/containing/sources', // the source directory
pattern: '*/*.js' // the pattern
}).process();
var results = yadop.ngdoc.mapper().map(comments);
Both the yadop.jsdoc.processor and the yadop.ngdoc.processor are called with a configuration object. This object contains the following attributes:
Type: string
Default: current working directory
Mandatory: false
The current working directory.
Type: string
Default: **/*.js
Mandatory: false
The file pattern.
Type: string
Default: []
Mandatory: false
The ignore patterns.
{
cwd: 'directory/containing/sources', // the source directory
pattern: '*/*.js' // the pattern
}
Type: Function
Param: Configuration
The configuration object as seen above.
Returns: doctrineComment[]
Processes jsdoc for each file in the specified cwd.
Type: Function
Param: Configuration
Returns: doctrineComment[]
Processes jsdoc for each file in the specified cwd but only containing the ngdoc tags.
Type: Function
Param: doctrineComment[]
Returns: yadopModule[]
Processes a doctrineComment[] and returns a yadopmodule[].
[{ "name": "my-module" }, {
"name": "another-module",
"entities": [{
"name": "my-component",
"type": "component",
"attributes": [{
"name": "items",
"optional": false,
"description": "Some attribute",
"type": "Object[]"
}, {
"name": "items[].name",
"optional": true,
"description": "The (optional) name of the item",
"type": "string"
}, {
"name": "items[].value",
"optional": false,
"description": "The value of the item",
"type": "number"
}]
}, {
"name": "SomeService",
"type": "service",
"methods": [{
"name": "SomeService#sayWhat",
"description": "Says what.",
"params": [{ "name": "who", "description": "Who said it", "type": "string" }, {
"name": "when",
"description": "When to say"
}]
}, {
"name": "SomeService#welcome",
"description": "Say welcome",
"returns": { "name": "message The message", "type": "object" }
}]
}, { "name": "AnotherService", "type": "service" }]
}]