{"id":25533,"library":"eslint-plugin-twitch-core-ui","title":"eslint-plugin-twitch-core-ui","description":"An ESLint plugin providing custom lint rules for Twitch's Core UI library, version 24.0.1. It includes auto-fixable rules to enforce best practices and migrations within the Core UI component ecosystem. Key rules cover deprecation of legacy Button props, ref handler patterns, and styled layout components. The plugin ships with a recommended config for easy setup. Release cadence is tied to Core UI updates.","status":"active","version":"24.0.1","language":"javascript","source_language":"en","source_url":null,"tags":["javascript"],"install":[{"cmd":"npm install eslint-plugin-twitch-core-ui","lang":"bash","label":"npm"},{"cmd":"yarn add eslint-plugin-twitch-core-ui","lang":"bash","label":"yarn"},{"cmd":"pnpm add eslint-plugin-twitch-core-ui","lang":"bash","label":"pnpm"}],"dependencies":[],"imports":[{"note":"ESM default import works with ESLint's plugin resolution.","wrong":"const plugin = require('eslint-plugin-twitch-core-ui')","symbol":"plugin","correct":"import plugin from 'eslint-plugin-twitch-core-ui'"},{"note":"Named import for rules object, but typically you use the plugin directly.","wrong":"const { rules } = require('eslint-plugin-twitch-core-ui')","symbol":"rules","correct":"import { rules } from 'eslint-plugin-twitch-core-ui'"},{"note":"Access pre-built configs like 'recommended' via configs.recommended.","wrong":"const { configs } = require('eslint-plugin-twitch-core-ui')","symbol":"configs","correct":"import { configs } from 'eslint-plugin-twitch-core-ui'"}],"quickstart":{"code":"// .eslintrc.js\nmodule.exports = {\n  extends: [\n    'plugin:twitch-core-ui/recommended',\n  ],\n  rules: {\n    // Override or add rules manually\n    'twitch-core-ui/no-styled-layout': 'error',\n  },\n};\n","lang":"javascript","description":"Shows how to enable the plugin using the recommended config or manually in an ESLint config file."},"warnings":[{"fix":"Add eslint-disable comments for specific lines or migrate the component to use ref prop.","message":"Rule no-deprecated-ref-handler-props may cause false positives for components not yet migrated.","severity":"breaking","affected_versions":">=1.0.0"},{"fix":"Replace with Layout and InjectLayout respectively, autofix available.","message":"StyledLayout and InjectStyledLayout are deprecated in Core UI; the lint rule enforces migration.","severity":"deprecated","affected_versions":">=1.0.0"},{"fix":"Instead of using recommended config, manually enable desired rules.","message":"The recommended config may enable rules not yet relevant to your project; review before extending.","severity":"gotcha","affected_versions":">=1.0.0"}],"env_vars":null,"last_verified":"2026-05-01T00:00:00.000Z","next_check":"2026-07-30T00:00:00.000Z","problems":[{"fix":"Run npm install --save-dev eslint-plugin-twitch-core-ui","cause":"Plugin not installed as a dev dependency.","error":"ESLint: Failed to load plugin 'twitch-core-ui' declared in '.eslintrc'"},{"fix":"Check package name in plugins array, e.g., plugins: ['twitch-core-ui']","cause":"The rule name is misspelled or not loaded due to incorrect plugin reference.","error":"Definition for rule 'twitch-core-ui/no-deprecated-button-props' was not found"}],"ecosystem":"npm","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}