Skip to content

devolksbank/yadop

Repository files navigation

yadop

Yadop (Yet Another Doc Parser) is a JSDoc parser that uses Espree and Doctrine to process your sources.

Installation

You can install Yadop using npm:

$ npm install yadop --save-dev

Usage

Require yadop inside of your JavaScript:

var yadop = require("yadop");

JSDoc

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();

NGDoc

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);

Configuration

Both the yadop.jsdoc.processor and the yadop.ngdoc.processor are called with a configuration object. This object contains the following attributes:

cwd

Type: string Default: current working directory Mandatory: false

The current working directory.

pattern

Type: string Default: **/*.js Mandatory: false

The file pattern.

ignore

Type: string Default: [] Mandatory: false

The ignore patterns.

Example

{
    cwd: 'directory/containing/sources', // the source directory
    pattern: '*/*.js' // the pattern
}

Available functions

yadop.jsdoc.processor

Type: Function Param: Configuration The configuration object as seen above. Returns: doctrineComment[]

Processes jsdoc for each file in the specified cwd.

yadop.ngdoc.processor

Type: Function Param: Configuration Returns: doctrineComment[]

Processes jsdoc for each file in the specified cwd but only containing the ngdoc tags.

yadop.ngdoc.mapper

Type: Function Param: doctrineComment[] Returns: yadopModule[]

Processes a doctrineComment[] and returns a yadopmodule[].

Example

[{ "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" }]
}]