UNPKG

@fenge/eslint-config

Version:

A super strict eslint config for linting js/ts/package.json.

46 lines 6.07 kB
import * as pkg from "eslint-plugin-pkg-json"; import * as parser from "eslint-plugin-pkg-json/jsonc-eslint-parser"; import * as publint from "eslint-plugin-publint"; // JSON is a subset of JavaScript, so we use `languageOptions.parser` field. Refer: https://github.com/ota-meshi/eslint-plugin-jsonc?tab=readme-ov-file#how-does-eslint-plugin-jsonc-work // Using `language` field may be better. export function packagejson() { return [ { name: "fenge/packagejson", files: ["**/package.json"], languageOptions: { parser, }, plugins: { "pkg-json": pkg, publint, }, rules: { "pkg-json/bottom-default": "error", "pkg-json/compatible-engines-node-version": "error", "pkg-json/consistent-dependency-versions": "error", "pkg-json/exact-dependency-version": "error", "pkg-json/no-conflict-types": "error", "pkg-json/no-dependencies-in-workspace-root": "error", "pkg-json/no-engines": "error", "pkg-json/no-lifecycle-script": "error", "pkg-json/no-nonstandard-property": "error", "pkg-json/no-restricted-deps": "error", "pkg-json/no-types-dependency-in-workspace-root": "error", "pkg-json/no-types-deps": "warn", "pkg-json/top-types": "error", "pkg-json/private-workspace-root": "error", "pkg-json/required-dev-engines": "error", "pkg-json/required-engines": "error", "pkg-json/required-files": "error", "pkg-json/required-hashbang": "error", "pkg-json/required-repository": "error", "pkg-json/type-module": "error", "publint/suggestion": "error", "publint/warning": "error", "publint/error": "error", }, }, ]; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFja2FnZWpzb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29uZmlnL3BhY2thZ2Vqc29uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxHQUFHLE1BQU0sd0JBQXdCLENBQUM7QUFDOUMsT0FBTyxLQUFLLE1BQU0sTUFBTSw0Q0FBNEMsQ0FBQztBQUNyRSxPQUFPLEtBQUssT0FBTyxNQUFNLHVCQUF1QixDQUFDO0FBRWpELHlMQUF5TDtBQUN6TCx3Q0FBd0M7QUFDeEMsTUFBTSxVQUFVLFdBQVc7SUFDekIsT0FBTztRQUNMO1lBQ0UsSUFBSSxFQUFFLG1CQUFtQjtZQUN6QixLQUFLLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQztZQUMxQixlQUFlLEVBQUU7Z0JBQ2YsTUFBTTthQUNQO1lBQ0QsT0FBTyxFQUFFO2dCQUNQLFVBQVUsRUFBRSxHQUFHO2dCQUNmLE9BQU87YUFDUjtZQUNELEtBQUssRUFBRTtnQkFDTCx5QkFBeUIsRUFBRSxPQUFPO2dCQUNsQywwQ0FBMEMsRUFBRSxPQUFPO2dCQUNuRCx5Q0FBeUMsRUFBRSxPQUFPO2dCQUNsRCxtQ0FBbUMsRUFBRSxPQUFPO2dCQUM1Qyw0QkFBNEIsRUFBRSxPQUFPO2dCQUNyQyw0Q0FBNEMsRUFBRSxPQUFPO2dCQUNyRCxxQkFBcUIsRUFBRSxPQUFPO2dCQUM5Qiw4QkFBOEIsRUFBRSxPQUFPO2dCQUN2QyxrQ0FBa0MsRUFBRSxPQUFPO2dCQUMzQyw2QkFBNkIsRUFBRSxPQUFPO2dCQUN0QyxnREFBZ0QsRUFBRSxPQUFPO2dCQUN6RCx3QkFBd0IsRUFBRSxNQUFNO2dCQUNoQyxvQkFBb0IsRUFBRSxPQUFPO2dCQUM3QixpQ0FBaUMsRUFBRSxPQUFPO2dCQUMxQywrQkFBK0IsRUFBRSxPQUFPO2dCQUN4QywyQkFBMkIsRUFBRSxPQUFPO2dCQUNwQyx5QkFBeUIsRUFBRSxPQUFPO2dCQUNsQyw0QkFBNEIsRUFBRSxPQUFPO2dCQUNyQyw4QkFBOEIsRUFBRSxPQUFPO2dCQUN2QyxzQkFBc0IsRUFBRSxPQUFPO2dCQUMvQixvQkFBb0IsRUFBRSxPQUFPO2dCQUM3QixpQkFBaUIsRUFBRSxPQUFPO2dCQUMxQixlQUFlLEVBQUUsT0FBTzthQUN6QjtTQUNGO0tBQ08sQ0FBQztBQUNiLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBwa2cgZnJvbSBcImVzbGludC1wbHVnaW4tcGtnLWpzb25cIjtcbmltcG9ydCAqIGFzIHBhcnNlciBmcm9tIFwiZXNsaW50LXBsdWdpbi1wa2ctanNvbi9qc29uYy1lc2xpbnQtcGFyc2VyXCI7XG5pbXBvcnQgKiBhcyBwdWJsaW50IGZyb20gXCJlc2xpbnQtcGx1Z2luLXB1YmxpbnRcIjtcblxuLy8gSlNPTiBpcyBhIHN1YnNldCBvZiBKYXZhU2NyaXB0LCBzbyB3ZSB1c2UgYGxhbmd1YWdlT3B0aW9ucy5wYXJzZXJgIGZpZWxkLiBSZWZlcjogaHR0cHM6Ly9naXRodWIuY29tL290YS1tZXNoaS9lc2xpbnQtcGx1Z2luLWpzb25jP3RhYj1yZWFkbWUtb3YtZmlsZSNob3ctZG9lcy1lc2xpbnQtcGx1Z2luLWpzb25jLXdvcmtcbi8vIFVzaW5nIGBsYW5ndWFnZWAgZmllbGQgbWF5IGJlIGJldHRlci5cbmV4cG9ydCBmdW5jdGlvbiBwYWNrYWdlanNvbigpIHtcbiAgcmV0dXJuIFtcbiAgICB7XG4gICAgICBuYW1lOiBcImZlbmdlL3BhY2thZ2Vqc29uXCIsXG4gICAgICBmaWxlczogW1wiKiovcGFja2FnZS5qc29uXCJdLFxuICAgICAgbGFuZ3VhZ2VPcHRpb25zOiB7XG4gICAgICAgIHBhcnNlcixcbiAgICAgIH0sXG4gICAgICBwbHVnaW5zOiB7XG4gICAgICAgIFwicGtnLWpzb25cIjogcGtnLFxuICAgICAgICBwdWJsaW50LFxuICAgICAgfSxcbiAgICAgIHJ1bGVzOiB7XG4gICAgICAgIFwicGtnLWpzb24vYm90dG9tLWRlZmF1bHRcIjogXCJlcnJvclwiLFxuICAgICAgICBcInBrZy1qc29uL2NvbXBhdGlibGUtZW5naW5lcy1ub2RlLXZlcnNpb25cIjogXCJlcnJvclwiLFxuICAgICAgICBcInBrZy1qc29uL2NvbnNpc3RlbnQtZGVwZW5kZW5jeS12ZXJzaW9uc1wiOiBcImVycm9yXCIsXG4gICAgICAgIFwicGtnLWpzb24vZXhhY3QtZGVwZW5kZW5jeS12ZXJzaW9uXCI6IFwiZXJyb3JcIixcbiAgICAgICAgXCJwa2ctanNvbi9uby1jb25mbGljdC10eXBlc1wiOiBcImVycm9yXCIsXG4gICAgICAgIFwicGtnLWpzb24vbm8tZGVwZW5kZW5jaWVzLWluLXdvcmtzcGFjZS1yb290XCI6IFwiZXJyb3JcIixcbiAgICAgICAgXCJwa2ctanNvbi9uby1lbmdpbmVzXCI6IFwiZXJyb3JcIixcbiAgICAgICAgXCJwa2ctanNvbi9uby1saWZlY3ljbGUtc2NyaXB0XCI6IFwiZXJyb3JcIixcbiAgICAgICAgXCJwa2ctanNvbi9uby1ub25zdGFuZGFyZC1wcm9wZXJ0eVwiOiBcImVycm9yXCIsXG4gICAgICAgIFwicGtnLWpzb24vbm8tcmVzdHJpY3RlZC1kZXBzXCI6IFwiZXJyb3JcIixcbiAgICAgICAgXCJwa2ctanNvbi9uby10eXBlcy1kZXBlbmRlbmN5LWluLXdvcmtzcGFjZS1yb290XCI6IFwiZXJyb3JcIixcbiAgICAgICAgXCJwa2ctanNvbi9uby10eXBlcy1kZXBzXCI6IFwid2FyblwiLFxuICAgICAgICBcInBrZy1qc29uL3RvcC10eXBlc1wiOiBcImVycm9yXCIsXG4gICAgICAgIFwicGtnLWpzb24vcHJpdmF0ZS13b3Jrc3BhY2Utcm9vdFwiOiBcImVycm9yXCIsXG4gICAgICAgIFwicGtnLWpzb24vcmVxdWlyZWQtZGV2LWVuZ2luZXNcIjogXCJlcnJvclwiLFxuICAgICAgICBcInBrZy1qc29uL3JlcXVpcmVkLWVuZ2luZXNcIjogXCJlcnJvclwiLFxuICAgICAgICBcInBrZy1qc29uL3JlcXVpcmVkLWZpbGVzXCI6IFwiZXJyb3JcIixcbiAgICAgICAgXCJwa2ctanNvbi9yZXF1aXJlZC1oYXNoYmFuZ1wiOiBcImVycm9yXCIsXG4gICAgICAgIFwicGtnLWpzb24vcmVxdWlyZWQtcmVwb3NpdG9yeVwiOiBcImVycm9yXCIsXG4gICAgICAgIFwicGtnLWpzb24vdHlwZS1tb2R1bGVcIjogXCJlcnJvclwiLFxuICAgICAgICBcInB1YmxpbnQvc3VnZ2VzdGlvblwiOiBcImVycm9yXCIsXG4gICAgICAgIFwicHVibGludC93YXJuaW5nXCI6IFwiZXJyb3JcIixcbiAgICAgICAgXCJwdWJsaW50L2Vycm9yXCI6IFwiZXJyb3JcIixcbiAgICAgIH0sXG4gICAgfSxcbiAgXSBhcyBjb25zdDtcbn1cbiJdfQ==