UNPKG

deep-package-manager

Version:
82 lines (67 loc) 1.66 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); exports.SQSDriver = undefined; var _AbstractDriver = require('./AbstractDriver'); var _deepCore = require('deep-core'); var _deepCore2 = _interopRequireDefault(_deepCore); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } class SQSDriver extends _AbstractDriver.AbstractDriver { /** * @param {Object[]} args */ constructor(...args) { super(...args); this._sqs = this.provisioning.sqs; } /** * @returns {String} */ region() { return this.provisioning.sqs.config.region; } /** * @returns {String} */ name() { return _deepCore2.default.AWS.Service.SIMPLE_QUEUE_SERVICE; } /** * @returns {String[]} */ resourcesArns() { let queueUrls = []; let sqsQueues = this.provisioning.config[this.name()].queues; for (let dbolName in sqsQueues) { if (sqsQueues.hasOwnProperty(dbolName)) { queueUrls.push(sqsQueues[dbolName]['url']); } } return queueUrls; } /** * @param {Function} cb */ tag(cb) { let queueUrls = this.resourcesArns(); if (queueUrls.length === 0) { cb(); return; } let promises = queueUrls.map(url => { return this._sqs.tagQueue({ QueueUrl: url, Tags: this.tags }).promise(); }); Promise.all(promises).then(res => { console.debug('SQS resources have been successfully tagged'); cb(); }).catch(err => { console.warn('Error while tagging QSQ resources: ', err); cb(); }); } } exports.SQSDriver = SQSDriver;