UNPKG

@amplience/dc-cli

Version:
37 lines (36 loc) 1.61 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const dc_management_sdk_js_1 = require("dc-management-sdk-js"); const httpErrorFactory = { 400: (httpError) => `Error: Request failed with status code 400\n${JSON.stringify(httpError.response, null, 2)}`, 401: () => 'Error: Unauthorized - Please ensure your client ID & secret or PAT token are correct.', 403: (httpError) => { return httpError.request ? `Error: The requested action (${httpError.request.method}: ${httpError.request.url}) is not available (forbidden), ensure you have permission to perform this action.` : 'Error: The requested action is not available (forbidden), ensure you have permission to perform this action.'; }, 429: () => 'Error: Too many requests - Please try again later.', 500: (httpError) => `Error: Internal Server Error - ${httpError.message}` }; const buildMessage = (err) => { if (typeof err === 'string') { return `Error: ${err}`; } if (err instanceof dc_management_sdk_js_1.HttpError && err.response) { const builder = httpErrorFactory[err.response.status]; if (builder) { return builder(err); } if (!err.response.status) { return `Error: No response from server - check your network connection.`; } } return `Error: ${err.message}`; }; const generateTimestamp = () => { return new Date().toISOString(); }; const errorHandler = (err) => { console.error(`\n${generateTimestamp()} ${buildMessage(err)}`); }; exports.default = errorHandler;