From 67aa7bff2bc091e781a782dbf11958305475e7ed Mon Sep 17 00:00:00 2001 From: Amin Yahyaabadi Date: Thu, 4 Mar 2021 23:14:37 -0600 Subject: [PATCH 01/15] chore: organize the config in files --- index.js | 134 +-------------------------------------------------- src/index.js | 26 ++++++++++ 2 files changed, 27 insertions(+), 133 deletions(-) create mode 100644 src/index.js diff --git a/index.js b/index.js index 1ab456b..18e8173 100644 --- a/index.js +++ b/index.js @@ -1,133 +1 @@ -const pluginNodeRules = { - "node/no-exports-assign": "error", - "node/process-exit-as-throw": "error", - "node/shebang": "error", - "node/no-deprecated-api": "error", - "node/prefer-promises/dns": "error", - "node/prefer-promises/fs": "error", -} - -const pluginImportExtraRules = { - "import/no-absolute-path": "error", - "import/no-useless-path-segments": "error", - "import/no-deprecated": "error", - "import/no-extraneous-dependencies": "error", - "import/no-unassigned-import": "warn", - "import/no-mutable-exports": "warn", - "import/no-anonymous-default-export": "error", - "import/no-amd": "error", - //// might be too restrictive: - // "import/no-commonjs": "warn", - // "import/no-dynamic-require": "warn", // prevent abusing dynamic require - //// don't work properly: - // "import/unambiguous": "error", - // "import/no-unused-modules": ["warn", {"missingExports": true}], -} - -module.exports = { - // JS Files - root: true, - env: { - atomtest: true, - es6: true, - node: true, - browser: true, - jasmine: true, - }, - globals: { - atom: "readonly", - measure: "readonly", - }, - parser: "babel-eslint", - parserOptions: { - ecmaFeatures: { - jsx: true, - }, - ecmaVersion: 2021, - sourceType: "module", - }, - plugins: ["node", "import", "only-warn"], - extends: ["eslint:recommended", "plugin:optimize-regex/all", "plugin:import/recommended", "prettier"], - ignorePatterns: ["node_modules/"], - rules: { - ...pluginNodeRules, - ...pluginImportExtraRules, - }, - overrides: [ - { - // Bundled node version with atom has an old ESLint - // TypeScript files - files: ["**/*.ts", "**/*.tsx"], - parser: "@typescript-eslint/parser", - plugins: ["@typescript-eslint", "node", "import", "only-warn"], - extends: [ - "eslint:recommended", - "plugin:@typescript-eslint/eslint-recommended", - "plugin:@typescript-eslint/recommended", - "plugin:optimize-regex/all", - "plugin:import/recommended", - "prettier", - ], - rules: { - "@typescript-eslint/explicit-function-return-type": "off", - "@typescript-eslint/explicit-module-boundary-types": "off", - "@typescript-eslint/camelcase": "off", - "@typescript-eslint/no-use-before-define": "off", - "@typescript-eslint/member-delimiter-style": "off", - "@typescript-eslint/no-inferrable-types": "off", - "@typescript-eslint/no-non-null-assertion": "off", - ...pluginNodeRules, - ...pluginImportExtraRules, - // Buggy on TypeScript: - "import/no-unresolved": "off", - "import/named": "off", - "import/namespace": "off", - }, - }, - { - // JSON files - files: ["*.json"], - plugins: ["json"], - extends: ["plugin:json/recommended", "prettier"], - rules: { - "json/*": [ - "error", - { - allowComments: true, - }, - ], - }, - }, - { - // CoffeeScript and CSON files - files: ["**/*.coffee", "**/*.cson"], - parser: "eslint-plugin-coffee", - plugins: ["coffee", "node", "only-warn"], - extends: ["plugin:coffee/eslint-recommended", "plugin:optimize-regex/all", "plugin:coffee/prettier"], - rules: { - ...pluginNodeRules, - ...pluginImportExtraRules, - }, - }, - { - // YAML files - files: ["*.yaml", "*.yml"], - plugins: ["yaml"], - extends: ["plugin:yaml/recommended"], - }, - ], - settings: { - "import/core-modules": ["atom", "electron"], - // support TypeScript and Coffee importing - "import/extensions": [".ts", ".tsx", ".d.ts", ".js", ".jsx", ".coffee"], - "import/external-module-folders": ["node_modules", "node_modules/@types"], - "import/parsers": { - "@typescript-eslint/parser": [".ts", ".tsx", ".d.ts"], - }, - "import/resolver": { - node: { - extensions: [".ts", ".tsx", ".d.ts", ".js", ".jsx", ".coffee"], - }, - }, - }, -} +module.exports = require("./src/index.js") diff --git a/src/index.js b/src/index.js new file mode 100644 index 0000000..8bb342c --- /dev/null +++ b/src/index.js @@ -0,0 +1,26 @@ +const { jsConfig } = require("./javascript") +const { tsConfig } = require("./typescript") +const { coffeConfig } = require("./coffeescript") +const { jsonOverides } = require("./json") +const { yamlConfig } = require("./yaml") +const { pluginImportSettings } = require("./plugin-import-rules") + +module.exports = { + root: true, + env: { + atomtest: true, + es6: true, + node: true, + browser: true, + jasmine: true, + }, + globals: { + atom: "readonly", + measure: "readonly", + }, + ...jsConfig, + overrides: [tsConfig, coffeConfig, jsonOverides, yamlConfig], + settings: { + ...pluginImportSettings, + }, +} From 49c9e6bfa4451fd5836809b0b84ef6c0d77a73a3 Mon Sep 17 00:00:00 2001 From: Amin Yahyaabadi Date: Thu, 4 Mar 2021 23:14:50 -0600 Subject: [PATCH 02/15] chore: add javascript file --- src/javascript.js | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 src/javascript.js diff --git a/src/javascript.js b/src/javascript.js new file mode 100644 index 0000000..ad31307 --- /dev/null +++ b/src/javascript.js @@ -0,0 +1,20 @@ +const { pluginNodeRules } = require("./plugin-node-rules") +const { pluginImportRulesExtra } = require("./plugin-import-rules") + +exports.jsConfig = { + parser: "babel-eslint", + parserOptions: { + ecmaFeatures: { + jsx: true, + }, + ecmaVersion: 2021, + sourceType: "module", + }, + plugins: ["node", "import", "only-warn"], + extends: ["eslint:recommended", "plugin:optimize-regex/all", "plugin:import/recommended", "prettier"], + ignorePatterns: ["node_modules/"], + rules: { + ...pluginNodeRules, + ...pluginImportRulesExtra, + }, +} From b16306d5982dd4e787952d93b4fc243b53cfa578 Mon Sep 17 00:00:00 2001 From: Amin Yahyaabadi Date: Thu, 4 Mar 2021 23:15:01 -0600 Subject: [PATCH 03/15] chore: add typescript file --- src/typescript.js | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 src/typescript.js diff --git a/src/typescript.js b/src/typescript.js new file mode 100644 index 0000000..f98bd11 --- /dev/null +++ b/src/typescript.js @@ -0,0 +1,33 @@ +const { pluginImportRulesExtra, pluginImportTypeScriptRulesExtra } = require("./plugin-import-rules") +const { pluginNodeRules } = require("./plugin-node-rules") + +const pluginTypeScriptRulesExtra = { + "@typescript-eslint/explicit-function-return-type": "off", + "@typescript-eslint/explicit-module-boundary-types": "off", + "@typescript-eslint/camelcase": "off", + "@typescript-eslint/no-use-before-define": "off", + "@typescript-eslint/member-delimiter-style": "off", + "@typescript-eslint/no-inferrable-types": "off", + "@typescript-eslint/no-non-null-assertion": "off", +} + +exports.tsConfig = { + // TypeScript files + files: ["**/*.ts", "**/*.tsx"], + parser: "@typescript-eslint/parser", + plugins: ["@typescript-eslint", "node", "import", "only-warn"], + extends: [ + "eslint:recommended", + "plugin:@typescript-eslint/eslint-recommended", + "plugin:@typescript-eslint/recommended", + "plugin:optimize-regex/all", + "plugin:import/recommended", + "prettier", + ], + rules: { + ...pluginTypeScriptRulesExtra, + ...pluginNodeRules, + ...pluginImportRulesExtra, + ...pluginImportTypeScriptRulesExtra, + }, +} From 868fa0e02cea392b182cce6e0ccf27761890ae6d Mon Sep 17 00:00:00 2001 From: Amin Yahyaabadi Date: Thu, 4 Mar 2021 23:15:20 -0600 Subject: [PATCH 04/15] chore: add coffeescript file --- src/coffeescript.js | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 src/coffeescript.js diff --git a/src/coffeescript.js b/src/coffeescript.js new file mode 100644 index 0000000..6115f53 --- /dev/null +++ b/src/coffeescript.js @@ -0,0 +1,14 @@ +const { pluginNodeRules } = require("./plugin-node-rules") +const { pluginImportRulesExtra } = require("./plugin-import-rules") + +exports.coffeConfig = { + // CoffeeScript and CSON files + files: ["**/*.coffee", "**/*.cson"], + parser: "eslint-plugin-coffee", + plugins: ["coffee", "node", "only-warn"], + extends: ["plugin:coffee/eslint-recommended", "plugin:optimize-regex/all", "plugin:coffee/prettier"], + rules: { + ...pluginNodeRules, + ...pluginImportRulesExtra, + }, +} From b5d5f12dffcca6793e0655418d0118489d29d18f Mon Sep 17 00:00:00 2001 From: Amin Yahyaabadi Date: Thu, 4 Mar 2021 23:15:31 -0600 Subject: [PATCH 05/15] chore: add json file --- src/json.js | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 src/json.js diff --git a/src/json.js b/src/json.js new file mode 100644 index 0000000..829d408 --- /dev/null +++ b/src/json.js @@ -0,0 +1,14 @@ +exports.jsonOverides = { + // JSON files + files: ["*.json"], + plugins: ["json"], + extends: ["plugin:json/recommended", "prettier"], + rules: { + "json/*": [ + "error", + { + allowComments: true, + }, + ], + }, +} From 204eb467fcad099d8ce1649188923e72ef36fa9c Mon Sep 17 00:00:00 2001 From: Amin Yahyaabadi Date: Thu, 4 Mar 2021 23:15:40 -0600 Subject: [PATCH 06/15] chore: add yaml file --- src/yaml.js | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 src/yaml.js diff --git a/src/yaml.js b/src/yaml.js new file mode 100644 index 0000000..ac8d49a --- /dev/null +++ b/src/yaml.js @@ -0,0 +1,6 @@ +exports.yamlConfig = { + // YAML files + files: ["*.yaml", "*.yml"], + plugins: ["yaml"], + extends: ["plugin:yaml/recommended"], +} From 6e9ba7551577960a1bcbc5421ac1984fd79e24a2 Mon Sep 17 00:00:00 2001 From: Amin Yahyaabadi Date: Thu, 4 Mar 2021 23:15:53 -0600 Subject: [PATCH 07/15] chore: add plugin-node-rules --- src/plugin-node-rules.js | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 src/plugin-node-rules.js diff --git a/src/plugin-node-rules.js b/src/plugin-node-rules.js new file mode 100644 index 0000000..b53e482 --- /dev/null +++ b/src/plugin-node-rules.js @@ -0,0 +1,8 @@ +exports.pluginNodeRules = { + "node/no-exports-assign": "error", + "node/process-exit-as-throw": "error", + "node/shebang": "error", + "node/no-deprecated-api": "error", + "node/prefer-promises/dns": "error", + "node/prefer-promises/fs": "error", +} From 007960b07f9ebb35807882f4deab304eb21a7512 Mon Sep 17 00:00:00 2001 From: Amin Yahyaabadi Date: Thu, 4 Mar 2021 23:16:16 -0600 Subject: [PATCH 08/15] chore: add plugin-import-rules --- src/plugin-import-rules.js | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 src/plugin-import-rules.js diff --git a/src/plugin-import-rules.js b/src/plugin-import-rules.js new file mode 100644 index 0000000..1d6b8b6 --- /dev/null +++ b/src/plugin-import-rules.js @@ -0,0 +1,38 @@ +exports.pluginImportRulesExtra = { + "import/no-absolute-path": "error", + "import/no-useless-path-segments": "error", + "import/no-deprecated": "error", + "import/no-extraneous-dependencies": "error", + "import/no-unassigned-import": "warn", + "import/no-mutable-exports": "warn", + "import/no-anonymous-default-export": "error", + "import/no-amd": "error", + //// might be too restrictive: + // "import/no-commonjs": "warn", + // "import/no-dynamic-require": "warn", // prevent abusing dynamic require + //// don't work properly: + // "import/unambiguous": "error", + // "import/no-unused-modules": ["warn", {"missingExports": true}], +} + +exports.pluginImportTypeScriptRulesExtra = { + // Buggy on TypeScript: + "import/no-unresolved": "off", + "import/named": "off", + "import/namespace": "off", +} + +exports.pluginImportSettings = { + "import/core-modules": ["atom", "electron"], + // support TypeScript and Coffee importing + "import/extensions": [".ts", ".tsx", ".d.ts", ".js", ".jsx", ".coffee"], + "import/external-module-folders": ["node_modules", "node_modules/@types"], + "import/parsers": { + "@typescript-eslint/parser": [".ts", ".tsx", ".d.ts"], + }, + "import/resolver": { + node: { + extensions: [".ts", ".tsx", ".d.ts", ".js", ".jsx", ".coffee"], + }, + }, +} From af5377206182232c48cad3fc37c929b50244e302 Mon Sep 17 00:00:00 2001 From: Amin Yahyaabadi Date: Thu, 4 Mar 2021 23:29:55 -0600 Subject: [PATCH 09/15] fix: add only warn to yaml --- src/yaml.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/yaml.js b/src/yaml.js index ac8d49a..1f377f9 100644 --- a/src/yaml.js +++ b/src/yaml.js @@ -1,6 +1,6 @@ exports.yamlConfig = { // YAML files files: ["*.yaml", "*.yml"], - plugins: ["yaml"], + plugins: ["yaml", "only-warn"], extends: ["plugin:yaml/recommended"], } From b5269b8ec75bc0a11ca60549c8bd0a7307b0cc95 Mon Sep 17 00:00:00 2001 From: Amin Yahyaabadi Date: Thu, 4 Mar 2021 23:31:20 -0600 Subject: [PATCH 10/15] chore: add index-react --- react.js | 24 +----------------------- src/index-react.js | 23 +++++++++++++++++++++++ 2 files changed, 24 insertions(+), 23 deletions(-) create mode 100644 src/index-react.js diff --git a/react.js b/react.js index a444918..19cbf31 100644 --- a/react.js +++ b/react.js @@ -1,23 +1 @@ -const base = require("./index.js") - -let overrides = base.overrides -// TypeScript: -overrides[0] = { - ...overrides[0], - plugins: ["react", ...overrides[0].plugins], - extends: ["plugin:react/recommended", ...overrides[0].extends], - rules: overrides[0].rules, -} - -module.exports = { - ...base, - plugins: ["react", ...base.plugins], - extends: ["plugin:react/recommended", ...base.extends], - overrides: overrides, - settings: { - ...(base.settings || {}), - react: { - version: "detect", - }, - }, -} +module.exports = require("./src/index-react.js") diff --git a/src/index-react.js b/src/index-react.js new file mode 100644 index 0000000..a444918 --- /dev/null +++ b/src/index-react.js @@ -0,0 +1,23 @@ +const base = require("./index.js") + +let overrides = base.overrides +// TypeScript: +overrides[0] = { + ...overrides[0], + plugins: ["react", ...overrides[0].plugins], + extends: ["plugin:react/recommended", ...overrides[0].extends], + rules: overrides[0].rules, +} + +module.exports = { + ...base, + plugins: ["react", ...base.plugins], + extends: ["plugin:react/recommended", ...base.extends], + overrides: overrides, + settings: { + ...(base.settings || {}), + react: { + version: "detect", + }, + }, +} From 41c0105cb69259bf20324f4d6190df312f97e7ee Mon Sep 17 00:00:00 2001 From: Amin Yahyaabadi Date: Thu, 4 Mar 2021 23:31:33 -0600 Subject: [PATCH 11/15] chore: use a runtime script to build strict configs --- .gitignore | 2 -- package.json | 2 -- scripts/build.strict.js | 22 ---------------------- src/index-strict-react.js | 16 ++++++++++++++++ src/index-strict.js | 18 ++++++++++++++++++ strict-react.js | 1 + strict.js | 1 + 7 files changed, 36 insertions(+), 26 deletions(-) delete mode 100644 scripts/build.strict.js create mode 100644 src/index-strict-react.js create mode 100644 src/index-strict.js create mode 100644 strict-react.js create mode 100644 strict.js diff --git a/.gitignore b/.gitignore index e7cc975..523223a 100644 --- a/.gitignore +++ b/.gitignore @@ -12,8 +12,6 @@ package-lock.json # Build directories dist -strict.js -strict-react.js spec/fixtures/atom-community spec/fixtures/atom-minimap spec/fixtures/aminya diff --git a/package.json b/package.json index 43aa0a2..644ecf6 100644 --- a/package.json +++ b/package.json @@ -27,8 +27,6 @@ "test.lint": "eslint .", "test": "node ./spec/test.js", "clean": "shx rm -rf ./spec/fixtures/atom-community ./spec/fixtures/atom-minimap ./spec/fixtures/steelbrain ./strict.js ./strict-react.js", - "build.strict": "node ./scripts/build.strict.js", - "prepare": "npm run build.strict", "bump": "ncu -u -x coffeescript" }, "dependencies": { diff --git a/scripts/build.strict.js b/scripts/build.strict.js deleted file mode 100644 index 8f79bd3..0000000 --- a/scripts/build.strict.js +++ /dev/null @@ -1,22 +0,0 @@ -console.log("Running script to generate the strict versions (without only-warn)") - -const { readFile, writeFile } = require("fs").promises -const { join, dirname, basename } = require("path") - -const fileMap = { - "index.js": "strict.js", - "react.js": "strict-react.js", -} - -;(async function main() { - const root = dirname(__dirname) - const files = ["index.js", "react.js"] - - const filesPaths = files.map((file) => join(root, file)) - - filesPaths.forEach(async (filePath) => { - const text = (await readFile(filePath)).toString() - const newText = text.replace(/"only-warn"/g, "").replace("index.js", "strict.js") - await writeFile(join(root, fileMap[basename(filePath)]), newText) - }) -})() diff --git a/src/index-strict-react.js b/src/index-strict-react.js new file mode 100644 index 0000000..8d3c3a5 --- /dev/null +++ b/src/index-strict-react.js @@ -0,0 +1,16 @@ +const nonStrictConfig = require("./index-react") + +// remove only-warn from javascript +if (nonStrictConfig.plugins[nonStrictConfig.plugins.length - 1] === "only-warn") { + nonStrictConfig.plugins.pop() +} + +// remove only-warn from overrides +nonStrictConfig.overrides.forEach(overrides => { + if (overrides.plugins[overrides.plugins.length - 1] === "only-warn") { + overrides.plugins.pop() + } +}) + + +module.exports = nonStrictConfig diff --git a/src/index-strict.js b/src/index-strict.js new file mode 100644 index 0000000..66a71fa --- /dev/null +++ b/src/index-strict.js @@ -0,0 +1,18 @@ +const nonStrictConfig = require("./index") + + +// remove only-warn from javascript +if (nonStrictConfig.plugins[nonStrictConfig.plugins.length - 1] === "only-warn") { + nonStrictConfig.plugins.pop() +} + +// remove only-warn from overrides +nonStrictConfig.overrides.forEach(overrides => { + if (overrides.plugins[overrides.plugins.length - 1] === "only-warn") { + overrides.plugins.pop() + } +}) + +console.log(nonStrictConfig) + +module.exports = nonStrictConfig diff --git a/strict-react.js b/strict-react.js new file mode 100644 index 0000000..99a4632 --- /dev/null +++ b/strict-react.js @@ -0,0 +1 @@ +module.exports = require("./src/index-strict-react.js") diff --git a/strict.js b/strict.js new file mode 100644 index 0000000..d1d089c --- /dev/null +++ b/strict.js @@ -0,0 +1 @@ +module.exports = require("./src/index-strict.js") From 568dc1367340c0e7c0eb0ff9a61c716f80a5dd7e Mon Sep 17 00:00:00 2001 From: Amin Yahyaabadi Date: Thu, 4 Mar 2021 23:33:14 -0600 Subject: [PATCH 12/15] chore: format --- src/index-strict-react.js | 3 +-- src/index-strict.js | 5 +---- 2 files changed, 2 insertions(+), 6 deletions(-) diff --git a/src/index-strict-react.js b/src/index-strict-react.js index 8d3c3a5..aed213a 100644 --- a/src/index-strict-react.js +++ b/src/index-strict-react.js @@ -6,11 +6,10 @@ if (nonStrictConfig.plugins[nonStrictConfig.plugins.length - 1] === "only-warn") } // remove only-warn from overrides -nonStrictConfig.overrides.forEach(overrides => { +nonStrictConfig.overrides.forEach((overrides) => { if (overrides.plugins[overrides.plugins.length - 1] === "only-warn") { overrides.plugins.pop() } }) - module.exports = nonStrictConfig diff --git a/src/index-strict.js b/src/index-strict.js index 66a71fa..0bd6c2c 100644 --- a/src/index-strict.js +++ b/src/index-strict.js @@ -1,18 +1,15 @@ const nonStrictConfig = require("./index") - // remove only-warn from javascript if (nonStrictConfig.plugins[nonStrictConfig.plugins.length - 1] === "only-warn") { nonStrictConfig.plugins.pop() } // remove only-warn from overrides -nonStrictConfig.overrides.forEach(overrides => { +nonStrictConfig.overrides.forEach((overrides) => { if (overrides.plugins[overrides.plugins.length - 1] === "only-warn") { overrides.plugins.pop() } }) -console.log(nonStrictConfig) - module.exports = nonStrictConfig From e685f1520f0cffb250ca79b781ff6072dea62cbb Mon Sep 17 00:00:00 2001 From: Amin Yahyaabadi Date: Thu, 4 Mar 2021 23:33:58 -0600 Subject: [PATCH 13/15] chore: use strict config --- .eslintrc.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.eslintrc.json b/.eslintrc.json index d65461e..7431f1f 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -1,4 +1,4 @@ { - "extends": ".", + "extends": "./strict", "ignorePatterns": ["dist/", "node_modules/"] } From 5605574acb3ca610bcdf8e52084152288278c5e1 Mon Sep 17 00:00:00 2001 From: Amin Yahyaabadi Date: Thu, 4 Mar 2021 23:39:39 -0600 Subject: [PATCH 14/15] chore: separate file for cson --- src/coffeescript.js | 6 +++--- src/cson.js | 6 ++++++ src/index.js | 7 ++++--- src/json.js | 2 +- 4 files changed, 14 insertions(+), 7 deletions(-) create mode 100644 src/cson.js diff --git a/src/coffeescript.js b/src/coffeescript.js index 6115f53..fc40df2 100644 --- a/src/coffeescript.js +++ b/src/coffeescript.js @@ -1,9 +1,9 @@ const { pluginNodeRules } = require("./plugin-node-rules") const { pluginImportRulesExtra } = require("./plugin-import-rules") -exports.coffeConfig = { - // CoffeeScript and CSON files - files: ["**/*.coffee", "**/*.cson"], +exports.coffeeConfig = { + // CoffeeScript files + files: ["**/*.coffee"], parser: "eslint-plugin-coffee", plugins: ["coffee", "node", "only-warn"], extends: ["plugin:coffee/eslint-recommended", "plugin:optimize-regex/all", "plugin:coffee/prettier"], diff --git a/src/cson.js b/src/cson.js new file mode 100644 index 0000000..5ca6c8c --- /dev/null +++ b/src/cson.js @@ -0,0 +1,6 @@ +const { coffeeConfig } = require("./coffeescript") + +exports.csonConfig = { + ...coffeeConfig, + files: ["**/*.cson"], +} diff --git a/src/index.js b/src/index.js index 8bb342c..feb72c4 100644 --- a/src/index.js +++ b/src/index.js @@ -1,7 +1,8 @@ const { jsConfig } = require("./javascript") const { tsConfig } = require("./typescript") -const { coffeConfig } = require("./coffeescript") -const { jsonOverides } = require("./json") +const { coffeeConfig } = require("./coffeescript") +const { jsonConfig } = require("./json") +const { csonConfig } = require("./cson") const { yamlConfig } = require("./yaml") const { pluginImportSettings } = require("./plugin-import-rules") @@ -19,7 +20,7 @@ module.exports = { measure: "readonly", }, ...jsConfig, - overrides: [tsConfig, coffeConfig, jsonOverides, yamlConfig], + overrides: [tsConfig, coffeeConfig, jsonConfig, csonConfig, yamlConfig], settings: { ...pluginImportSettings, }, diff --git a/src/json.js b/src/json.js index 829d408..17816ea 100644 --- a/src/json.js +++ b/src/json.js @@ -1,4 +1,4 @@ -exports.jsonOverides = { +exports.jsonConfig = { // JSON files files: ["*.json"], plugins: ["json"], From ccb23e7e1a0346f204c9cbd0552447aaf9654b16 Mon Sep 17 00:00:00 2001 From: Amin Yahyaabadi Date: Thu, 4 Mar 2021 23:59:42 -0600 Subject: [PATCH 15/15] chore: use spread instead of mutating overrides to build react config --- src/index-react.js | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/src/index-react.js b/src/index-react.js index a444918..249c9fe 100644 --- a/src/index-react.js +++ b/src/index-react.js @@ -1,19 +1,21 @@ const base = require("./index.js") - -let overrides = base.overrides -// TypeScript: -overrides[0] = { - ...overrides[0], - plugins: ["react", ...overrides[0].plugins], - extends: ["plugin:react/recommended", ...overrides[0].extends], - rules: overrides[0].rules, -} +const { tsConfig } = require("./typescript") module.exports = { ...base, plugins: ["react", ...base.plugins], extends: ["plugin:react/recommended", ...base.extends], - overrides: overrides, + overrides: [ + // TypeScript: + { + ...tsConfig, + plugins: ["react", ...tsConfig.plugins], + extends: ["plugin:react/recommended", ...tsConfig.extends], + rules: tsConfig.rules, + }, + // The rest is the same + ...base.overrides.slice(1), + ], settings: { ...(base.settings || {}), react: {