deep-package-manager
Version:
DEEP Package Manager
94 lines (72 loc) • 2.18 kB
JavaScript
/**
* Created by AlexanderC on 5/25/15.
*/
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.ProvisioningCollisionsListingException = undefined;
var _Exception = require('../../Exception/Exception');
var _os = require('os');
var _os2 = _interopRequireDefault(_os);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
class ProvisioningCollisionsListingException extends _Exception.Exception {
/**
* @param {Object} errorsObj
*/
constructor(errorsObj) {
let plainError = ProvisioningCollisionsListingException._stringifyErrorsObj(errorsObj);
super(`Error while listing AWS resources:${_os2.default.EOL}${plainError}`);
this._errorsObj = errorsObj;
}
/**
* @returns {String}
*/
get stringifiedErrorsObj() {
return ProvisioningCollisionsListingException._stringifyErrorsObj(this._errorsObj);
}
/**
* @param {Object} result
* @returns {String}
* @private
*/
static _stringifyErrorsObj(result) {
// back compatibility hook for old result format
if (result.hasOwnProperty('errors')) {
return ProvisioningCollisionsListingException._stringifyErrors(result.errors);
}
let output = '';
for (let regionName in result) {
if (!result.hasOwnProperty(regionName)) {
continue;
}
let regionErrors = result[regionName].errors;
output += `Errors in ${regionName} region: ${_os2.default.EOL}`;
output += ProvisioningCollisionsListingException._stringifyErrors(regionErrors);
}
return output;
}
/**
* @param {*} errorsObj
* @returns {String}
* @private
*/
static _stringifyErrors(errorsObj) {
let output = '';
for (let resourceName in errorsObj) {
if (!errorsObj.hasOwnProperty(resourceName)) {
continue;
}
let error = errorsObj[resourceName];
output += `- ${resourceName}: ${error}${_os2.default.EOL}`;
}
return output;
}
/**
* @returns {Object}
*/
get errorsObj() {
return this._errorsObj;
}
}
exports.ProvisioningCollisionsListingException = ProvisioningCollisionsListingException;