UNPKG

@reactivehub/cli

Version:
152 lines (110 loc) 4.89 kB
'use strict'; 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