2021-06-28 13:27:08 +02:00

39 lines
1.2 KiB
JavaScript

'use strict';
const inquirer = require('@serverless/utils/inquirer');
const ServerlessError = require('../../serverless-error');
const resolveProviderCredentials = require('@serverless/dashboard-plugin/lib/resolveProviderCredentials');
const resolveStage = require('../../utils/resolve-stage');
const resolveRegion = require('../../utils/resolve-region');
module.exports = {
confirm: async (message, options = {}) => {
const name = options.name || 'isConfirmed';
return (
await inquirer.prompt({
message,
type: 'confirm',
name,
})
)[name];
},
doesServiceInstanceHaveLinkedProvider: async ({ configuration, options }) => {
const region = resolveRegion({ configuration, options });
const stage = resolveStage({ configuration, options });
let result;
try {
result = await resolveProviderCredentials({ configuration, region, stage });
} catch (err) {
if (err.statusCode && err.statusCode >= 500) {
throw new ServerlessError(
'Dashboard service is currently unavailable, please try again later',
'DASHBOARD_UNAVAILABLE'
);
}
throw err;
}
return Boolean(result);
},
};