UNPKG

eslint-config-webpack

Version:

Provides Webpack's eslint rules as an extensible shared config

48 lines (39 loc) 1.09 kB
import { createRequire } from "node:module"; import { allExtensions } from "../../configs/utils/extensions.js"; import { rule as requireLicenseComment } from "./rules/require-license-comment.js"; const require = createRequire(import.meta.url); const { version } = require("../../package.json"); const rules = { "require-license-comment": requireLicenseComment, }; /** @type {import("eslint").Linter.Config["rules"]} */ const recommendedRules = { ...Object.fromEntries( Object.entries(rules) .filter(([, rule]) => rule.meta?.docs?.recommended) .map(([name]) => [`webpack/${name}`, "error"]), ), }; /** @type {Record<"recommended", import("eslint").Linter.Config>} */ const configs = { recommended: { name: "webpack/recommended", files: [`**/*.{${allExtensions.map((item) => item.slice(1)).join(",")}}`], plugins: { get webpack() { // eslint-disable-next-line no-use-before-define return plugin; }, }, rules: recommendedRules, }, }; const plugin = { configs, meta: { version, }, rules, }; export { configs, rules }; export default plugin;