Skip to content

Bug: declare "language" key in json object plugin config #215

@MrZyr0

Description

@MrZyr0

Environment

ESLint version: 9.39.0
@eslint/json version: 0.13.2
Node version: v25.0.0
Yarn version: 4.10.3 (PnP)
Operating System: MacOs

Which language are you using?

json

What did you do?

Configuration (`eslint.config.ts`)
import js from "@eslint/js";
import globals from "globals";
import tseslint from "typescript-eslint";
import json from "@eslint/json";
import markdown from "@eslint/markdown";
import { defineConfig } from "eslint/config";

export default defineConfig([
  {
    ignores: [
      "dist/",
      "coverage/",
      "node_modules/",
      ".yarn/",
      ".git/",
    ],
  },
  {
    files: ["**/*.{js,mjs,cjs,ts,mts,cts}"],
    plugins: { js },
    extends: ["js/recommended"],
    languageOptions: {
      globals: globals.node,
      ecmaVersion: 2024,
      sourceType: "module",
    },
    rules: {
      semi: "error",
      "prefer-const": "error",
      "no-console": "warn",
      "no-debugger": "error",
		},
  },
  ...tseslint.configs.recommended,
	{
		files: ["**/*.json"],
		ignores: ["package-lock.json"],
		plugins: { json },
		language: "json/json",
		extends: ["json/recommended"],
	},
	{
		files: ["**/*.jsonc"],
		plugins: { json },
		language: "json/jsonc",
		extends: ["json/recommended"],
	},
	{
		files: ["**/*.json5"],
		plugins: { json },
		language: "json/json5",
		extends: ["json/recommended"],
	},
	{
		files: ["**/*.md"],
		plugins: { markdown },
		language: "markdown/gfm",
		extends: ["markdown/recommended"],
	},
]);

What did you expect to happen?

Just work because it's a vanilla config file generated using command yarn create @eslint/config

What actually happened?

An exception is thrown:

Oops! Something went wrong! :(

ESLint: 9.39.0

TypeError: Key "language": Could not find "json" in plugin "json".
    at new Config (/PROJECT_DIR/.yarn/__virtual__/eslint-virtual-4666e2a0f5/4/.yarn/berry/cache/eslint-npm-9.39.0-32a442bf78-10c0.zip/node_modules/eslint/lib/config/config.js:415:10)
    at [finalizeConfig] (/PROJECT_DIR/.yarn/__virtual__/eslint-virtual-4666e2a0f5/4/.yarn/berry/cache/eslint-npm-9.39.0-32a442bf78-10c0.zip/node_modules/eslint/lib/config/flat-config-array.js:212:10)
    at FlatConfigArray.getConfigWithStatus (~/.yarn/berry/cache/@eslint-config-array-npm-0.21.1-c33ed9ec91-10c0.zip/node_modules/@eslint/config-array/dist/cjs/index.cjs:1409:55)
    at FlatConfigArray.getConfig (~/.yarn/berry/cache/@eslint-config-array-npm-0.21.1-c33ed9ec91-10c0.zip/node_modules/@eslint/config-array/dist/cjs/index.cjs:1427:15)
    at entryFilter (/PROJECT_DIR/.yarn/__virtual__/eslint-virtual-4666e2a0f5/4/.yarn/berry/cache/eslint-npm-9.39.0-32a442bf78-10c0.zip/node_modules/eslint/lib/eslint/eslint-helpers.js:323:27)
    at async NodeHfs.<anonymous> (file://~/.yarn/berry/cache/@humanfs-core-npm-0.19.1-e2e7aaeb6e-10c0.zip/node_modules/@humanfs/core/src/hfs.js:574:24)
    at async NodeHfs.walk (file://~/.yarn/berry/cache/@humanfs-core-npm-0.19.1-e2e7aaeb6e-10c0.zip/node_modules/@humanfs/core/src/hfs.js:614:3)
    at async globSearch (/PROJECT_DIR/.yarn/__virtual__/eslint-virtual-4666e2a0f5/4/.yarn/berry/cache/eslint-npm-9.39.0-32a442bf78-10c0.zip/node_modules/eslint/lib/eslint/eslint-helpers.js:364:20)
    at async Promise.allSettled (index 0)
    at async globMultiSearch (/PROJECT_DIR/.yarn/__virtual__/eslint-virtual-4666e2a0f5/4/.yarn/berry/cache/eslint-npm-9.39.0-32a442bf78-10c0.zip/node_modules/eslint/lib/eslint/eslint-helpers.js:455:18)
    at async Promise.all (index 0)
    at async findFiles (/PROJECT_DIR/.yarn/__virtual__/eslint-virtual-4666e2a0f5/4/.yarn/berry/cache/eslint-npm-9.39.0-32a442bf78-10c0.zip/node_modules/eslint/lib/eslint/eslint-helpers.js:635:25)
    at async ESLint.lintFiles (/PROJECT_DIR/.yarn/__virtual__/eslint-virtual-4666e2a0f5/4/.yarn/berry/cache/eslint-npm-9.39.0-32a442bf78-10c0.zip/node_modules/eslint/lib/eslint/eslint.js:1014:21)
    at async Object.execute (/PROJECT_DIR/.yarn/__virtual__/eslint-virtual-4666e2a0f5/4/.yarn/berry/cache/eslint-npm-9.39.0-32a442bf78-10c0.zip/node_modules/eslint/lib/cli.js:428:14)
    at async main (/PROJECT_DIR/.yarn/__virtual__/eslint-virtual-4666e2a0f5/4/.yarn/berry/cache/eslint-npm-9.39.0-32a442bf78-10c0.zip/node_modules/eslint/bin/eslint.js:175:19)

Link to Minimal Reproducible Example

https://stackblitz.com/edit/nestjs-typescript-starter-hqsgwkiv

Participation

  • I am willing to submit a pull request for this issue.

Additional comments

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    Status

    Triaging

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions