UNPKG

3.15 kBJavaScriptView Raw
1"use strict";
2
3var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
5Object.defineProperty(exports, "__esModule", {
6 value: true
7});
8exports["default"] = runCron;
9
10var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
11
12var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
13
14var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
15
16var _err = _interopRequireDefault(require("@lskjs/err"));
17
18var _nodeCron = _interopRequireDefault(require("node-cron"));
19
20function 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
22function _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
24function 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, /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_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//# sourceMappingURL=runCron.js.map
\No newline at end of file