@jsenv/eslint-config
Version:
Create ESLint configuration for any project
26 lines • 37.2 kB
Source Map (JSON)
{
"version": 3,
"file": "main.js",
"sources": [
"../src/internal/composeTwoObjects.js",
"../src/composeEslintConfig.js",
"../src/eslintConfigBase.js",
"../src/eslintConfigForPrettier.js",
"../src/eslintConfigToPreferExplicitGlobals.js",
"../src/jsenvEslintRules.js",
"../src/jsenvEslintRulesForImport.js",
"../src/jsenvEslintRulesForReact.js"
],
"sourcesContent": [
"export const composeTwoObjects = (first, second, composerMap) => {\n const composed = {};\n\n const firstKeys = Object.keys(first);\n const secondKeys = Object.keys(second);\n Object.keys(first).forEach((key) => {\n composed[key] = secondKeys.includes(key)\n ? composeTwoValues(first[key], second[key], composerMap[key])\n : first[key];\n });\n Object.keys(second).forEach((key) => {\n if (!firstKeys.includes(key)) {\n composed[key] = second[key];\n }\n });\n\n return composed;\n};\n\nconst composeTwoValues = (firstValue, secondValue, composer) => {\n if (composer) {\n return composer(firstValue, secondValue);\n }\n return secondValue;\n};\n",
"import { composeTwoObjects } from \"./internal/composeTwoObjects.js\";\n\nexport const composeEslintConfig = (...eslintConfigs) => {\n return eslintConfigs.reduce((previous, current) => {\n const next = composeTwoEslintConfigs(previous, current);\n return next;\n }, {});\n};\n\nconst composeTwoEslintConfigs = (firstEslintConfig, secondEslintConfig) => {\n return composeTwoObjects(firstEslintConfig, secondEslintConfig, {\n parserOptions: (firstParserOptions, secondParserOptions) => {\n return composeTwoObjects(firstParserOptions, secondParserOptions, {\n ecmaFeatures: (firstEcmaFeatures, secondEcmaFeatures) => {\n return {\n ...firstEcmaFeatures,\n ...secondEcmaFeatures,\n };\n },\n });\n },\n env: (firstEnv, secondEnv) => {\n return {\n ...firstEnv,\n ...secondEnv,\n };\n },\n globals: (firstGlobals, secondGlobals) => {\n return {\n ...firstGlobals,\n ...secondGlobals,\n };\n },\n plugins: (firstPlugins, secondPlugins) => {\n return [...firstPlugins, ...secondPlugins];\n },\n settings: (firstSettings, secondSettings) => {\n return composeTwoObjects(firstSettings, secondSettings, {\n extensions: (firstExtensions, secondExtensions) => {\n return [...firstExtensions, ...secondExtensions];\n },\n });\n },\n rules: (firstRules, secondRules) => {\n return {\n ...firstRules,\n ...secondRules,\n };\n },\n overrides: (firstOverrides, secondOverrides) => {\n return [...firstOverrides, ...secondOverrides];\n },\n });\n};\n",
"/**\n * This super basic ESLint configuration to parse latest js\n */\n\nexport const eslintConfigBase = {\n parserOptions: {\n sourceType: \"module\",\n },\n env: {\n es2022: true,\n },\n settings: {\n extensions: [\".js\", \".mjs\"],\n },\n};\n",
"/**\n * This ESLint config object is setting a list of rules to \"off\" as they will be already handled by prettier.\n * To ensure rules remains configured to \"off\", keep eslintConfigForPrettier low, ideally last during eslint composition\n *\n * See also https://github.com/prettier/eslint-config-prettier/blob/master/index.js\n */\n\nexport const eslintConfigForPrettier = {\n rules: {\n \"arrow-parens\": [\"off\"],\n \"arrow-spacing\": [\"off\"],\n \"brace-style\": [\"off\"],\n \"comma-dangle\": [\"off\"],\n \"comma-style\": [\"off\"],\n \"computed-property-spacing\": [\"off\"],\n \"curly\": [\"off\"],\n \"dot-location\": [\"off\"],\n \"eol-last\": [\"off\"],\n \"generator-star-spacing\": [\"off\"],\n \"indent\": [\"off\"],\n \"jsx-quotes\": [\"off\"],\n \"key-spacing\": [\"off\"],\n \"keyword-spacing\": [\"off\"],\n \"max-len\": [\"off\"],\n \"no-confusing-arrow\": [\"off\"], // prettier makes it non confusing\n \"no-extra-semi\": [\"off\"],\n \"no-floating-decimal\": [\"off\"],\n \"no-mixed-spaces-and-tabs\": [\"off\"],\n \"no-multi-spaces\": [\"off\"],\n \"no-multi-str\": [\"off\"],\n \"no-multiple-empty-lines\": [\"off\"],\n \"no-trailing-spaces\": [\"off\"],\n \"no-unexpected-multiline\": [\"off\"],\n \"no-whitespace-before-property\": [\"off\"],\n \"object-curly-spacing\": [\"off\"],\n \"one-var-declaration-per-line\": [\"off\"],\n \"operator-linebreak\": [\"off\"],\n \"padded-blocks\": [\"off\"],\n \"quote\": [\"off\"],\n \"quote-props\": [\"off\"],\n \"semi\": [\"off\"],\n \"semi-spacing\": [\"off\"],\n \"space-before-blocks\": [\"off\"],\n \"space-before-function-paren\": [\"off\"],\n \"space-in-parens\": [\"off\"],\n \"space-infix-ops\": [\"off\"],\n \"template-curly-spacing\": [\"off\"],\n \"wrap-iife\": [\"off\"],\n \"yield-star-spacing\": [\"off\"],\n },\n};\n",
"/*\n * ESLint rightfully consider some globals as available but in practice it prevents to catch bugs.\n * It's better for human devs to configure ESLint so that \"close\" or \"event\" are undefined by default.\n * If one day code needs to use the global variable you can still write window.close or window.event.\n *\n * See also\n * - https://github.com/eslint/eslint/blob/00d2c5be9a89efd90135c4368a9589f33df3f7ba/conf/environments.js#L1\n * - https://github.com/sindresorhus/globals/blob/a1d32c7f76e4d1ac3c8883acf075db11bd4d44f9/globals.json#L1\n *\n */\n\nexport const eslintConfigToPreferExplicitGlobals = {\n globals: {\n alert: \"off\",\n atob: \"off\",\n blur: \"off\",\n btoa: \"off\",\n caches: \"off\",\n close: \"off\",\n closed: \"off\",\n crypto: \"off\",\n defaultstatus: \"off\",\n defaultStatus: \"off\",\n escape: \"off\",\n event: \"off\",\n external: \"off\",\n focus: \"off\",\n find: \"off\",\n frames: \"off\",\n history: \"off\",\n length: \"off\",\n location: \"off\",\n menubar: \"off\",\n name: \"off\",\n navigator: \"off\",\n open: \"off\",\n origin: \"off\",\n print: \"off\",\n screen: \"off\",\n scroll: \"off\",\n status: \"off\",\n stop: \"off\",\n top: \"off\",\n unescape: \"off\",\n valueOf: \"off\",\n },\n};\n",
"/*\n * Contains configuration of many ESLint rules with the following mindset:\n * 1. ESLint should fail only for important things\n * 2. ESLint should be silent as long as nothing critical is detected\n * 3. When code is slighly modified to test/debug something, please ESLint, let me do without\n * bothering me with \"best practices\" and stuff\n *\n * Notes:\n * - Point 3. is the reason why rules like \"prefer-const\" are disabled\n * - It's on purpose that point \"2.\" is an other way of phrasing \"1.\"\n * - There is a few exception to mindset, for example \"no-eval\" is not really\n * critical but the rule is still enabled\n *\n * See also:\n * - https://eslint.org/docs/rules/\n */\n\nexport const jsenvEslintRules = {\n \"accessor-pairs\": [\"error\"],\n \"array-bracket-spacing\": [\"error\", \"never\"],\n \"array-callback-return\": [\"error\"],\n \"arrow-parens\": [\"error\", \"as-needed\"],\n \"arrow-spacing\": [\"error\", { before: true, after: true }],\n \"block-scoped-var\": [\"error\"],\n \"brace-style\": [\"error\", \"stroustrup\"],\n \"camelcase\": [\n \"off\",\n {\n properties: \"always\",\n },\n ],\n \"comma-dangle\": [\n \"error\",\n {\n arrays: \"only-multiline\",\n objects: \"only-multiline\",\n imports: \"only-multiline\",\n exports: \"only-multiline\",\n functions: \"only-multiline\",\n },\n ],\n \"comma-spacing\": [\n \"error\",\n {\n before: false,\n after: true,\n },\n ],\n \"comma-style\": [\"error\", \"last\"],\n \"computed-property-spacing\": [\"error\", \"never\"],\n \"consistent-return\": [\"error\"],\n \"constructor-super\": [\"error\"],\n \"curly\": [\"error\"],\n \"default-case\": [\"error\"],\n \"dot-location\": [\"error\", \"property\"],\n \"dot-notation\": [\"error\"],\n \"eol-last\": [\"off\"],\n \"eqeqeq\": [\"error\"],\n \"generator-star-spacing\": [\"error\", \"both\"],\n \"getter-return\": [\"error\"],\n \"grouped-accessor-pairs\": [\"error\"],\n \"guard-for-in\": [\"error\"],\n \"handle-callback-err\": [\"warn\"],\n /**\n * \"tab\" is theorically a better option so that people can choose identation width.\n * Because it allow them to decide how much space a tab char takes (2, 4, 100) in their environment\n * But it comes with several issue:\n * - By default github will render a tab with 8 spaces\n * (can be fixed thank to an .editorconfig at the root of the github project (see http://stackoverflow.com/a/33831598)\n * - A user cannot globally defined how much space a tab should take\n * In a perfect world it would be an operating system setting that browser\n * would follow.\n *\n * In practice spaces cause less troubles.\n */\n \"indent\": [\"error\", 2, { SwitchCase: 1 }],\n \"jsx-quotes\": [\"error\"],\n \"key-spacing\": [\n \"error\",\n {\n beforeColon: false,\n afterColon: true,\n },\n ],\n \"keyword-spacing\": [\"error\"],\n // disabled otherwise fails when eslint is runned on windows\n // after a git clone\n \"linebreak-style\": [\"off\", \"unix\"],\n \"max-len\": [\n \"warn\",\n 120,\n 4,\n {\n ignoreComments: true,\n ignoreUrls: true,\n ignorePattern: \"^\\\\s*var\\\\s.+=\\\\s.+\\\\/.*?\\\\/;$\",\n },\n ],\n \"max-nested-callbacks\": [\"warn\", 4],\n \"new-cap\": [\n \"error\",\n {\n newIsCap: true,\n capIsNew: false,\n },\n ],\n \"new-parens\": [\"error\"],\n \"no-alert\": [\"error\"],\n \"no-array-constructor\": [\"error\"],\n \"no-caller\": [\"error\"],\n \"no-case-declarations\": [\"error\"],\n \"no-class-assign\": [\"error\"],\n \"no-cond-assign\": [\"error\"],\n \"no-confusing-arrow\": [\"error\"],\n \"no-const-assign\": [\"error\"],\n \"no-constant-condition\": [\"error\"],\n \"no-constant-binary-expression\": [\"error\"],\n \"no-constructor-return\": [\"error\"],\n \"no-control-regex\": [\"error\"],\n \"no-debugger\": process.env.CI ? [\"error\"] : [\"off\"],\n \"no-delete-var\": [\"error\"],\n \"no-div-regex\": [\"error\"],\n \"no-dupe-args\": [\"error\"],\n \"no-duplicate-case\": [\"error\"],\n \"no-dupe-class-members\": [\"error\"],\n \"no-dupe-else-if\": [\"error\"],\n \"no-dupe-keys\": [\"error\"],\n \"no-else-return\": [\"error\"],\n \"no-empty-character-class\": [\"error\"],\n \"no-empty-pattern\": [\"error\"],\n \"no-eq-null\": [\"error\"],\n \"no-extend-native\": [\"error\"],\n \"no-ex-assign\": [\"error\"],\n \"no-extra-bind\": [\"error\"],\n \"no-extra-boolean-cast\": [\"error\"],\n \"no-extra-label\": [\"error\"],\n \"no-extra-semi\": [\"off\"],\n // At first I wanted to disable \"no-eval\" because every one knows eval is a bad idea\n // so when it's used it's always for a good reason.\n // But on second thought it's better to disable the rule\n // locally using \"//eslint-disable-next-line no-eval\" in that case\n \"no-eval\": [\"error\"],\n \"no-fallthrough\": [\"error\"],\n \"no-floating-decimal\": [\"error\"],\n \"no-func-assign\": [\"error\"],\n \"no-inner-declarations\": [\"error\"],\n \"no-invalid-regexp\": [\"error\"],\n \"no-implicit-coercion\": [\"error\"],\n \"no-implicit-globals\": [\"error\"],\n \"no-implied-eval\": [\"error\"],\n \"no-irregular-whitespace\": [\"error\"],\n \"no-iterator\": [\"error\"],\n \"no-label-var\": [\"error\"],\n \"no-labels\": [\"off\"], // https://gist.github.com/getify/706e5e10822a298375da40f9cc1fa295\n \"no-lone-blocks\": [\"off\"], // https://gist.github.com/getify/706e5e10822a298375da40f9cc1fa295\n \"no-lonely-if\": [\"error\"],\n \"no-loop-func\": [\"error\"],\n \"no-magic-numbers\": [\"off\"],\n \"no-mixed-requires\": [\"error\", { grouping: true, allowCall: true }],\n \"no-mixed-spaces-and-tabs\": [\"error\"],\n \"no-multi-spaces\": [\"error\"],\n \"no-multi-str\": [\"error\"],\n \"no-multiple-empty-lines\": [\"off\", { max: 1 }],\n \"no-native-reassign\": [\"error\"],\n \"no-negated-condition\": [\"error\"],\n // disabled because deprecated in favor of no-unsafe-negation\n // https://eslint.org/docs/rules/no-negated-in-lhs\n \"no-negated-in-lhs\": [\"off\"],\n // I prefer when ESLint really has something to say\n // nested ternary are not wrong, especially when prettier\n // format them correctly\n // In the end, they often gets transformed to helper function\n // but in the meantime eslint is complaining\n \"no-nested-ternary\": [\"off\"],\n \"no-new\": [\"error\"],\n \"no-new-func\": [\"error\"],\n \"no-new-require\": [\"error\"],\n \"no-new-object\": [\"error\"],\n \"no-new-symbol\": [\"error\"],\n \"no-new-wrappers\": [\"error\"],\n \"no-obj-calls\": [\"error\"],\n \"no-octal\": [\"error\"],\n \"no-octal-escape\": [\"error\"],\n \"no-path-concat\": [\"error\"],\n \"no-proto\": [\"error\"],\n \"no-redeclare\": [\"error\"],\n \"no-regex-spaces\": [\"error\"],\n \"no-restricted-imports\": [\n \"error\",\n \"domain\",\n \"freelist\",\n \"smalloc\",\n \"sys\",\n \"colors\",\n ],\n \"no-restricted-modules\": [\n \"error\",\n \"domain\",\n \"freelist\",\n \"smalloc\",\n \"sys\",\n \"colors\",\n ],\n \"no-restricted-syntax\": [\"error\", \"WithStatement\"],\n \"no-return-assign\": [\"error\", \"always\"],\n \"no-setter-return\": [\"error\"],\n \"no-script-url\": [\"error\"],\n \"no-self-assign\": [\"error\"],\n \"no-self-compare\": [\"error\"],\n \"no-sequences\": [\"error\"],\n \"no-shadow-restricted-names\": [\"error\"],\n \"no-spaced-func\": [\"error\"],\n \"no-sparse-arrays\": [\"error\"],\n \"no-this-before-super\": [\"error\"],\n \"no-throw-literal\": [\"error\"],\n \"no-trailing-spaces\": [\"error\"],\n \"no-undef\": [\"error\", { typeof: true }],\n \"no-undef-init\": [\"error\"],\n \"no-undefined\": [\"off\"],\n \"no-unexpected-multiline\": [\"error\"],\n \"no-unmodified-loop-condition\": [\"error\"],\n \"no-unneeded-ternary\": [\"error\"],\n \"no-unreachable\": [\"error\"],\n \"no-unused-expressions\": [\"error\"],\n \"no-unused-labels\": [\"off\"], // https://gist.github.com/getify/706e5e10822a298375da40f9cc1fa295\n \"no-unused-private-class-members\": [\"error\"],\n \"no-unused-vars\": [\"error\"],\n \"no-use-before-define\": [\n \"error\",\n /*\n * \"no-use-before-define\" is great to prevent a common mistake\n * where code tries to use a variable before it's actually available.\n * In practice this rule fails even on valid code.\n * Enabling the default options of this rule would\n * force variables,functions and classes to be declared in specific order\n * which is very annoying because:\n * - code is valid in the first place\n * - it's SUPER NICE to put variables and functions that are\n * implementation details at the bottom of the file to make\n * important code more accesible\n */\n {\n functions: false,\n variables: false,\n classes: false,\n allowNamedExports: true,\n },\n ],\n \"no-useless-call\": [\"error\"],\n \"no-useless-concat\": [\"error\"],\n \"no-useless-constructor\": [\"error\"],\n \"no-void\": [\"error\"],\n \"no-warning-comments\": [\"off\"],\n \"no-whitespace-before-property\": [\"error\"],\n \"no-with\": [\"error\"],\n \"object-curly-spacing\": [\"error\", \"always\"],\n \"object-shorthand\": [\"warn\", \"always\"],\n \"one-var\": [\"error\", \"never\"],\n \"one-var-declaration-per-line\": [\"error\"],\n // Sometimes I prefer to write toto = toto + 1\n // instead of toto++ for whatever reason\n // and having ESLint to complain is annoying\n // I prefer when ESLint really has something to say\n \"operator-assignment\": [\"off\", \"always\"],\n \"operator-linebreak\": [\n \"error\",\n \"after\",\n {\n overrides: { \"?\": \"ignore\", \":\": \"ignore\" },\n },\n ],\n \"padded-blocks\": [\"error\", \"never\"],\n // I prefer to use const to indicate immediatly to the reader\n // that this variable is never re-assigned. let becomes\n // the exception and it helps to understand the code.\n // However during development a variable gets used once\n // and should be const, then you reuse it, and should be let.\n // I prefer ESLint to stay quiet during these moments.\n // I already got the habit of using const and would not care\n // if some let where to stay by mistake.\n \"prefer-const\": [\n \"off\",\n {\n destructuring: \"all\",\n ignoreReadBeforeAssign: true,\n },\n ],\n // Math.pow is cool, why being so strict ?\n \"prefer-exponentiation-operator\": [\"off\"],\n \"prefer-rest-params\": [\"warn\"],\n \"prefer-spread\": [\"warn\"],\n \"prefer-template\": [\"warn\"],\n \"quote\": [\n // disabled because it becomes painfull when switching\n // between \"\" and `` (template literals)\n \"off\",\n // double because closer to .json, this it increase compatibility between .js and .json\n // also because ' are often used in english and '' would lead to 'I\\'m' VS \"I'm\"\n \"double\",\n ],\n \"quote-props\": [\n \"error\",\n \"as-needed\",\n {\n keywords: false,\n numbers: true,\n // unnecessary: false so that when you fall into edge cases\n // you can use the quoting style you want\n unnecessary: false,\n },\n ],\n \"semi\": [\"error\", \"always\"],\n \"semi-spacing\": [\n \"error\",\n {\n before: false,\n after: true,\n },\n ],\n \"space-before-blocks\": [\"error\", \"always\"],\n \"space-before-function-paren\": [\"error\", \"never\"],\n \"space-in-parens\": [\"error\", \"never\"],\n \"space-infix-ops\": [\"error\"],\n \"space-unary-ops\": [\"error\"],\n \"spaced-comment\": [\n \"error\",\n \"always\",\n {\n markers: [\"!\"],\n },\n ],\n \"template-curly-spacing\": [\"error\"],\n \"use-isnan\": [\"error\"],\n \"valid-jsdoc\": [\n \"off\",\n {\n requireReturn: false,\n prefer: {\n returns: \"return\",\n },\n },\n ],\n \"valid-typeof\": [\"error\"],\n \"wrap-iife\": [\"error\", \"inside\"],\n \"yield-star-spacing\": [\"error\", \"both\"],\n \"yoda\": [\"error\"],\n};\n",
"/*\n * Contains configuration of ESLint rules when using eslint-plugin-import.\n *\n * Check ./jsenvEslintRules.js to see the mindset used to configure these rules\n */\n\nexport const jsenvEslintRulesForImport = {\n \"import/default\": [\"error\"],\n \"import/no-unresolved\": [\n \"error\",\n {\n commonjs: true,\n amd: false,\n caseSensitive: false,\n },\n ],\n \"import/named\": [\"error\"],\n \"import/namespace\": [\"error\", { allowComputed: true }],\n \"import/no-absolute-path\": [\"off\"],\n \"import/no-dynamic-require\": [\"error\"],\n \"import/export\": [\"error\"],\n \"import/no-named-as-default\": [\"warn\"],\n \"import/first\": [\"warn\"],\n \"import/no-duplicates\": [\"warn\"],\n \"import/newline-after-import\": [\"warn\"],\n // \"import/max-dependencies\" is not super useful\n // Either you will disable the eslint rule because it's \"normal\"\n // to have a lot of dependencies or feel compelled to reduce the number of imports.\n // It's already visible that a file has many imports and that ideally they should be\n // less imports, no need for ESLint, let's keep ESLint for more valuable things.\n \"import/max-dependencies\": [\"off\", { max: 10 }],\n \"import/no-anonymous-default-export\": [\n \"off\",\n {\n allowArray: true,\n allowArrowFunction: false,\n allowAnonymousClass: false,\n allowAnonymousFunction: false,\n allowLiteral: true,\n allowObject: true,\n },\n ],\n \"import/no-self-import\": [\"error\"],\n \"import/no-cycle\": [\"error\"],\n \"import/no-useless-path-segments\": [\"error\"],\n \"import/no-default-export\": [\"error\"],\n};\n",
"/*\n * Contains configuration of ESLint rules when using eslint-plugin-react.\n *\n * Check ./jsenvEslintRules.js to see the mindset used to configure these rules\n */\n\nexport const jsenvEslintRulesForReact = {\n \"react/display-name\": [\"error\"],\n \"react/jsx-key\": [\"error\"],\n \"react/jsx-filename-extension\": [\"error\", { extensions: [\".jsx\"] }],\n \"react/jsx-no-comment-textnodes\": [\"error\"],\n \"react/jsx-no-duplicate-props\": [\"error\"],\n \"react/jsx-no-target-blank\": [\"off\"],\n \"react/jsx-no-undef\": [\"error\"],\n \"react/jsx-uses-react\": [\"error\"],\n \"react/jsx-uses-vars\": [\"error\"],\n \"react/no-children-prop\": [\"error\"],\n \"react/no-danger-with-children\": [\"error\"],\n \"react/no-deprecated\": [\"error\"],\n \"react/no-direct-mutation-state\": [\"error\"],\n \"react/no-find-dom-node\": [\"error\"],\n \"react/no-is-mounted\": [\"error\"],\n \"react/no-render-return-value\": [\"error\"],\n \"react/no-string-refs\": [\"error\"],\n \"react/no-unescaped-entities\": [\"error\"],\n \"react/no-unknown-property\": [\"error\"],\n \"react/no-unsafe\": [\"off\"],\n \"react/prop-types\": [\"off\"],\n \"react/react-in-jsx-scope\": [\"error\"],\n \"react/require-render-return\": [\"off\"],\n};\n"
],
"names": [],
"mappings": "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"
}