or run

npx @tessl/cli init
Log in

Version

Tile

Overview

Evals

Files

docs

configurations.mdindex.mdprocessor.mdrules.md
tile.json

configurations.mddocs/

Configurations

ESLint Plugin JSDoc provides multiple predefined configurations for different JSDoc validation scenarios, supporting both legacy eslintrc and modern flat config formats, with specialized variants for TypeScript projects.

Capabilities

Legacy Configurations (eslintrc format)

Predefined configurations for traditional ESLint configuration files (.eslintrc.js, .eslintrc.json).

interface LegacyConfigurations {
  // Default recommended rules as warnings
  "recommended": ESLintConfig;
  
  // Recommended rules as errors
  "recommended-error": ESLintConfig;
  
  // TypeScript-specific recommended rules as warnings
  "recommended-typescript": ESLintConfig;
  
  // TypeScript-specific recommended rules as errors
  "recommended-typescript-error": ESLintConfig;
  
  // TypeScript-flavor recommended rules as warnings
  "recommended-typescript-flavor": ESLintConfig;
  
  // TypeScript-flavor recommended rules as errors
  "recommended-typescript-flavor-error": ESLintConfig;
}

Usage Examples:

// .eslintrc.js
module.exports = {
  extends: ["plugin:jsdoc/recommended"],
  plugins: ["jsdoc"]
};

// For TypeScript projects
module.exports = {
  extends: ["plugin:jsdoc/recommended-typescript"],
  plugins: ["jsdoc"]
};

Flat Config Configurations

Modern ESLint flat config format configurations with explicit plugin declarations.

interface FlatConfigurations {
  // Flat config recommended rules as warnings
  "flat/recommended": ESLintConfig;
  
  // Flat config recommended rules as errors
  "flat/recommended-error": ESLintConfig;
  
  // Flat config TypeScript recommended as warnings
  "flat/recommended-typescript": ESLintConfig;
  
  // Flat config TypeScript recommended as errors
  "flat/recommended-typescript-error": ESLintConfig;
  
  // Flat config TypeScript-flavor as warnings
  "flat/recommended-typescript-flavor": ESLintConfig;
  
  // Flat config TypeScript-flavor as errors
  "flat/recommended-typescript-flavor-error": ESLintConfig;
}

Usage Examples:

import jsdocPlugin from "eslint-plugin-jsdoc";

export default [
  jsdocPlugin.configs["flat/recommended"],
  // Additional custom rules
  {
    rules: {
      "jsdoc/require-example": "error"
    }
  }
];

// TypeScript project
export default [
  jsdocPlugin.configs["flat/recommended-typescript"]
];

Specialized Flat Configurations

Focused configurations for specific aspects of JSDoc validation.

interface SpecializedConfigurations {
  // Content-focused rules for TypeScript (warnings)
  "flat/contents-typescript": ESLintConfig;
  
  // Content-focused rules for TypeScript (errors)
  "flat/contents-typescript-error": ESLintConfig;
  
  // Content-focused TypeScript-flavor rules (warnings)
  "flat/contents-typescript-flavor": ESLintConfig;
  
  // Content-focused TypeScript-flavor rules (errors)
  "flat/contents-typescript-flavor-error": ESLintConfig;
  
  // Logic-focused TypeScript rules (warnings)
  "flat/logical-typescript": ESLintConfig;
  
  // Logic-focused TypeScript rules (errors)
  "flat/logical-typescript-error": ESLintConfig;
  
  // Logic-focused TypeScript-flavor rules (warnings)
  "flat/logical-typescript-flavor": ESLintConfig;
  
  // Logic-focused TypeScript-flavor rules (errors)
  "flat/logical-typescript-flavor-error": ESLintConfig;
  
  // Requirements-focused TypeScript rules (warnings)
  "flat/requirements-typescript": ESLintConfig;
  
  // Requirements-focused TypeScript rules (errors)
  "flat/requirements-typescript-error": ESLintConfig;
  
  // Requirements-focused TypeScript-flavor rules (warnings)
  "flat/requirements-typescript-flavor": ESLintConfig;
  
  // Requirements-focused TypeScript-flavor rules (errors)
  "flat/requirements-typescript-flavor-error": ESLintConfig;
  
  // Style-focused TypeScript rules (warnings)
  "flat/stylistic-typescript": ESLintConfig;
  
  // Style-focused TypeScript rules (errors)
  "flat/stylistic-typescript-error": ESLintConfig;
  
