deep-package-manager
Version:
DEEP Package Manager
79 lines (62 loc) • 1.88 kB
JavaScript
/**
* Created by AlexanderC on 5/25/15.
*/
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.ProvisioningCollisionsDetectedException = 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 ProvisioningCollisionsDetectedException extends _Exception.Exception {
/**
* @param {Object} resourcesObj
* @param {String} collisionHash
*/
constructor(resourcesObj, collisionHash) {
let plainError = ProvisioningCollisionsDetectedException._stringifyResourcesObj(resourcesObj);
super(`The following AWS resources may collision:${_os2.default.EOL}${plainError}`);
this._resourcesObj = resourcesObj;
this._collisionHash = collisionHash;
}
/**
* @returns {String}
*/
get stringifiedResourcesObj() {
return ProvisioningCollisionsDetectedException._stringifyResourcesObj(this._resourcesObj);
}
/**
* @param {Object} resourcesObj
* @returns {String}
* @private
*/
static _stringifyResourcesObj(resourcesObj) {
let output = '';
for (let resourceName in resourcesObj) {
if (!resourcesObj.hasOwnProperty(resourceName)) {
continue;
}
let resources = resourcesObj[resourceName];
let resourcesKeys = Object.keys(resources);
if (resourcesKeys.length > 0) {
output += `- ${resourceName}: ${resourcesKeys.join(', ')}${_os2.default.EOL}`;
}
}
return output;
}
/**
* @returns {String}
*/
get collisionHash() {
return this._collisionHash;
}
/**
* @returns {Object}
*/
get resourcesObj() {
return this._resourcesObj;
}
}
exports.ProvisioningCollisionsDetectedException = ProvisioningCollisionsDetectedException;