aws-cdk
Version:
AWS CDK CLI, the command line tool for CDK apps
68 lines • 7.66 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.UNKNOWN_ERROR_CODE = exports.USER_INTERRUPTED_CODE = void 0;
exports.cdkCliErrorName = cdkCliErrorName;
const toolkit_lib_1 = require("@aws-cdk/toolkit-lib");
const smithy_client_1 = require("@smithy/smithy-client");
/**
* The error code when a user hits Ctrl-C
*/
exports.USER_INTERRUPTED_CODE = 'UserInterrupted';
/**
* If we can't find a specific error code
*/
exports.UNKNOWN_ERROR_CODE = 'UnknownError';
/**
* Return the transmitted error code for this error object
*
* We are taking care to only transmit errors that originate from AWS systems
* (this toolkit itself, the CDK construct library, the AWS SDK, AWS services).
*/
function cdkCliErrorName(err) {
const spec = firstSpecificCause(err);
if (spec) {
return spec;
}
if (toolkit_lib_1.ToolkitError.isToolkitError(err)) {
// We don't have a specific error code, return the generic one from our own error set
return err.name;
}
// Off-limits error
return exports.UNKNOWN_ERROR_CODE;
}
/**
* Return the first error cause that has a specific error, if any
*/
function firstSpecificCause(error) {
const ret = specificErrorCode(error);
if (ret) {
return ret;
}
if (error.cause && error.cause instanceof Error) {
return firstSpecificCause(error.cause);
}
return undefined;
}
/**
* Return a specific error code for the given function, or undefined if we don't have a specific code
*/
function specificErrorCode(err) {
if (smithy_client_1.ServiceException.isInstance(err)) {
// SDK and/or Service error
return `sdk:${err.name}`;
}
if (toolkit_lib_1.ToolkitError.isDeploymentError(err)) {
return `deploy:${err.deploymentErrorCode ?? toolkit_lib_1.DeploymentErrorCodes.UNKNOWN_ERROR}`;
}
if (toolkit_lib_1.ToolkitError.isAssemblyError(err) && err.synthErrorCode) {
// If we have a synth code, return that
return `synth:${err.synthErrorCode}`;
}
// If we have a more specific error code than just the error name, use that
const standardErrorNames = [toolkit_lib_1.ToolkitError.name, toolkit_lib_1.AuthenticationError.name, toolkit_lib_1.AssemblyError.name, toolkit_lib_1.ContextProviderError.name];
if (toolkit_lib_1.ToolkitError.isToolkitError(err) && !standardErrorNames.includes(err.name)) {
return err.name;
}
return undefined;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJlcnJvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFtQkEsMENBYUM7QUFoQ0Qsc0RBQW9JO0FBQ3BJLHlEQUF5RDtBQUV6RDs7R0FFRztBQUNVLFFBQUEscUJBQXFCLEdBQUcsaUJBQWlCLENBQUM7QUFFdkQ7O0dBRUc7QUFDVSxRQUFBLGtCQUFrQixHQUFHLGNBQWMsQ0FBQztBQUVqRDs7Ozs7R0FLRztBQUNILFNBQWdCLGVBQWUsQ0FBQyxHQUFVO0lBQ3hDLE1BQU0sSUFBSSxHQUFHLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3JDLElBQUksSUFBSSxFQUFFLENBQUM7UUFDVCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxJQUFJLDBCQUFZLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7UUFDckMscUZBQXFGO1FBQ3JGLE9BQU8sR0FBRyxDQUFDLElBQUksQ0FBQztJQUNsQixDQUFDO0lBRUQsbUJBQW1CO0lBQ25CLE9BQU8sMEJBQWtCLENBQUM7QUFDNUIsQ0FBQztBQUVEOztHQUVHO0FBQ0gsU0FBUyxrQkFBa0IsQ0FBQyxLQUFZO0lBQ3RDLE1BQU0sR0FBRyxHQUFHLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3JDLElBQUksR0FBRyxFQUFFLENBQUM7UUFDUixPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUM7SUFFRCxJQUFJLEtBQUssQ0FBQyxLQUFLLElBQUksS0FBSyxDQUFDLEtBQUssWUFBWSxLQUFLLEVBQUUsQ0FBQztRQUNoRCxPQUFPLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN6QyxDQUFDO0lBRUQsT0FBTyxTQUFTLENBQUM7QUFDbkIsQ0FBQztBQUVEOztHQUVHO0FBQ0gsU0FBUyxpQkFBaUIsQ0FBQyxHQUFVO0lBQ25DLElBQUksZ0NBQWdCLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7UUFDckMsMkJBQTJCO1FBQzNCLE9BQU8sT0FBTyxHQUFHLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVELElBQUksMEJBQVksQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO1FBQ3hDLE9BQU8sVUFBVSxHQUFHLENBQUMsbUJBQW1CLElBQUksa0NBQW9CLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDbkYsQ0FBQztJQUVELElBQUksMEJBQVksQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLElBQUksR0FBRyxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQzVELHVDQUF1QztRQUN2QyxPQUFPLFNBQVMsR0FBRyxDQUFDLGNBQWMsRUFBRSxDQUFDO0lBQ3ZDLENBQUM7SUFFRCwyRUFBMkU7SUFDM0UsTUFBTSxrQkFBa0IsR0FBRyxDQUFDLDBCQUFZLENBQUMsSUFBSSxFQUFFLGlDQUFtQixDQUFDLElBQUksRUFBRSwyQkFBYSxDQUFDLElBQUksRUFBRSxrQ0FBb0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN4SCxJQUFJLDBCQUFZLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1FBQy9FLE9BQU8sR0FBRyxDQUFDLElBQUksQ0FBQztJQUNsQixDQUFDO0lBRUQsT0FBTyxTQUFTLENBQUM7QUFDbkIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFzc2VtYmx5RXJyb3IsIEF1dGhlbnRpY2F0aW9uRXJyb3IsIENvbnRleHRQcm92aWRlckVycm9yLCBEZXBsb3ltZW50RXJyb3JDb2RlcywgVG9vbGtpdEVycm9yIH0gZnJvbSAnQGF3cy1jZGsvdG9vbGtpdC1saWInO1xuaW1wb3J0IHsgU2VydmljZUV4Y2VwdGlvbiB9IGZyb20gJ0BzbWl0aHkvc21pdGh5LWNsaWVudCc7XG5cbi8qKlxuICogVGhlIGVycm9yIGNvZGUgd2hlbiBhIHVzZXIgaGl0cyBDdHJsLUNcbiAqL1xuZXhwb3J0IGNvbnN0IFVTRVJfSU5URVJSVVBURURfQ09ERSA9ICdVc2VySW50ZXJydXB0ZWQnO1xuXG4vKipcbiAqIElmIHdlIGNhbid0IGZpbmQgYSBzcGVjaWZpYyBlcnJvciBjb2RlXG4gKi9cbmV4cG9ydCBjb25zdCBVTktOT1dOX0VSUk9SX0NPREUgPSAnVW5rbm93bkVycm9yJztcblxuLyoqXG4gKiBSZXR1cm4gdGhlIHRyYW5zbWl0dGVkIGVycm9yIGNvZGUgZm9yIHRoaXMgZXJyb3Igb2JqZWN0XG4gKlxuICogV2UgYXJlIHRha2luZyBjYXJlIHRvIG9ubHkgdHJhbnNtaXQgZXJyb3JzIHRoYXQgb3JpZ2luYXRlIGZyb20gQVdTIHN5c3RlbXNcbiAqICh0aGlzIHRvb2xraXQgaXRzZWxmLCB0aGUgQ0RLIGNvbnN0cnVjdCBsaWJyYXJ5LCB0aGUgQVdTIFNESywgQVdTIHNlcnZpY2VzKS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNka0NsaUVycm9yTmFtZShlcnI6IEVycm9yKTogc3RyaW5nIHtcbiAgY29uc3Qgc3BlYyA9IGZpcnN0U3BlY2lmaWNDYXVzZShlcnIpO1xuICBpZiAoc3BlYykge1xuICAgIHJldHVybiBzcGVjO1xuICB9XG5cbiAgaWYgKFRvb2xraXRFcnJvci5pc1Rvb2xraXRFcnJvcihlcnIpKSB7XG4gICAgLy8gV2UgZG9uJ3QgaGF2ZSBhIHNwZWNpZmljIGVycm9yIGNvZGUsIHJldHVybiB0aGUgZ2VuZXJpYyBvbmUgZnJvbSBvdXIgb3duIGVycm9yIHNldFxuICAgIHJldHVybiBlcnIubmFtZTtcbiAgfVxuXG4gIC8vIE9mZi1saW1pdHMgZXJyb3JcbiAgcmV0dXJuIFVOS05PV05fRVJST1JfQ09ERTtcbn1cblxuLyoqXG4gKiBSZXR1cm4gdGhlIGZpcnN0IGVycm9yIGNhdXNlIHRoYXQgaGFzIGEgc3BlY2lmaWMgZXJyb3IsIGlmIGFueVxuICovXG5mdW5jdGlvbiBmaXJzdFNwZWNpZmljQ2F1c2UoZXJyb3I6IEVycm9yKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgY29uc3QgcmV0ID0gc3BlY2lmaWNFcnJvckNvZGUoZXJyb3IpO1xuICBpZiAocmV0KSB7XG4gICAgcmV0dXJuIHJldDtcbiAgfVxuXG4gIGlmIChlcnJvci5jYXVzZSAmJiBlcnJvci5jYXVzZSBpbnN0YW5jZW9mIEVycm9yKSB7XG4gICAgcmV0dXJuIGZpcnN0U3BlY2lmaWNDYXVzZShlcnJvci5jYXVzZSk7XG4gIH1cblxuICByZXR1cm4gdW5kZWZpbmVkO1xufVxuXG4vKipcbiAqIFJldHVybiBhIHNwZWNpZmljIGVycm9yIGNvZGUgZm9yIHRoZSBnaXZlbiBmdW5jdGlvbiwgb3IgdW5kZWZpbmVkIGlmIHdlIGRvbid0IGhhdmUgYSBzcGVjaWZpYyBjb2RlXG4gKi9cbmZ1bmN0aW9uIHNwZWNpZmljRXJyb3JDb2RlKGVycjogRXJyb3IpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICBpZiAoU2VydmljZUV4Y2VwdGlvbi5pc0luc3RhbmNlKGVycikpIHtcbiAgICAvLyBTREsgYW5kL29yIFNlcnZpY2UgZXJyb3JcbiAgICByZXR1cm4gYHNkazoke2Vyci5uYW1lfWA7XG4gIH1cblxuICBpZiAoVG9vbGtpdEVycm9yLmlzRGVwbG95bWVudEVycm9yKGVycikpIHtcbiAgICByZXR1cm4gYGRlcGxveToke2Vyci5kZXBsb3ltZW50RXJyb3JDb2RlID8/IERlcGxveW1lbnRFcnJvckNvZGVzLlVOS05PV05fRVJST1J9YDtcbiAgfVxuXG4gIGlmIChUb29sa2l0RXJyb3IuaXNBc3NlbWJseUVycm9yKGVycikgJiYgZXJyLnN5bnRoRXJyb3JDb2RlKSB7XG4gICAgLy8gSWYgd2UgaGF2ZSBhIHN5bnRoIGNvZGUsIHJldHVybiB0aGF0XG4gICAgcmV0dXJuIGBzeW50aDoke2Vyci5zeW50aEVycm9yQ29kZX1gO1xuICB9XG5cbiAgLy8gSWYgd2UgaGF2ZSBhIG1vcmUgc3BlY2lmaWMgZXJyb3IgY29kZSB0aGFuIGp1c3QgdGhlIGVycm9yIG5hbWUsIHVzZSB0aGF0XG4gIGNvbnN0IHN0YW5kYXJkRXJyb3JOYW1lcyA9IFtUb29sa2l0RXJyb3IubmFtZSwgQXV0aGVudGljYXRpb25FcnJvci5uYW1lLCBBc3NlbWJseUVycm9yLm5hbWUsIENvbnRleHRQcm92aWRlckVycm9yLm5hbWVdO1xuICBpZiAoVG9vbGtpdEVycm9yLmlzVG9vbGtpdEVycm9yKGVycikgJiYgIXN0YW5kYXJkRXJyb3JOYW1lcy5pbmNsdWRlcyhlcnIubmFtZSkpIHtcbiAgICByZXR1cm4gZXJyLm5hbWU7XG4gIH1cblxuICByZXR1cm4gdW5kZWZpbmVkO1xufVxuIl19