UNPKG

aws-cdk

Version:

AWS CDK CLI, the command line tool for CDK apps

68 lines 7.66 kB
"use strict"; 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