CtrlK
BlogDocsLog inGet started
Tessl Logo

tessl/npm-eslint-plugin-jsdoc

JSDoc linting rules for ESLint with comprehensive validation and configuration options.

Pending
Quality

Pending

Does it follow best practices?

Impact

Pending

No eval scenarios have been run

SecuritybySnyk

Pending

The risk profile of this skill

Overview
Eval results
Files

rules.mddocs/

Linting Rules

ESLint Plugin JSDoc provides 57 comprehensive linting rules for validating all aspects of JSDoc comments, from syntax and formatting to semantic correctness and completeness.

Capabilities

Access & Visibility Rules

Rules for validating access modifiers and implementation relationships.

// Check access tags are valid
"jsdoc/check-access": ESLintRuleConfig;

// Ensure @implements is used on classes only
"jsdoc/implements-on-classes": ESLintRuleConfig;

Alignment & Formatting Rules

Rules for enforcing consistent JSDoc comment formatting and alignment.

// Validate JSDoc comment alignment
"jsdoc/check-alignment": ESLintRuleConfig;

// Check line alignment in JSDoc blocks
"jsdoc/check-line-alignment": ESLintRuleConfig;

// Enforce multiline JSDoc format
"jsdoc/multiline-blocks": ESLintRuleConfig;

// Prevent multiple asterisks in JSDoc
"jsdoc/no-multi-asterisks": ESLintRuleConfig;

// Require asterisk prefix on JSDoc lines
"jsdoc/require-asterisk-prefix": ESLintRuleConfig;

// Control empty lines around JSDoc tags
"jsdoc/tag-lines": ESLintRuleConfig;

// Control lines before JSDoc blocks
"jsdoc/lines-before-block": ESLintRuleConfig;

// Validate JSDoc indentation
"jsdoc/check-indentation": ESLintRuleConfig;

Content & Description Rules

Rules for validating JSDoc content quality and completeness.

// Validate JSDoc @example code syntax
"jsdoc/check-examples": ESLintRuleConfig;

// Validate JSDoc syntax
"jsdoc/check-syntax": ESLintRuleConfig;

// Validate tag values
"jsdoc/check-values": ESLintRuleConfig;

// Convert comments to JSDoc format
"jsdoc/convert-to-jsdoc-comments": ESLintRuleConfig;

// Validate empty JSDoc tags
"jsdoc/empty-tags": ESLintRuleConfig;

// Ensure informative documentation
"jsdoc/informative-docs": ESLintRuleConfig;

// Validate description patterns
"jsdoc/match-description": ESLintRuleConfig;

// Validate name patterns
"jsdoc/match-name": ESLintRuleConfig;

// Prevent malformed JSDoc blocks
"jsdoc/no-bad-blocks": ESLintRuleConfig;

// Prevent blank descriptions
"jsdoc/no-blank-block-descriptions": ESLintRuleConfig;

// Prevent completely blank JSDoc blocks
"jsdoc/no-blank-blocks": ESLintRuleConfig;

// Require descriptions
"jsdoc/require-description": ESLintRuleConfig;

// Enforce complete sentences in descriptions
"jsdoc/require-description-complete-sentence": ESLintRuleConfig;

// Require file-level JSDoc
"jsdoc/require-file-overview": ESLintRuleConfig;

// Handle text escaping in JSDoc
"jsdoc/text-escaping": ESLintRuleConfig;

Import & Dependency Rules

Rules for validating import relationships and syntax dependencies.

// Validate import dependencies
"jsdoc/imports-as-dependencies": ESLintRuleConfig;

// Check for missing syntax
"jsdoc/no-missing-syntax": ESLintRuleConfig;

// Restrict specific syntax patterns
"jsdoc/no-restricted-syntax": ESLintRuleConfig;

Parameter & Property Rules

Rules for validating function parameters and object properties in JSDoc.

// Validate parameter names in JSDoc
"jsdoc/check-param-names": ESLintRuleConfig;

// Validate property names
"jsdoc/check-property-names": ESLintRuleConfig;

