1 | "use strict";
|
2 |
|
3 | var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
4 |
|
5 | Object.defineProperty(exports, "__esModule", {
|
6 | value: true
|
7 | });
|
8 | exports["default"] = runCron;
|
9 |
|
10 | var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
11 |
|
12 | var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
13 |
|
14 | var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
15 |
|
16 | var _err = _interopRequireDefault(require("@lskjs/err"));
|
17 |
|
18 | var _nodeCron = _interopRequireDefault(require("node-cron"));
|
19 |
|
20 | function 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; }
|
21 |
|
22 | function _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; }
|
23 |
|
24 | function runCron(_ref) {
|
25 | var _this = this;
|
26 |
|
27 | var bot = _ref.bot;
|
28 | var initedCrons = [];
|
29 | if (!this.rules) return [];
|
30 | this.rules.forEach(function (rule) {
|
31 | if (!rule.cron) return;
|
32 | var action = rule.action;
|
33 | var times = Array.isArray(rule.cron) ? rule.cron : [rule.cron];
|
34 | times.forEach(function (time) {
|
35 | if (!_nodeCron["default"].validate(time)) throw new _err["default"]('CRON_NOT_VALID', {
|
36 | data: {
|
37 | time: time
|
38 | }
|
39 | });
|
40 | initedCrons.push({
|
41 | time: time,
|
42 | rule: rule,
|
43 | schedule: _nodeCron["default"].schedule(time, (0, _asyncToGenerator2["default"])( _regenerator["default"].mark(function _callee() {
|
44 | var actionModule;
|
45 | return _regenerator["default"].wrap(function _callee$(_context) {
|
46 | while (1) {
|
47 | switch (_context.prev = _context.next) {
|
48 | case 0:
|
49 | _this.log.trace("CRON action on '".concat(time, "'"), rule);
|
50 |
|
51 | _context.next = 3;
|
52 | return _this.module('action');
|
53 |
|
54 | case 3:
|
55 | actionModule = _context.sent;
|
56 | actionModule.runAction(action, _objectSpread({
|
57 | bot: bot
|
58 | }, rule));
|
59 |
|
60 | case 5:
|
61 | case "end":
|
62 | return _context.stop();
|
63 | }
|
64 | }
|
65 | }, _callee);
|
66 | })))
|
67 | });
|
68 | });
|
69 | });
|
70 |
|
71 | if (initedCrons.length) {
|
72 | this.log.debug('runCron', initedCrons.map(function (cron) {
|
73 | return cron.time;
|
74 | }));
|
75 | }
|
76 |
|
77 | return initedCrons;
|
78 | }
|
79 |
|
\ | No newline at end of file |