UNPKG

6.59 kBJavaScriptView Raw
1"use strict";
2
3var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
5Object.defineProperty(exports, "__esModule", {
6 value: true
7});
8exports["default"] = runAction;
9
10var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
11
12var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
13
14var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
15
16var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
17
18var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
19
20var _bluebird = _interopRequireDefault(require("bluebird"));
21
22var _isEmpty = _interopRequireDefault(require("lodash/isEmpty"));
23
24var _isObjectLike = _interopRequireDefault(require("lodash/isObjectLike"));
25
26var _actions = _interopRequireDefault(require("../actions"));
27
28var _excluded = ["event", "ctx", "bot"];
29
30function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
31
32function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
33
34function runAction(_x) {
35 return _runAction.apply(this, arguments);
36}
37
38function _runAction() {
39 _runAction = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2(_ref) {
40 var _this = this;
41
42 var event, ctx, bot, props, actions;
43 return _regenerator["default"].wrap(function _callee2$(_context2) {
44 while (1) {
45 switch (_context2.prev = _context2.next) {
46 case 0:
47 event = _ref.event, ctx = _ref.ctx, bot = _ref.bot, props = (0, _objectWithoutProperties2["default"])(_ref, _excluded);
48 actions = props.action;
49
50 if (actions) {
51 _context2.next = 4;
52 break;
53 }
54
55 return _context2.abrupt("return", null);
56
57 case 4:
58 if (!Array.isArray(actions)) actions = [actions];
59
60 if (!(0, _isEmpty["default"])(actions)) {
61 _context2.next = 7;
62 break;
63 }
64
65 return _context2.abrupt("return", null);
66
67 case 7:
68 return _context2.abrupt("return", _bluebird["default"].each(actions, /*#__PURE__*/function () {
69 var _ref2 = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(action) {
70 var type, result, isNotNull;
71 return _regenerator["default"].wrap(function _callee$(_context) {
72 while (1) {
73 switch (_context.prev = _context.next) {
74 case 0:
75 type = action.type;
76 result = null;
77
78 if (!_actions["default"][action]) {
79 _context.next = 6;
80 break;
81 }
82
83 _context.next = 5;
84 return _actions["default"][action].call(_this, _objectSpread({
85 event: event,
86 ctx: ctx,
87 bot: bot
88 }, action));
89
90 case 5:
91 result = _context.sent;
92
93 case 6:
94 if (!_actions["default"][type]) {
95 _context.next = 10;
96 break;
97 }
98
99 _context.next = 9;
100 return _actions["default"][type].call(_this, _objectSpread({
101 event: event,
102 ctx: ctx,
103 bot: bot
104 }, action));
105
106 case 9:
107 result = _context.sent;
108
109 case 10:
110 isNotNull = ['number', 'string', 'boolean'].includes((0, _typeof2["default"])(result)) && !!result || (0, _isObjectLike["default"])(result) && !(0, _isEmpty["default"])(result);
111
112 if (!(action.then && !(0, _isEmpty["default"])(action.then) && isNotNull)) {
113 _context.next = 14;
114 break;
115 }
116
117 _context.next = 14;
118 return _this.runAction({
119 event: event,
120 ctx: ctx,
121 bot: bot,
122 action: action.then
123 });
124
125 case 14:
126 if (!(action["else"] && !(0, _isEmpty["default"])(action["else"]) && !isNotNull)) {
127 _context.next = 17;
128 break;
129 }
130
131 _context.next = 17;
132 return _this.runAction({
133 event: event,
134 ctx: ctx,
135 bot: bot,
136 action: action["else"]
137 });
138
139 case 17:
140 _context.next = 19;
141 return _bluebird["default"].delay(10);
142
143 case 19:
144 return _context.abrupt("return", result);
145
146 case 20:
147 case "end":
148 return _context.stop();
149 }
150 }
151 }, _callee);
152 }));
153
154 return function (_x2) {
155 return _ref2.apply(this, arguments);
156 };
157 }()));
158
159 case 8:
160 case "end":
161 return _context2.stop();
162 }
163 }
164 }, _callee2);
165 }));
166 return _runAction.apply(this, arguments);
167}
168//# sourceMappingURL=_runAction.js.map
\No newline at end of file