0.4.0 • Published 5 years ago

@slimio/jsdoc v0.4.0

Weekly downloads
10
License
MIT
Repository
github
Last release
5 years ago

jsdoc

Version Maintenance MIT dep size Known Vulnerabilities Build Status Greenkeeper badge

JSDoc Generator/Parser. (It use jsdoc-extractor and jsdoc-tokenizer under the hood).

Requirements

Getting Started

This package is available in the Node Package Repository and can be easily installed with npm or yarn.

$ npm i @slimio/jsdoc
# or
$ yarn add @slimio/jsdoc

Usage example

The method will search all JavaScript files at the given location to parse the inner JSDoc.

const { parseFile, groupData } = require("@slimio/jsdoc");

async function main() {
    const fileBlocks = [];
    for await (const block of parseFile("./yourFile.js")) {
        fileBlocks.push(block);
    }

    const finalResult = groupData(fileBlocks);
    console.log(JSON.stringify(finalResult, null, 4));
}
main().catch(console.error);

API

Parse a JSDoc block (in Buffer format). Return an Object described by the following interface:

interface Descriptor {
    value: any;
    name?: string;
    desc?: string;
    default?: any;
    required?: boolean;
}

interface Block {
    [key: string]: Descriptor | Descriptor[];
}

Take the following example:

const block = parseJSDoc(Buffer.from(`/**
@const name
@type {String}
**/`));
console.log(block.const.value); // name
console.log(block.type.value); // String

This method will read a given file, extract and parse all JSDoc blocks. The method return a Asynchronous iterator to be able to stop the parsing at any time.

const jsdoc = [];
const iterator = parseFile("./yourFile.js");
for await (const block of iterator) {
    jsdoc.push(block);
}

Link (group) blocks by namespace, modules or class (Else the block will be handled as an orphan). The method return an Object described by the following interface:

interface LinkedBlock {
    orphans: Block[];
    members: {
        [name: string]: Block[];
    }
}

Dependencies

NameRefactoringSecurity RiskUsage
jsdoc-extractor⚠️MajorLowExtract JSDoc annotations from Javascript Files
jsdoc-tokenizer⚠️MajorLowParse JSDoc annotations and return Tokens

License

MIT

0.4.0

5 years ago

0.3.0

5 years ago

0.2.0

5 years ago

0.1.2

5 years ago

0.1.0

5 years ago