eslint-config-webpack
Version:
Provides Webpack's eslint rules as an extensible shared config
86 lines (72 loc) • 2.12 kB
JavaScript
import importPlugin from "eslint-plugin-import";
import unicornPlugin from "eslint-plugin-unicorn";
import globals from "globals";
/** @type {import("eslint").Linter.Config} */
const recommendedBrowserOutdatedScriptConfig = {
name: "browser/recommended-outdated-script",
languageOptions: {
sourceType: "script",
globals: {
...globals.browser,
},
},
};
/** @type {import("eslint").Linter.Config} */
const recommendedBrowserOutdatedCommonjsConfig = {
name: "browser/recommended-outdated-commonjs",
languageOptions: {
sourceType: "commonjs",
globals: {
...globals.browser,
},
},
};
/** @type {import("eslint").Linter.Config} */
const recommendedBrowserOutdatedModuleConfig = {
name: "browser/recommended-outdated-module",
languageOptions: {
sourceType: "module",
globals: {
...globals.browser,
},
},
};
/** @type {import("eslint").Linter.Config} */
const recommendedBrowserConfig = {
name: "browser/recommended",
languageOptions: {
sourceType: "module",
globals: {
...globals.browser,
},
},
plugins: {
unicorn: unicornPlugin,
import: importPlugin,
},
rules: {
"unicorn/prefer-classlist-toggle": "error",
"unicorn/prefer-dom-node-append": "error",
"unicorn/prefer-dom-node-dataset": "error",
"unicorn/prefer-dom-node-remove": "error",
"unicorn/prefer-dom-node-text-content": "error",
"unicorn/prefer-modern-dom-apis": "error",
"unicorn/prefer-keyboard-event-key": "error",
"unicorn/prefer-query-selector": "error",
"import/extensions": [
"error",
"always",
{ ignorePackages: true, checkTypeImports: true },
],
},
};
export default {
"browser/recommended": recommendedBrowserConfig,
// TODO remove me in the next major release
"browser/recommended-outdated": recommendedBrowserOutdatedModuleConfig,
// Useful when you need to generate outdated es5 code using babel/swc/etc
"browser/recommended-outdated-script": recommendedBrowserOutdatedScriptConfig,
"browser/recommended-outdated-commonjs":
recommendedBrowserOutdatedCommonjsConfig,
"browser/recommended-outdated-module": recommendedBrowserOutdatedModuleConfig,
};