build: migrate JSDoc linting off removed core rules (gh54 part III) by Planeshifter · Pull Request #10965 · stdlib-js/stdlib

@Planeshifter changed the title bench: migrate JSDoc linting off removed core rules build: migrate JSDoc linting off removed core rules

Mar 15, 2026

@Planeshifter Planeshifter changed the title build: migrate JSDoc linting off removed core rules build: migrate JSDoc linting off removed core rules (gh54 part III)

Mar 15, 2026
Replace deprecated ESLint core rules `require-jsdoc` and `valid-jsdoc`
(removed in ESLint v9) with `eslint-plugin-jsdoc` equivalents:

- `require-jsdoc` → `jsdoc/require-jsdoc` (same option schema)
- `valid-jsdoc` → individual `jsdoc/*` rules:
  - `jsdoc/require-description` (replaces `matchDescription`)
  - `jsdoc/require-param-description` (replaces `requireParamDescription`)
  - `jsdoc/require-returns-type` (replaces `requireReturnType`)
  - `jsdoc/require-returns-description` (replaces `requireReturnDescription`)
  - `jsdoc/check-tag-names` (validates tag names)
- Register `jsdoc` plugin in `etc/eslint/plugins/index.js`
- Update override files that disable `require-jsdoc` for tests,
  benchmarks, examples, and markdown

Ref: stdlib-js/metr-issue-tracker#54
Audit and update `etc/eslint/rules/typescript.js` to prepare for
the typescript-eslint v7+ upgrade:

- Replace `@typescript-eslint/no-var-requires` (deprecated, removed
  in v7) with `@typescript-eslint/no-require-imports` (same behavior,
  already defined but was `off`)
- Formatting/layout rules (`indent`, `quotes`, `semi`,
  `member-delimiter-style`, `space-before-function-paren`,
  `type-annotation-spacing`) are deprecated in v6 in favor of
  `@stylistic/ts/*` but kept for now since they still work on v6;
  will be addressed during the toolchain version bump (PR 6)
- `ban-types` and `no-empty-interface` are not yet deprecated on v6
  but will need replacement in v7+ (`no-restricted-types` and
  `no-empty-object-type` respectively)

Ref: stdlib-js/metr-issue-tracker#54