An ESLint plugin providing WebdriverIO-specific lint rules to catch common mistakes like missing await on expect calls, debug statements left in code, and floating promises. Version 9.27.0, part of the WebdriverIO v9 monorepo, follows ESLint v9 flat config spec. Ships TypeScript types. Key differentiator: integrates with @typescript-eslint to replace generic await-expect rule with no-floating-promise for type-aware checking. Requires ESLint ^9.39.2, globals ^16.5.0, and typescript-eslint ^8.54.0 as peer dependencies. Release cadence: active, multiple minor releases per month.
npm install eslint-plugin-wdioVerified import paths — ran on the pinned version, not inferred.
Shows how to configure eslint-plugin-wdio with ESLint v9 flat config, enabling recommended rules and customizing no-pause/no-debug.
Migrate to flat config: use eslint.config.mjs and import { configs } from 'eslint-plugin-wdio' to get the recommended config.Install typescript-eslint and use 'wdio/no-floating-promise' instead; the recommended config auto-switches if typescript-eslint is detected.
Set 'type': 'module' in package.json or use .mjs extension for config file and use import syntax.
Run 'npm install globals@^16.5.0 --save-dev'.
Install 'typescript' and '@typescript-eslint/eslint-plugin' as dev dependencies.
Run 'npm install eslint-plugin-wdio --save-dev'.
Use: import { configs } from 'eslint-plugin-wdio'; export default [ configs['flat/recommended'] ];Switch to flat config format: export default [ ... ] and use configs['flat/recommended'].