From 4724cb8eeb16a35695c1f4b166b81c0cc2e4ddae Mon Sep 17 00:00:00 2001 From: Ahmad Mahmoud Mohammad Date: Tue, 26 May 2020 10:12:24 +0200 Subject: [PATCH] refactor: Replace inquirer with @serverless/inquirer (#7729) --- lib/plugins/interactiveCli/index.js | 2 +- .../interactiveCli/initializeService.js | 2 +- .../interactiveCli/initializeService.test.js | 2 +- lib/plugins/interactiveCli/inquirer.js | 36 ------------------- lib/plugins/interactiveCli/setupAws.js | 2 +- lib/plugins/interactiveCli/setupAws.test.js | 4 +-- lib/plugins/interactiveCli/tabCompletion.js | 2 +- .../interactiveCli/tabCompletion.test.js | 2 +- lib/plugins/interactiveCli/utils.js | 2 +- package.json | 2 +- 10 files changed, 10 insertions(+), 46 deletions(-) delete mode 100644 lib/plugins/interactiveCli/inquirer.js diff --git a/lib/plugins/interactiveCli/index.js b/lib/plugins/interactiveCli/index.js index d2b80867f7a..e7457b9e0c1 100644 --- a/lib/plugins/interactiveCli/index.js +++ b/lib/plugins/interactiveCli/index.js @@ -1,6 +1,6 @@ 'use strict'; -const inquirer = require('./inquirer'); +const inquirer = require('@serverless/inquirer'); const initializeService = require('./initializeService'); const setupAws = require('./setupAws'); const tabCompletion = require('./tabCompletion'); diff --git a/lib/plugins/interactiveCli/initializeService.js b/lib/plugins/interactiveCli/initializeService.js index 0ff76adbd99..ebc8a0ac188 100644 --- a/lib/plugins/interactiveCli/initializeService.js +++ b/lib/plugins/interactiveCli/initializeService.js @@ -2,7 +2,7 @@ const { join } = require('path'); const chalk = require('chalk'); -const inquirer = require('./inquirer'); +const inquirer = require('@serverless/inquirer'); const createFromTemplate = require('../../utils/createFromTemplate'); const { getConfigFilePath, diff --git a/lib/plugins/interactiveCli/initializeService.test.js b/lib/plugins/interactiveCli/initializeService.test.js index 1cf811efb3a..50f10205ec6 100644 --- a/lib/plugins/interactiveCli/initializeService.test.js +++ b/lib/plugins/interactiveCli/initializeService.test.js @@ -5,7 +5,7 @@ const { expect } = require('chai'); const sinon = require('sinon'); const { remove: rmDir, lstat } = require('fs-extra'); const runServerless = require('../../../tests/utils/run-serverless'); -const inquirer = require('./inquirer'); +const inquirer = require('@serverless/inquirer'); const configureInquirerStub = require('@serverless/test/configure-inquirer-stub'); const fixturesPath = join(__dirname, 'test/fixtures'); diff --git a/lib/plugins/interactiveCli/inquirer.js b/lib/plugins/interactiveCli/inquirer.js deleted file mode 100644 index a6282d20870..00000000000 --- a/lib/plugins/interactiveCli/inquirer.js +++ /dev/null @@ -1,36 +0,0 @@ -// Customize inquirer style - -'use strict'; - -const { dirname } = require('path'); -const requireUncached = require('ncjsm/require-uncached'); -const resolve = require('ncjsm/resolve/sync'); -const chalk = require('chalk'); - -const inquirersChalkPath = resolve(dirname(require.resolve('inquirer')), 'chalk').realPath; - -module.exports = requireUncached(inquirersChalkPath, () => { - // Ensure distinct chalk instance for inquirer and hack it with altered styles - Object.defineProperties(require(inquirersChalkPath), { - cyan: { - get() { - return chalk.bold; - }, - }, - bold: { - get() { - return chalk.bold.yellow; - }, - }, - }); - - // 'Serverless:' prefix - const BasePrompt = require('inquirer/lib/prompts/base'); - const originalGetQuestion = BasePrompt.prototype.getQuestion; - BasePrompt.prototype.getQuestion = function() { - this.opt.prefix = 'Serverless:'; - return originalGetQuestion.call(this); - }; - - return require('inquirer'); -}); diff --git a/lib/plugins/interactiveCli/setupAws.js b/lib/plugins/interactiveCli/setupAws.js index abff491b4dd..382fbfa775c 100644 --- a/lib/plugins/interactiveCli/setupAws.js +++ b/lib/plugins/interactiveCli/setupAws.js @@ -2,7 +2,7 @@ const BbPromise = require('bluebird'); const chalk = require('chalk'); -const inquirer = require('./inquirer'); +const inquirer = require('@serverless/inquirer'); const awsCredentials = require('../aws/utils/credentials'); const { confirm } = require('./utils'); const openBrowser = require('../../utils/openBrowser'); diff --git a/lib/plugins/interactiveCli/setupAws.test.js b/lib/plugins/interactiveCli/setupAws.test.js index d18adeeef47..5be4906ba4b 100644 --- a/lib/plugins/interactiveCli/setupAws.test.js +++ b/lib/plugins/interactiveCli/setupAws.test.js @@ -7,7 +7,7 @@ const sinon = require('sinon'); const BbPromise = require('bluebird'); const { remove: rmDir, lstat, outputFile: writeFile } = require('fs-extra'); const { resolveFileProfiles } = require('../aws/utils/credentials'); -const inquirer = require('./inquirer'); +const inquirer = require('@serverless/inquirer'); const configureInquirerStub = require('@serverless/test/configure-inquirer-stub'); const runServerless = require('../../../tests/utils/run-serverless'); @@ -25,7 +25,7 @@ const modulesCacheStub = { openBrowserUrls.push(url); }), // Ensure to rely on same inquirer module that we mock in tests - [require.resolve('./inquirer')]: inquirer, + [require.resolve('@serverless/inquirer')]: inquirer, }; describe('interactiveCli: setupAws', () => { diff --git a/lib/plugins/interactiveCli/tabCompletion.js b/lib/plugins/interactiveCli/tabCompletion.js index 98e2cf8a758..4b279b20295 100644 --- a/lib/plugins/interactiveCli/tabCompletion.js +++ b/lib/plugins/interactiveCli/tabCompletion.js @@ -12,7 +12,7 @@ const muteConsoleLog = require('../../utils/log/muteConsoleLog'); const isTabTabCompletionSupported = require('../../utils/tabCompletion/isSupported'); const tabtabOptions = require('../../utils/tabCompletion/tabtabOptions'); const promptDisabledConfigPropertyName = require('../../utils/tabCompletion/promptDisabledConfigPropertyName'); -const inquirer = require('./inquirer'); +const inquirer = require('@serverless/inquirer'); const { confirm } = require('./utils'); BbPromise.promisifyAll(fs); diff --git a/lib/plugins/interactiveCli/tabCompletion.test.js b/lib/plugins/interactiveCli/tabCompletion.test.js index b378c2fd0e8..209d3432e5f 100644 --- a/lib/plugins/interactiveCli/tabCompletion.test.js +++ b/lib/plugins/interactiveCli/tabCompletion.test.js @@ -12,7 +12,7 @@ const BbPromise = require('bluebird'); const configUtils = require('../../utils/config'); const promptDisabledConfigPropertyName = require('../../utils/tabCompletion/promptDisabledConfigPropertyName'); const isTabCompletionSupported = require('../../utils/tabCompletion/isSupported'); -const inquirer = require('./inquirer'); +const inquirer = require('@serverless/inquirer'); const lifecycleHookNamesBlacklist = [ 'before:interactiveCli:setupAws', diff --git a/lib/plugins/interactiveCli/utils.js b/lib/plugins/interactiveCli/utils.js index 4187ca440c3..aa45b2c81de 100644 --- a/lib/plugins/interactiveCli/utils.js +++ b/lib/plugins/interactiveCli/utils.js @@ -1,6 +1,6 @@ 'use strict'; -const inquirer = require('./inquirer'); +const inquirer = require('@serverless/inquirer'); module.exports = { confirm: (message, options = {}) => { diff --git a/package.json b/package.json index dbe000e28e2..3b66ad355b1 100644 --- a/package.json +++ b/package.json @@ -178,6 +178,7 @@ "@serverless/cli": "^1.4.0", "@serverless/components": "^2.30.11", "@serverless/enterprise-plugin": "^3.6.12", + "@serverless/inquirer": "^1.1.2", "archiver": "^3.1.1", "async": "^1.5.2", "aws-sdk": "^2.680.0", @@ -199,7 +200,6 @@ "globby": "^9.2.0", "graceful-fs": "^4.2.4", "https-proxy-agent": "^5.0.0", - "inquirer": "^6.5.2", "is-docker": "^1.1.0", "is-wsl": "^2.2.0", "js-yaml": "^3.13.1",