  // Style-focused TypeScript-flavor rules (warnings)
  "flat/stylistic-typescript-flavor": ESLintConfig;
  
  // Style-focused TypeScript-flavor rules (errors)
  "flat/stylistic-typescript-flavor-error": ESLintConfig;
}

Usage Examples:

import jsdocPlugin from "eslint-plugin-jsdoc";

// Focus on content validation only
export default [
  jsdocPlugin.configs["flat/contents-typescript"]
];

// Combine multiple focused configurations
export default [
  jsdocPlugin.configs["flat/logical-typescript"],
  jsdocPlugin.configs["flat/stylistic-typescript"]
];

Processor Configurations

Special configurations for processing JSDoc examples and default expressions.

interface ProcessorConfigurations {
  // Configuration for processing JSDoc examples
  "examples": ESLintConfig[];
  
  // Configuration for processing default expressions
  "default-expressions": ESLintConfig[];
  
  // Combined processor configuration
  "examples-and-default-expressions": ESLintConfig[];
}

Usage Examples:

import jsdocPlugin from "eslint-plugin-jsdoc";

// Enable JSDoc example processing
export default [
  ...jsdocPlugin.configs.examples,
  {
    rules: {
      "no-console": "off" // Allow console in examples
    }
  }
];

Configuration Categories

Content Rules

Rules focused on JSDoc content quality and informativeness:

  • jsdoc/informative-docs
  • jsdoc/match-description
  • jsdoc/no-blank-block-descriptions
  • jsdoc/no-blank-blocks
  • jsdoc/text-escaping

Logical Rules

Rules focused on logical consistency and correctness:

  • jsdoc/check-access
  • jsdoc/check-param-names
  • jsdoc/check-property-names
  • jsdoc/check-syntax
  • jsdoc/check-tag-names
  • jsdoc/check-template-names
  • jsdoc/check-types
  • jsdoc/check-values
  • jsdoc/empty-tags
  • jsdoc/implements-on-classes
  • jsdoc/require-returns-check
  • jsdoc/require-yields-check
  • jsdoc/no-bad-blocks
  • jsdoc/no-defaults
  • jsdoc/no-types
  • jsdoc/no-undefined-types
  • jsdoc/valid-types

Requirements Rules

Rules focused on requiring specific JSDoc elements:

  • jsdoc/require-example
  • jsdoc/require-jsdoc
  • jsdoc/require-param
  • jsdoc/require-param-description
  • jsdoc/require-param-name
  • jsdoc/require-property
  • jsdoc/require-property-description
  • jsdoc/require-property-name
  • jsdoc/require-returns
  • jsdoc/require-returns-description
  • jsdoc/require-yields

Stylistic Rules

Rules focused on formatting and visual consistency:

  • jsdoc/check-alignment
  • jsdoc/check-line-alignment
  • jsdoc/lines-before-block
  • jsdoc/multiline-blocks
  • jsdoc/no-multi-asterisks
  • jsdoc/require-asterisk-prefix
  • jsdoc/require-hyphen-before-param-description
  • jsdoc/tag-lines

TypeScript Integration

TypeScript vs TypeScript-Flavor

TypeScript configurations disable type-related rules since TypeScript provides type information:

  • Disables jsdoc/require-param-type
  • Disables jsdoc/require-property-type
  • Disables jsdoc/require-returns-type
  • Enables jsdoc/no-types

TypeScript-flavor configurations keep most rules but disable type validation:

  • Disables jsdoc/no-undefined-types only
  • Keeps type requirement rules for documentation purposes

Usage Examples:

// Pure TypeScript project - types come from TS
function add(a: number, b: number): number {
  /**
   * Adds two numbers together
   * @param a - First number
   * @param b - Second number  
   * @returns Sum of the numbers
   */
  return a + b;
}

// TypeScript-flavor - document types for readability
function add(a: number, b: number): number {
  /**
   * Adds two numbers together
   * @param {number} a - First number
   * @param {number} b - Second number
   * @returns {number} Sum of the numbers
   */
  return a + b;
}

Types

interface ESLintConfig {
  name?: string;
  plugins?: string[] | { [pluginName: string]: ESLintPlugin };
  rules: {
    [ruleName: string]: ESLintRuleConfig;
  };
  files?: string[];
  processor?: string;
}

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

interface ESLintPlugin {
  meta: {
    name: string;
    version: string;
  };
  rules: { [ruleName: string]: ESLintRule };
  configs: { [configName: string]: ESLintConfig | ESLintConfig[] };
}