// Require @param tags
"jsdoc/require-param": ESLintRuleConfig;

// Require parameter descriptions
"jsdoc/require-param-description": ESLintRuleConfig;

// Require parameter names
"jsdoc/require-param-name": ESLintRuleConfig;

// Require parameter types
"jsdoc/require-param-type": ESLintRuleConfig;

// Require @property tags
"jsdoc/require-property": ESLintRuleConfig;

// Require property descriptions
"jsdoc/require-property-description": ESLintRuleConfig;

// Require property names
"jsdoc/require-property-name": ESLintRuleConfig;

// Require property types
"jsdoc/require-property-type": ESLintRuleConfig;

// Control hyphens in param descriptions
"jsdoc/require-hyphen-before-param-description": ESLintRuleConfig;

Return Value Rules

Rules for validating function return documentation.

// Require @returns tags
"jsdoc/require-returns": ESLintRuleConfig;

// Validate return statements match @returns
"jsdoc/require-returns-check": ESLintRuleConfig;

// Require return descriptions
"jsdoc/require-returns-description": ESLintRuleConfig;

// Require return types
"jsdoc/require-returns-type": ESLintRuleConfig;

Tag Management Rules

Rules for managing and validating JSDoc tags.

// Validate JSDoc tag names
"jsdoc/check-tag-names": ESLintRuleConfig;

// Validate template names
"jsdoc/check-template-names": ESLintRuleConfig;

// Require @template tags
"jsdoc/require-template": ESLintRuleConfig;

// Sort JSDoc tags
"jsdoc/sort-tags": ESLintRuleConfig;

Type System Rules

Rules for validating JSDoc type annotations and type system integration.

// Validate JSDoc types
"jsdoc/check-types": ESLintRuleConfig;

// Prevent default values in certain contexts
"jsdoc/no-defaults": ESLintRuleConfig;

// Prevent type annotations (for TypeScript)
"jsdoc/no-types": ESLintRuleConfig;

// Prevent undefined types
"jsdoc/no-undefined-types": ESLintRuleConfig;

// Validate type syntax
"jsdoc/valid-types": ESLintRuleConfig;

Yield & Generator Rules

Rules for documenting generator functions and yield statements.

// Require @yields for generators
"jsdoc/require-yields": ESLintRuleConfig;

// Validate yield statements match @yields
"jsdoc/require-yields-check": ESLintRuleConfig;

Miscellaneous Rules

Additional rules for comprehensive JSDoc validation.

// Require @example tags
"jsdoc/require-example": ESLintRuleConfig;

// Require JSDoc comments
"jsdoc/require-jsdoc": ESLintRuleConfig;

// Require @throws tags
"jsdoc/require-throws": ESLintRuleConfig;

Rule Configuration

All rules support standard ESLint configuration patterns:

Usage Examples:

// Basic configuration
{
  "rules": {
    "jsdoc/require-jsdoc": "error",
    "jsdoc/require-param": "warn",
    "jsdoc/check-alignment": "off"
  }
}

// Configuration with options
{
  "rules": {
    "jsdoc/require-jsdoc": ["error", {
      "require": {
        "FunctionDeclaration": true,
        "MethodDefinition": true,
        "ClassDeclaration": true
      }
    }],
    "jsdoc/check-tag-names": ["error", {
      "typed": true
    }]
  }
}

Types

type ESLintRuleConfig = "off" | "warn" | "error" | 
  ["off" | "warn" | "error", RuleOptions];

interface RuleOptions {
  [optionName: string]: any;
}

interface ESLintRule {
  meta: {
    type: "problem" | "suggestion" | "layout";
    docs: {
      description: string;
      category: string;
      recommended: boolean;
      url?: string;
    };
    fixable?: "code" | "whitespace";
    schema: JSONSchema7 | JSONSchema7[];
    messages?: { [messageId: string]: string };
  };
  create(context: ESLintRuleContext): ESLintVisitors;
}

docs

configurations.md

index.md

processor.md

rules.md

tile.json