eslint-plugin-etc-misc

raw JSON →
1.1.1 verified Sat May 09 auth: no javascript

An ESLint plugin that combines and extends the rules from eslint-plugin-etc and eslint-plugin-misc, providing a unified set of linting rules for TypeScript projects. Current stable version is v1.1.1, released in May 2026. The package is actively maintained with frequent releases (10+ versions in two months). Key differentiators: merges two popular rule sets into one plugin, includes TypeScript types, leverages ESLint flat config (v9+), and requires TypeScript 5+. Release cadence is weekly or more frequent. Alternative to installing separate plugins.

error Error: Failed to load plugin 'etc-misc' declared in '...': Cannot find module 'eslint-plugin-etc-misc'
cause Plugin not installed or name mismatch (e.g., using 'eslint-plugin-etc-misc' vs 'etc-misc')
fix
npm install eslint-plugin-etc-misc --save-dev and ensure correct name in config
error Configuration for rule 'etc-misc/no-unused-vars' is invalid: Value "error" is not accepted. Expected one of: "off", "warn", "error"
cause Rule severity must be lowercase string
fix
Use '"error"' (lowercase) instead of '"Error"' or '"ERROR"'
error TypeError: plugin.configs is not iterable
cause Flat config expects array, but default export is an object
fix
Use plugin.configs.recommended instead of spreading plugin directly
breaking Requires ESLint v9+ with flat config; incompatible with legacy eslintrc
fix Upgrade to ESLint v9 and migrate to flat config
breaking Minimum Node.js version 20.19.0 required since v1.1.0
fix Update Node.js to v20.19.0 or later
gotcha Default export is the plugin object with all rules, not a config array
fix Use named import { configs } for recommended config, or spread the default export
deprecated Rule 'no-unused-vars' replaced by TypeScript-native version in v1.0.5
fix Use '@typescript-eslint/no-unused-vars' instead
npm install eslint-plugin-etc-misc
yarn add eslint-plugin-etc-misc
pnpm add eslint-plugin-etc-misc

Shows how to set up the plugin with TypeScript project in ESLint flat config, including recommended config and custom rules.

// eslint.config.js
import plugin from 'eslint-plugin-etc-misc';
import tsParser from '@typescript-eslint/parser';
import tsPlugin from '@typescript-eslint/eslint-plugin';

export default [
  plugin.configs.recommended,
  {
    files: ['**/*.ts', '**/*.tsx'],
    languageOptions: {
      parser: tsParser,
      parserOptions: {
        project: './tsconfig.json',
      },
    },
    plugins: {
      '@typescript-eslint': tsPlugin,
    },
    rules: {
      'etc-misc/no-unused-vars': 'error',
      'etc-misc/consistent-type-imports': 'error',
    },
  },
];