@axway/axway-central-cli
Version:
Manage APIs, services and publish to the Amplify Marketplace
46 lines (45 loc) • 1.84 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.handleErrors = void 0;
var _cliKit = require("cli-kit");
// TODO: used by legacy "proxies" command only, will be removed soon
// https://jira.axway.com/browse/APIGOV-20818
const handleErrors = (console, e, spinner) => {
if (e.errors && Array.isArray(e.errors)) {
const error = e.errors[0];
if (spinner) {
switch (error.status) {
case 401:
spinner.fail((0, _cliKit.chalk)`{red Error: ${error.title || `Looks like you're not authenticated!`}}`);
console.info('\nTry running:');
console.info((0, _cliKit.chalk)`{cyan axway auth login}`);
console.info('Or if using a service account:');
console.info((0, _cliKit.chalk)`{cyan axway auth login --client-id <Service Account Client ID> --secret-file <Private Key>}`);
break;
case 403:
spinner.fail((0, _cliKit.chalk)`{red ${error.detail}}`);
break;
case 400:
spinner.fail((0, _cliKit.chalk)`{red Error: ${error.detail || error.title}}`);
if (error.source) console.log((0, _cliKit.chalk)`{gray Caused by: ${JSON.stringify(error.source)}}`);
break;
case 404:
case 409:
spinner.fail((0, _cliKit.chalk)`{red ${error.title}\n{blueBright ${error.detail}}}`);
break;
default:
spinner.fail((0, _cliKit.chalk)`{red An error occurred}`);
}
} else {
console.error(error);
}
process.exit(1);
} else if (e instanceof Error) {
let message = e.name === 'TimeoutError' ? `Couldn't connect to Amplify Central` : e.message;
spinner ? spinner.fail((0, _cliKit.chalk)`{red ${message}}`) : console.error(message);
process.exit(1);
} else throw e;
};
exports.handleErrors = handleErrors;