From 3b548557fee9f0b180a9ff19addb65699e064490 Mon Sep 17 00:00:00 2001 From: Mark Lee Date: Thu, 29 Dec 2016 13:09:37 -0800 Subject: [PATCH] feat(importer): confirm build tool package removal from user --- src/electron-forge-import.js | 37 ++++++++++++++++++++++-------------- 1 file changed, 23 insertions(+), 14 deletions(-) diff --git a/src/electron-forge-import.js b/src/electron-forge-import.js index f8480744be..a04136d9b1 100644 --- a/src/electron-forge-import.js +++ b/src/electron-forge-import.js @@ -80,17 +80,17 @@ const main = async () => { packageJSON.devDependencies = packageJSON.devDependencies || {}; const keys = Object.keys(packageJSON.dependencies).concat(Object.keys(packageJSON.devDependencies)); - const buildToolPackages = [ - 'electron-builder', - 'electron-download', - 'electron-installer-debian', - 'electron-installer-dmg', - 'electron-installer-flatpak', - 'electron-installer-redhat', - 'electron-osx-sign', - 'electron-packager', - 'electron-winstaller', - ]; + const buildToolPackages = { + 'electron-builder': 'provides mostly equivalent functionality', + 'electron-download': 'already uses this module as a transitive dependency', + 'electron-installer-debian': 'already uses this module as a transitive dependency', + 'electron-installer-dmg': 'already uses this module as a transitive dependency', + 'electron-installer-flatpak': 'already uses this module as a transitive dependency', + 'electron-installer-redhat': 'already uses this module as a transitive dependency', + 'electron-osx-sign': 'already uses this module as a transitive dependency', + 'electron-packager': 'already uses this module as a transitive dependency', + 'electron-winstaller': 'already uses this module as a transitive dependency', + }; let electronName; for (const key of keys) { @@ -98,9 +98,18 @@ const main = async () => { delete packageJSON.dependencies[key]; delete packageJSON.devDependencies[key]; electronName = key; - } else if (buildToolPackages.includes(key)) { - delete packageJSON.dependencies[key]; - delete packageJSON.devDependencies[key]; + } else if (buildToolPackages[key]) { + const explanation = buildToolPackages[key]; + const { shouldRemoveDependency } = await inquirer.createPromptModule()({ + type: 'confirm', + name: 'shouldRemoveDependency', + message: `Do you want us to remove the "${key}" dependency in package.json? Electron Forge ${explanation}.`, + }); + + if (shouldRemoveDependency) { + delete packageJSON.dependencies[key]; + delete packageJSON.devDependencies[key]; + } } }