{"id":19572,"library":"eslint-config-riot","title":"eslint-config-riot","description":"Riot default ESLint configuration preset for version 5.0.2, updated to ESLint 9 flat config. Requires manual installation of peer dependencies: ESLint ^9.0.0, eslint-config-prettier ^10.0.0, eslint-plugin-jsdoc ^50.0.0, eslint-plugin-fp ^2.3.0, and Prettier ^3.0.0. Release cadence is stable, with breaking changes introduced in v5.0.0 when moving to flat config. Key differentiator: purpose-built for Riot.js ecosystem, enforces functional programming patterns via eslint-plugin-fp.","status":"active","version":"5.0.2","language":"javascript","source_language":"en","source_url":"https://github.com/riot/eslint-config","tags":["javascript","riot","eslint","config"],"install":[{"cmd":"npm install eslint-config-riot","lang":"bash","label":"npm"},{"cmd":"yarn add eslint-config-riot","lang":"bash","label":"yarn"},{"cmd":"pnpm add eslint-config-riot","lang":"bash","label":"pnpm"}],"dependencies":[{"reason":"peer dependency, runtime requirement","package":"eslint","optional":false},{"reason":"peer dependency needed for Prettier integration","package":"eslint-config-prettier","optional":false},{"reason":"peer dependency for JSDoc linting rules","package":"eslint-plugin-jsdoc","optional":false},{"reason":"peer dependency enforcing functional programming","package":"eslint-plugin-fp","optional":false},{"reason":"peer dependency for formatting rules","package":"prettier","optional":false}],"imports":[{"note":"Package is ESM-only since v5.0.0; CJS require will fail.","wrong":"const riotEslintConfig = require('eslint-config-riot')","symbol":"default","correct":"import riotEslintConfig from 'eslint-config-riot'"},{"note":"Standard ESLint 9 import; not part of this package.","wrong":"","symbol":"defineConfig","correct":"import { defineConfig } from 'eslint/config'"},{"note":"ESLint 9 flat config requires array of config objects; legacy .eslintrc style not supported.","wrong":"module.exports = { extends: 'eslint-config-riot' }","symbol":"flat config","correct":"import riotEslintConfig from 'eslint-config-riot'\nexport default defineConfig([{ extends: [riotEslintConfig] }])"}],"quickstart":{"code":"// Install dependencies first:\n// npm i -D eslint@9 eslint-config-riot eslint-plugin-fp@2 eslint-config-prettier@10 eslint-plugin-jsdoc@50 prettier@3\n\n// eslint.config.js\nimport { defineConfig } from 'eslint/config';\nimport riotEslintConfig from 'eslint-config-riot';\n\nexport default defineConfig([\n  { extends: [riotEslintConfig] },\n  // Add your overrides\n  {\n    rules: {\n      'no-console': 'warn'\n    }\n  }\n]);\n","lang":"javascript","description":"Sets up ESLint 9 flat config with the Riot preset. Requires manual peer dependency installation."},"warnings":[{"fix":"Migrate to eslint.config.js flat config format.","message":"v5.0.0 switched to ESLint 9 flat config; legacy .eslintrc files are not compatible.","severity":"breaking","affected_versions":">=5.0.0"},{"fix":"Upgrade ESLint to 9.x.","message":"v5.0.0 dropped support for ESLint 8 and earlier; must use ESLint ^9.0.0.","severity":"breaking","affected_versions":">=5.0.0"},{"fix":"Place eslint-config-prettier after riot config in extends array.","message":"The 'prettier' rule configuration may conflict with eslint-config-prettier; ensure prettier config is loaded last.","severity":"deprecated","affected_versions":">=4.1.0"},{"fix":"Ensure your code targets ES2025 or override ecmaVersion in your config.","message":"ecmaVersion was updated to 2025 in v5.0.2; code using older syntax may cause parser errors.","severity":"gotcha","affected_versions":">=5.0.2"},{"fix":"Replace eslint-plugin-fp with a maintained alternative.","message":"eslint-plugin-fp is no longer actively maintained; consider using eslint-plugin-functional or similar.","severity":"deprecated","affected_versions":">=5.0.0"}],"env_vars":null,"last_verified":"2026-04-25T00:00:00.000Z","next_check":"2026-07-24T00:00:00.000Z","problems":[{"fix":"Run `npm install --save-dev eslint-config-riot`.","cause":"Package not installed or missing from node_modules.","error":"Cannot find module 'eslint-config-riot'"},{"fix":"Use eslint.config.js with `import riotConfig from 'eslint-config-riot'; export default [rioteConfig];`.","cause":"Legacy .eslintrc using 'extends' string instead of flat array.","error":"Error: Failed to load config 'eslint-config-riot' to extend from."},{"fix":"Set `languageOptions: { ecmaVersion: 2024 }` in your config or update code.","cause":"ecmaVersion set to 2025 but code uses syntax not yet supported.","error":"Parsing error: The keyword 'using' is reserved"}],"ecosystem":"npm","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}