UNPKG

deep-package-manager

Version:
109 lines (87 loc) 2.32 kB
/** * Created by CCristi on 3/27/17. */ 'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); exports.AbstractStrategy = undefined; var _deepCore = require('deep-core'); var _deepCore2 = _interopRequireDefault(_deepCore); var _os = require('os'); var _os2 = _interopRequireDefault(_os); var _Prompt = require('../../Helpers/Terminal/Prompt'); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } class AbstractStrategy extends _deepCore2.default.OOP.Interface { /** * @param {Replication/Instance} replication * @param {Boolean} skipDNSActions */ constructor(replication, skipDNSActions) { super(['publish', 'update', 'config']); this._replication = replication; this._skipDNSActions = skipDNSActions; this._config = { hash: replication.hashCode }; } /** * @returns {Boolean|*} */ get skipDNSActions() { return this._skipDNSActions; } /** * @returns {Replication/Instance|*} */ get replication() { return this._replication; } /** * @param {Number} percentage * @returns {AbstractStrategy} */ static chooseStrategyProto(percentage) { if (percentage === 100) { return require('./CompleteStrategy').CompleteStrategy; } else { return require('./BalancedStrategy').BalancedStrategy; } } /** * @param {RecordSetAction[]} recordSetActions * @returns {Boolean} */ askRecordChangePermissions(recordSetActions) { let promptQuestion = ['Following Route53 actions are going to be executed: '].concat(recordSetActions.map(rSetA => rSetA.toString())).concat('Please confirm those changes').join(_os2.default.EOL); let prompt = new _Prompt.Prompt(promptQuestion); let confirmBool = null; prompt.syncMode = true; prompt.readConfirm(confirm => { confirmBool = confirm; }); return confirmBool; } /** * @param {Object} config * @returns {AbstractStrategy|BalancedStrategy} */ updateConfig(config) { this._config = config; this._onConfigUpdate(config); return this; } /** * @returns {Object} */ config() { return this._config; } /** * @private */ _onConfigUpdate() { // inherit this } } exports.AbstractStrategy = AbstractStrategy;