UNPKG

eslint-config-webpack

Version:

Provides Webpack's eslint rules as an extensible shared config

52 lines (43 loc) 1.12 kB
import { createRequire } from "node:module"; // eslint-disable-next-line import/no-unresolved import * as parserJsonc from "jsonc-eslint-parser"; import { rule as orderProperties } from "./rules/order-properties.js"; const require = createRequire(import.meta.url); const { version } = require("../../package.json"); const rules = { "order-properties": orderProperties, }; /** @type {import("eslint").Linter.Config["rules"]} */ const recommendedRules = { ...Object.fromEntries( Object.entries(rules) .filter(([, rule]) => rule.meta?.docs?.recommended) .map(([name]) => [`package-json/${name}`, "error"]), ), }; /** @type {Record<"recommended", import("eslint").Linter.Config>} */ const configs = { recommended: { name: "package-json/recommended", files: ["**/package.json"], languageOptions: { parser: parserJsonc, }, plugins: { get "package-json"() { // eslint-disable-next-line no-use-before-define return plugin; }, }, rules: recommendedRules, }, }; const plugin = { configs, meta: { version, }, rules, }; export { configs, rules }; export default plugin;