@amplience/dc-cli
Version:
Dynamic Content CLI Tool
37 lines (36 loc) • 1.61 kB
JavaScript
;
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;