Socket
Socket
Sign inDemoInstall

eslint-plugin-jsdoc

Package Overview
Dependencies
326
Maintainers
1
Versions
628
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    eslint-plugin-jsdoc

JSDoc specific linting rules for ESLint.


Version published
Maintainers
1
Install size
32.5 MB
Created

Package description

What is eslint-plugin-jsdoc?

The eslint-plugin-jsdoc package is a plugin for ESLint that provides linting rules for JSDoc comments. JSDoc is a markup language used to annotate JavaScript source code files. Using eslint-plugin-jsdoc, developers can ensure that their JSDoc comments are consistent and follow best practices.

What are eslint-plugin-jsdoc's main functionalities?

Check alignment

Ensures that JSDoc blocks are aligned properly.

/* eslint jsdoc/check-alignment: "error" */
/**
 * Function description.
 *
 * @param {string} name - The name of the person.
 * @return {string} - The greeting message.
 */
function greet(name) {
  return `Hello, ${name}!`;
}

Check indentation

Ensures that JSDoc blocks have consistent indentation.

/* eslint jsdoc/check-indentation: "error" */
/**
 * Function description.
 *
 * @param {string} name - The name of the person.
 * @return {string} - The greeting message.
 */
function greet(name) {
  return `Hello, ${name}!`;
}

Check types

Validates JSDoc comments for type correctness.

/* eslint jsdoc/check-types: "error" */
/**
 * Function description.
 *
 * @param {String} name - The name of the person.
 * @return {String} - The greeting message.
 */
function greet(name) {
  return `Hello, ${name}!`;
}

Require JSDoc

Requires JSDoc comments for certain nodes in the code.

/* eslint jsdoc/require-jsdoc: "error" */
/**
 * Function description.
 */
function greet(name) {
  return `Hello, ${name}!`;
}

Other packages similar to eslint-plugin-jsdoc

Readme

Source

eslint-plugin-jsdoc

Travis build status NPM version

JSDoc specific linting rules for ESLint.

Attribution

Unusual, but I want to start the documentation with attribution to JSCS: JavaScript Code Style checker. This ESLint plugin is a wrapper around JSCS and the jscs-jsdoc plugin.

The reason for writing this plugin is to have all the linting rules in a consistent, plugin driven setup, that ESLint provides.

Thank you @zxqfox and others.

Installation

Install ESLint either locally or globally.

$ npm install eslint

If you have installed ESLint globally, you have to install JSDoc plugin globally too. Otherwise, install it locally.

$ npm install eslint-plugin-jsdoc

Configuration

Add plugins section and specify eslint-plugin-jsdoc as a plugin.

{
    "plugins": [
        "jsdoc"
    ]
}

Finally, enable all of the rules that you would like to use.

{
    "rules": {
        "jsdoc/check-param-names": 1,
        "jsdoc/check-redundant-params": 1,
        "jsdoc/check-redundant-returns": 1,
        "jsdoc/require-return-types": 1,
        "jsdoc/newline-after-description": 1,
        "jsdoc/require-description-complete-sentence": 1,
        "jsdoc/require-param-description": 1,
        "jsdoc/require-param-types": 1,
        "jsdoc/require-return-types": 1
    }
}

Rules

check-param-names

Ensures param names in JSDoc and in function declaration are equal.

The following patterns are considered problems:

/**
 * @param foo
 * @param bar
 */
function quux (bar, foo) {

}

/**
 * @param foo
 */
function quux (bar) {

}

The following patterns are not considered problems:

/**
 * @param foo
 * @param bar
 */
function quux (foo, bar) {

}

/**
 * @param foo
 */
function quux (foo) {

}

check-redundant-params

Reports redundant params in JSDoc.

The following patterns are considered problems:

/**
 * @param {String} foo
 */
function quux () {

}

The following patterns are not considered problems:

/**
 * @param {String} foo
 */
function quux (foo) {

}

check-redundant-returns

Report statements for functions with no return.

The following patterns are considered problems:

/**
 * @returns {String}
 */
function quux () {

}

The following patterns are not considered problems:

/**
 * @returns {String}
 */
function quux () {
    return 'corge';
}

require-return-types

Ensures returns in JSDoc contains type.

The following patterns are considered problems:

/**
 * @returns
 */
function quux () {

}

The following patterns are not considered problems:

/**
 * @returns {String}
 */
function quux () {

}

/**
 * no @return
 */
function quux () {

}

newline-after-description

Enforces consistent padding of doc comment description.

This rule takes one argument. If it is "always" then a problem is raised when there is a newline after description. If it is "never" then a problem is raised when there is no newline after the description. The default value is "always".

The following patterns are considered problems when configured "never":

/**
 * Description
 *
 * @param {String} foo
 */
function quux (foo) {

}

The following patterns are not considered problems when configured "never":

/**
 * @param {String} foo
 */
function quux (foo) {

}

/**
 * Description
 */
function quux () {

}

/**
 * Description
 * @param {String} foo
 */
function quux (foo) {

}

The following patterns are considered problems when configured "always":

/**
 * Description
 * @param {String} foo
 */
function quux (foo) {

}

The following patterns are not considered problems when configured "always":

/**
 * @param {String} foo
 */
function quux (foo) {

}

/**
 * Description
 */
function quux () {

}

/**
 * Description
 *
 * @param {String} foo
 */
function quux (foo) {

}

require-description-complete-sentence

Ensures a doc comment description is a complete sentence.

A complete sentence is defined as starting with an upper case letter and ending with a period.

The following patterns are considered problems:

/**
 * Description
 * On multiple lines.
 *
 * @param {String} foo
 */
function quux (foo) {

}

/**
 * Description
 * @param {String} foo
 */
function quux (foo) {

}

/**
 * description starting with a lower case letter.
 * @param {String} foo
 */
function quux (foo) {

}

/**
 * Description period is offset .
 * @param {String} foo
 */
function quux (foo) {

}

/**
 * Description!
 * @param {String} foo
 */
function quux (foo) {

}

The following patterns are not considered problems:

/**
 * @param {String} foo
 */
function quux (foo) {

}

/**
 * Description.
 */
function quux () {

}

/**
 * (Description).
 */
function quux () {

}

/**
 * Description.
 *
 * @param {String} foo
 */
function quux (foo) {

}

require-param-description

Ensures a param description exists.

The following patterns are considered problems:

/**
 * @param {String} foo
 */
function quux (foo) {}

/**
 * @param foo
 */
function quux (foo) {

}

The following patterns are not considered problems:

/**
 * @param {String} foo Foo.
 */
function quux (foo) {

}

/**
 * @param foo Foo.
 */
function quux (foo) {

}

require-param-types

The following patterns are considered problems:

/**
 * @param foo
 */
function quux () {

}

The following patterns are not considered problems:

/**
 * @param {String} foo
 */
function quux () {

}

check-return-types

Reports discrepancies between the claimed in JSDoc and actual type if both exist (code scan).

The following patterns are considered problems:

/**
 * @returns {String}
 */
function quux () {
    return true;
}

The following patterns are not considered problems:

/**
 * @returns {String}
 */
function quux () {
    return 'corge';
}

Keywords

FAQs

Last updated on 19 Sep 2015

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Packages

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc