summaryrefslogtreecommitdiff
path: root/tools/node_modules/eslint/lib/init/config-initializer.js
diff options
context:
space:
mode:
Diffstat (limited to 'tools/node_modules/eslint/lib/init/config-initializer.js')
-rw-r--r--tools/node_modules/eslint/lib/init/config-initializer.js28
1 files changed, 19 insertions, 9 deletions
diff --git a/tools/node_modules/eslint/lib/init/config-initializer.js b/tools/node_modules/eslint/lib/init/config-initializer.js
index 4d52377d26..17aa96505a 100644
--- a/tools/node_modules/eslint/lib/init/config-initializer.js
+++ b/tools/node_modules/eslint/lib/init/config-initializer.js
@@ -18,6 +18,7 @@ const util = require("util"),
recConfig = require("../../conf/eslint-recommended"),
ConfigOps = require("../shared/config-ops"),
log = require("../shared/logging"),
+ naming = require("../shared/naming"),
ModuleResolver = require("../shared/relative-module-resolver"),
autoconfig = require("./autoconfig.js"),
ConfigFile = require("./config-file"),
@@ -97,17 +98,26 @@ function getModulesList(config, installESLint) {
// Create a list of modules which should be installed based on config
if (config.plugins) {
for (const plugin of config.plugins) {
- modules[`eslint-plugin-${plugin}`] = "latest";
+ const moduleName = naming.normalizePackageName(plugin, "eslint-plugin");
+
+ modules[moduleName] = "latest";
}
}
- if (config.extends && config.extends.indexOf("eslint:") === -1) {
- const moduleName = `eslint-config-${config.extends}`;
-
- modules[moduleName] = "latest";
- Object.assign(
- modules,
- getPeerDependencies(`${moduleName}@latest`)
- );
+ if (config.extends) {
+ const extendList = Array.isArray(config.extends) ? config.extends : [config.extends];
+
+ for (const extend of extendList) {
+ if (extend.startsWith("eslint:") || extend.startsWith("plugin:")) {
+ continue;
+ }
+ const moduleName = naming.normalizePackageName(extend, "eslint-config");
+
+ modules[moduleName] = "latest";
+ Object.assign(
+ modules,
+ getPeerDependencies(`${moduleName}@latest`)
+ );
+ }
}
if (installESLint === false) {