@reactivehub/cli
Version:
152 lines (110 loc) • 4.89 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
var _asyncToGenerator2 = require('babel-runtime/helpers/asyncToGenerator');
var _asyncToGenerator3 = _interopRequireDefault(_asyncToGenerator2);
var _chalk = require('chalk');
var _chalk2 = _interopRequireDefault(_chalk);
var _config = require('../core/config');
var _config2 = _interopRequireDefault(_config);
var _listener = require('../core/listener');
var _listener2 = _interopRequireDefault(_listener);
var _messages = require('../messages');
var _messages2 = _interopRequireDefault(_messages);
var _actions = require('../core/actions');
var _actions2 = _interopRequireDefault(_actions);
var _filter = require('../core/filter');
var _filter2 = _interopRequireDefault(_filter);
var _inquirer = require('../libs/inquirer');
var _inquirer2 = _interopRequireDefault(_inquirer);
var _check = require('./check');
var _check2 = _interopRequireDefault(_check);
var _triggers = require('./questions/triggers');
var _triggers2 = _interopRequireDefault(_triggers);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
const { getTriggerModels, selectAvailableTriggers } = _listener2.default;
const addListener = program => {
program.command('add:listener <type>').description('Add event listener').action((() => {
var _ref = (0, _asyncToGenerator3.default)(function* (type) {
_config2.default.getConfigurationFile();
return _listener2.default.addListener(type);
});
return function (_x) {
return _ref.apply(this, arguments);
};
})());
};
/* eslint-disable no-param-reassign */
const gatherInputParameters = (() => {
var _ref2 = (0, _asyncToGenerator3.default)(function* (triggerEvent, eventId, filterId, actionId) {
if (!triggerEvent) {
({ id: triggerEvent } = yield (0, _inquirer2.default)(_triggers2.default.enterTriggerEvent));
}
if (!eventId) {
({ id: eventId } = yield (0, _inquirer2.default)(_triggers2.default.enterEventId));
}
if (!filterId) {
const filterIdQuestion = _triggers2.default.enterFilterId;
filterIdQuestion.choices = _filter2.default.getAllFilters(eventId).map(function (i) {
return i.id;
});
({ id: filterId } = yield (0, _inquirer2.default)(filterIdQuestion));
}
if (!actionId) {
const actionIdQuestion = _triggers2.default.enterActionId;
actionIdQuestion.choices = _actions2.default.getActions(eventId, filterId).map(function (i) {
return i.id;
});
({ id: actionId } = yield (0, _inquirer2.default)(_triggers2.default.enterActionId));
}
return { triggerEvent, eventId, filterId, actionId };
});
return function gatherInputParameters(_x2, _x3, _x4, _x5) {
return _ref2.apply(this, arguments);
};
})();
/**
* Adds a trigger (another event) to be called in the case of success or failure of
* an event action.
*/
const addActionTrigger = program => {
program.command('add:trigger [triggerEvent] [eventId] [filterId] [actionId]').description('Add a new trigger to an action').action((() => {
var _ref3 = (0, _asyncToGenerator3.default)(function* (triggerEvent, eventId, filterId, actionId) {
try {
_config2.default.getConfigurationFile();
if ([triggerEvent, eventId, filterId, actionId].includes(undefined)) {
({ triggerEvent, eventId, filterId, actionId } = yield gatherInputParameters(triggerEvent, eventId, filterId, actionId));
}
if (!_check2.default.checkTrigger(triggerEvent)) return false;
if (!_check2.default.checkEvent(eventId)) return false;
if (!_check2.default.checkFilter(eventId, filterId)) return false;
if (!_check2.default.checkAction(eventId, filterId, actionId)) return false;
const eventsToBeCalled = yield selectAvailableTriggers({ ignoredEvents: [eventId] });
if (eventsToBeCalled.length === 0) return false;
const triggerModels = yield getTriggerModels(eventsToBeCalled);
const created = _actions2.default.createTrigger({ triggerEvent, triggerModels, eventId, filterId, actionId });
if (created) {
const eventIds = eventsToBeCalled.map(function (e) {
return e.eventId;
});
_messages2.default.success(`Trigger created: ${_chalk2.default.blue.bold(eventIds)} will be called ` + `under the condition ${_chalk2.default.blue.bold(triggerEvent)} ` + `of action action ${_chalk2.default.blue.bold(`${actionId}`)}`);
}
return created;
} catch (e) {
console.error(e);
return false;
}
});
return function (_x6, _x7, _x8, _x9) {
return _ref3.apply(this, arguments);
};
})());
};
exports.default = {
init: program => {
addListener(program);
},
addActionTrigger
};
//# sourceMappingURL=triggers.js.map