ESLint plugin providing lint rules for XState state machine definitions. Current stable version is 3.2.1 (Dec 2023). Actively maintained, regular releases. Key differentiators: supports both XState v4 and v5 via configuration; includes shareable recommended and all rule sets; catches common mistakes like infinite loops, invalid state/transition props, misplaced onDone, and more. Requires ESLint ^8.40.0.
npm install eslint-plugin-xstateVerified import paths — ran on the pinned version, not inferred.
ESLint config to enable xstate plugin, use recommended rules (XState v5), and customize event/state naming conventions.
Update ESLint to >=8.40.0: npm install eslint@^8.40.0 --save-dev
If using XState v4, change extends to 'plugin:xstate/recommended_v4' or set version in settings.
Review XState v5 migration; use 'recommended_v4' config or set version:4 in settings.
Set "settings": { "xstate": { "version": 4 } } or use 'recommended_v4' config.Disable spawn-usage if using XState v5, or use version-specific config.
Remove autoForward from XState v5 definitions.
npm install eslint-plugin-xstate --save-dev
npm install eslint-plugin-xstate@latest --save-dev
Add "plugins": ["xstate"] to your ESLint config.
Ensure eslint-plugin-xstate is in devDependencies and installed.