@resolveio/server-lib 1.0.0-rc28 → 1.0.0-rc4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/collections/active-subscription.collection.js +2 -68
- package/collections/app-status.collection.js +2 -43
- package/collections/app-version.collection.js +2 -56
- package/collections/counter.collection.js +2 -73
- package/collections/cron-job-history.collection.js +2 -86
- package/collections/cron-job.collection.js +2 -89
- package/collections/file.collection.js +2 -73
- package/collections/flag.collection.js +2 -47
- package/collections/log.collection.js +2 -64
- package/collections/logged-in-users.collection.js +2 -70
- package/collections/method-call.collection.js +2 -44
- package/collections/method-response.collection.js +2 -48
- package/collections/queue-flag.collection.js +2 -41
- package/collections/queue-method.collection.js +2 -116
- package/collections/queue-response.collection.js +2 -78
- package/collections/support-ticket.collection.js +2 -146
- package/collections/user.collection.js +2 -108
- package/cron/cron.js +2 -160
- package/fixtures/cron-jobs.js +2 -72
- package/fixtures/init.js +2 -73
- package/http/auth.js +2 -472
- package/http/health.js +2 -8
- package/index.js +2 -125
- package/managers/cron.manager.js +2 -193
- package/managers/method.manager.js +2 -544
- package/managers/queue-method.manager.js +2 -239
- package/managers/subscription.manager.js +2 -700
- package/managers/support.manager.js +2 -208
- package/methods/accounts.js +2 -253
- package/methods/aws.js +2 -345
- package/methods/cloudconvert.js +2 -37
- package/methods/collections.js +2 -738
- package/methods/counters.js +2 -404
- package/methods/cron-jobs.js +2 -63
- package/methods/flags.js +2 -6
- package/methods/logs.js +2 -29
- package/methods/pdf.js +2 -303
- package/models/active-subscription.model.js +2 -2
- package/models/app-status.model.js +2 -2
- package/models/app-version.model.js +2 -2
- package/models/collection-document.model.js +2 -2
- package/models/counter.model.js +2 -2
- package/models/cron-job-history.model.js +2 -2
- package/models/cron-job.model.js +2 -2
- package/models/dialog.model.js +2 -2
- package/models/file.model.js +2 -2
- package/models/flag.model.js +2 -2
- package/models/log.model.js +2 -2
- package/models/logged-in-users.model.js +2 -2
- package/models/method-call.model.js +2 -2
- package/models/method-response.model.js +2 -2
- package/models/method.model.js +2 -2
- package/models/pagination.model.js +2 -20
- package/models/permission.model.js +2 -2
- package/models/queue-method.model.js +2 -2
- package/models/queue-response.model.js +2 -2
- package/models/select-data-label.model.js +2 -2
- package/models/server-response.model.js +2 -2
- package/models/subscription.model.js +2 -2
- package/models/support-method.model.js +2 -2
- package/models/support-ticket.model.js +2 -2
- package/models/user.model.js +2 -2
- package/package.json +2 -4
- package/publications/app-status.js +2 -14
- package/publications/app-version.js +2 -14
- package/publications/cron-jobs.js +2 -14
- package/publications/files.js +2 -71
- package/publications/flags.js +2 -23
- package/publications/logs.js +2 -26
- package/publications/method-calls.js +2 -14
- package/publications/method-responses.js +2 -14
- package/publications/super-admin.js +2 -21
- package/publications/support-tickets.js +2 -118
- package/server-app.js +2 -641
- package/support-methods/aws.js +2 -276
- package/support-methods/collections.js +2 -471
- package/support-methods/counters.js +2 -189
- package/support-methods/support.js +2 -19
- package/util/common.js +2 -334
- package/collections/active-subscription.collection.d.ts +0 -8
- package/collections/app-status.collection.d.ts +0 -8
- package/collections/app-version.collection.d.ts +0 -8
- package/collections/counter.collection.d.ts +0 -10
- package/collections/cron-job-history.collection.d.ts +0 -8
- package/collections/cron-job.collection.d.ts +0 -8
- package/collections/file.collection.d.ts +0 -10
- package/collections/flag.collection.d.ts +0 -8
- package/collections/log.collection.d.ts +0 -8
- package/collections/logged-in-users.collection.d.ts +0 -8
- package/collections/method-call.collection.d.ts +0 -7
- package/collections/method-response.collection.d.ts +0 -7
- package/collections/queue-flag.collection.d.ts +0 -8
- package/collections/queue-method.collection.d.ts +0 -8
- package/collections/queue-response.collection.d.ts +0 -8
- package/collections/support-ticket.collection.d.ts +0 -8
- package/collections/user.collection.d.ts +0 -9
- package/cron/cron.d.ts +0 -6
- package/fixtures/cron-jobs.d.ts +0 -2
- package/fixtures/init.d.ts +0 -2
- package/http/auth.d.ts +0 -3
- package/http/health.d.ts +0 -2
- package/index.d.ts +0 -17
- package/managers/cron.manager.d.ts +0 -17
- package/managers/method.manager.d.ts +0 -28
- package/managers/queue-method.manager.d.ts +0 -14
- package/managers/subscription.manager.d.ts +0 -27
- package/managers/support.manager.d.ts +0 -18
- package/methods/accounts.d.ts +0 -3
- package/methods/aws.d.ts +0 -3
- package/methods/cloudconvert.d.ts +0 -3
- package/methods/collections.d.ts +0 -3
- package/methods/counters.d.ts +0 -3
- package/methods/cron-jobs.d.ts +0 -3
- package/methods/flags.d.ts +0 -3
- package/methods/logs.d.ts +0 -3
- package/methods/pdf.d.ts +0 -3
- package/models/active-subscription.model.d.ts +0 -14
- package/models/app-status.model.d.ts +0 -5
- package/models/app-version.model.d.ts +0 -5
- package/models/collection-document.model.d.ts +0 -7
- package/models/counter.model.d.ts +0 -6
- package/models/cron-job-history.model.d.ts +0 -13
- package/models/cron-job.model.d.ts +0 -14
- package/models/dialog.model.d.ts +0 -24
- package/models/file.model.d.ts +0 -10
- package/models/flag.model.d.ts +0 -6
- package/models/log.model.d.ts +0 -12
- package/models/logged-in-users.model.d.ts +0 -10
- package/models/method-call.model.d.ts +0 -8
- package/models/method-response.model.d.ts +0 -9
- package/models/method.model.d.ts +0 -11
- package/models/notification.model.d.ts +0 -5
- package/models/notification.model.js +0 -2
- package/models/pagination.model.d.ts +0 -12
- package/models/permission.model.d.ts +0 -13
- package/models/queue-method.model.d.ts +0 -10
- package/models/queue-response.model.d.ts +0 -11
- package/models/select-data-label.model.d.ts +0 -10
- package/models/server-response.model.d.ts +0 -6
- package/models/subscription.model.d.ts +0 -31
- package/models/support-method.model.d.ts +0 -10
- package/models/support-ticket.model.d.ts +0 -40
- package/models/user.model.d.ts +0 -15
- package/publications/app-status.d.ts +0 -3
- package/publications/app-version.d.ts +0 -3
- package/publications/cron-jobs.d.ts +0 -3
- package/publications/files.d.ts +0 -3
- package/publications/flags.d.ts +0 -3
- package/publications/logs.d.ts +0 -3
- package/publications/method-calls.d.ts +0 -3
- package/publications/method-responses.d.ts +0 -3
- package/publications/super-admin.d.ts +0 -3
- package/publications/support-tickets.d.ts +0 -2
- package/server-app.d.ts +0 -34
- package/support-methods/aws.d.ts +0 -3
- package/support-methods/collections.d.ts +0 -3
- package/support-methods/counters.d.ts +0 -3
- package/support-methods/support.d.ts +0 -3
- package/util/common.d.ts +0 -15
package/index.js
CHANGED
|
@@ -1,125 +1,2 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
-
function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }
|
|
7
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
-
});
|
|
9
|
-
};
|
|
10
|
-
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
11
|
-
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
12
|
-
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
13
|
-
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
14
|
-
function step(op) {
|
|
15
|
-
if (f) throw new TypeError("Generator is already executing.");
|
|
16
|
-
while (_) try {
|
|
17
|
-
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
18
|
-
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
19
|
-
switch (op[0]) {
|
|
20
|
-
case 0: case 1: t = op; break;
|
|
21
|
-
case 4: _.label++; return { value: op[1], done: false };
|
|
22
|
-
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
23
|
-
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
24
|
-
default:
|
|
25
|
-
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
26
|
-
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
27
|
-
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
28
|
-
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
29
|
-
if (t[2]) _.ops.pop();
|
|
30
|
-
_.trys.pop(); continue;
|
|
31
|
-
}
|
|
32
|
-
op = body.call(thisArg, _);
|
|
33
|
-
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
34
|
-
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
35
|
-
}
|
|
36
|
-
};
|
|
37
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
38
|
-
var mongoose = require("mongoose");
|
|
39
|
-
var ResolveIOServer = /** @class */ (function () {
|
|
40
|
-
function ResolveIOServer(serverConfig, client, clientDir, _dontRunSupport) {
|
|
41
|
-
ResolveIOServer._serverConfig = serverConfig;
|
|
42
|
-
ResolveIOServer._client = client;
|
|
43
|
-
ResolveIOServer._clientDir = clientDir;
|
|
44
|
-
if (_dontRunSupport) {
|
|
45
|
-
ResolveIOServer._dontRunSupport = _dontRunSupport;
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
ResolveIOServer.connectAndRun = function () {
|
|
49
|
-
var _this = this;
|
|
50
|
-
return new Promise(function (resolve, reject) {
|
|
51
|
-
if (ResolveIOServer._serverConfig['ROOT_URL'] !== 'http://localhost:4200' && !_this._dontRunSupport) {
|
|
52
|
-
mongoose.createConnection(ResolveIOServer._serverConfig['RESOLVEIO_SUPPORT_MONGO_URL'], { useNewUrlParser: true }).then(function (db) { return __awaiter(_this, void 0, void 0, function () {
|
|
53
|
-
var _this = this;
|
|
54
|
-
return __generator(this, function (_a) {
|
|
55
|
-
ResolveIOServer._supportDB = db;
|
|
56
|
-
mongoose.createConnection(ResolveIOServer._serverConfig['MONGO_URL'], { useNewUrlParser: true }).then(function (dbMain) { return __awaiter(_this, void 0, void 0, function () {
|
|
57
|
-
var serverApp;
|
|
58
|
-
return __generator(this, function (_a) {
|
|
59
|
-
switch (_a.label) {
|
|
60
|
-
case 0:
|
|
61
|
-
ResolveIOServer._mainDB = dbMain;
|
|
62
|
-
return [4 /*yield*/, Promise.resolve().then(function () { return require('./server-app'); })];
|
|
63
|
-
case 1:
|
|
64
|
-
serverApp = (_a.sent()).default;
|
|
65
|
-
ResolveIOServer._mainServer = new serverApp(this, ResolveIOServer._serverConfig, this._clientDir);
|
|
66
|
-
resolve();
|
|
67
|
-
return [2 /*return*/];
|
|
68
|
-
}
|
|
69
|
-
});
|
|
70
|
-
}); }, function (err) {
|
|
71
|
-
process.exit();
|
|
72
|
-
reject();
|
|
73
|
-
});
|
|
74
|
-
return [2 /*return*/];
|
|
75
|
-
});
|
|
76
|
-
}); }, function (err) {
|
|
77
|
-
process.exit();
|
|
78
|
-
reject();
|
|
79
|
-
});
|
|
80
|
-
}
|
|
81
|
-
else {
|
|
82
|
-
ResolveIOServer._supportDB = null;
|
|
83
|
-
mongoose.createConnection(ResolveIOServer._serverConfig['MONGO_URL'], { useNewUrlParser: true }).then(function (dbMain) { return __awaiter(_this, void 0, void 0, function () {
|
|
84
|
-
var serverApp;
|
|
85
|
-
return __generator(this, function (_a) {
|
|
86
|
-
switch (_a.label) {
|
|
87
|
-
case 0:
|
|
88
|
-
ResolveIOServer._mainDB = dbMain;
|
|
89
|
-
return [4 /*yield*/, Promise.resolve().then(function () { return require('./server-app'); })];
|
|
90
|
-
case 1:
|
|
91
|
-
serverApp = (_a.sent()).default;
|
|
92
|
-
ResolveIOServer._mainServer = new serverApp(this, ResolveIOServer._serverConfig, this._clientDir);
|
|
93
|
-
resolve();
|
|
94
|
-
return [2 /*return*/];
|
|
95
|
-
}
|
|
96
|
-
});
|
|
97
|
-
}); }, function (err) {
|
|
98
|
-
process.exit();
|
|
99
|
-
reject();
|
|
100
|
-
});
|
|
101
|
-
}
|
|
102
|
-
});
|
|
103
|
-
};
|
|
104
|
-
ResolveIOServer.getClientName = function () {
|
|
105
|
-
return this._client;
|
|
106
|
-
};
|
|
107
|
-
ResolveIOServer.getMainServer = function () {
|
|
108
|
-
return ResolveIOServer._mainServer;
|
|
109
|
-
};
|
|
110
|
-
ResolveIOServer.getMainDB = function () {
|
|
111
|
-
return ResolveIOServer._mainDB;
|
|
112
|
-
};
|
|
113
|
-
ResolveIOServer.getSupportDB = function () {
|
|
114
|
-
return ResolveIOServer._supportDB;
|
|
115
|
-
};
|
|
116
|
-
ResolveIOServer._serverConfig = null;
|
|
117
|
-
ResolveIOServer._mainDB = null;
|
|
118
|
-
ResolveIOServer._supportDB = null;
|
|
119
|
-
ResolveIOServer._mainServer = null;
|
|
120
|
-
ResolveIOServer._client = '';
|
|
121
|
-
ResolveIOServer._clientDir = '';
|
|
122
|
-
ResolveIOServer._dontRunSupport = false;
|
|
123
|
-
return ResolveIOServer;
|
|
124
|
-
}());
|
|
125
|
-
exports.ResolveIOServer = ResolveIOServer;
|
|
1
|
+
"use strict";var __awaiter=this&&this.__awaiter||function(i,c,l,u){return new(l||(l=Promise))(function(e,r){function o(e){try{n(u.next(e))}catch(e){r(e)}}function t(e){try{n(u.throw(e))}catch(e){r(e)}}function n(r){r.done?e(r.value):new l(function(e){e(r.value)}).then(o,t)}n((u=u.apply(i,c||[])).next())})},__generator=this&&this.__generator||function(o,t){var n,i,c,e,l={label:0,sent:function(){if(1&c[0])throw c[1];return c[1]},trys:[],ops:[]};return e={next:r(0),throw:r(1),return:r(2)},"function"==typeof Symbol&&(e[Symbol.iterator]=function(){return this}),e;function r(r){return function(e){return function(r){if(n)throw new TypeError("Generator is already executing.");for(;l;)try{if(n=1,i&&(c=2&r[0]?i.return:r[0]?i.throw||((c=i.return)&&c.call(i),0):i.next)&&!(c=c.call(i,r[1])).done)return c;switch(i=0,c&&(r=[2&r[0],c.value]),r[0]){case 0:case 1:c=r;break;case 4:return l.label++,{value:r[1],done:!1};case 5:l.label++,i=r[1],r=[0];continue;case 7:r=l.ops.pop(),l.trys.pop();continue;default:if(!(c=0<(c=l.trys).length&&c[c.length-1])&&(6===r[0]||2===r[0])){l=0;continue}if(3===r[0]&&(!c||r[1]>c[0]&&r[1]<c[3])){l.label=r[1];break}if(6===r[0]&&l.label<c[1]){l.label=c[1],c=r;break}if(c&&l.label<c[2]){l.label=c[2],l.ops.push(r);break}c[2]&&l.ops.pop(),l.trys.pop();continue}r=t.call(o,l)}catch(e){r=[6,e],i=0}finally{n=c=0}if(5&r[0])throw r[1];return{value:r[0]?r[1]:void 0,done:!0}}([r,e])}}};function __export(e){for(var r in e)exports.hasOwnProperty(r)||(exports[r]=e[r])}Object.defineProperty(exports,"__esModule",{value:!0});var mongoose=require("mongoose"),server_app_1=require("./server-app"),ResolveIOServer=function(){function n(t,e){var o=this;n._serverConfig=t,n._client=e,"http://localhost:4200"!==t.ROOT_URL?mongoose.createConnection(t.RESOLVEIO_SUPPORT_MONGO_URL,{useNewUrlParser:!0}).then(function(r){return __awaiter(o,void 0,void 0,function(){var o=this;return __generator(this,function(e){return n._supportDB=r,mongoose.createConnection(t.MONGO_URL,{useNewUrlParser:!0}).then(function(r){return __awaiter(o,void 0,void 0,function(){return __generator(this,function(e){return n._mainDB=r,n._mainServer=new server_app_1.ResolveIOMainServer(this,n._serverConfig),[2]})})},function(e){process.exit()}),[2]})})},function(e){process.exit()}):(n._supportDB=null,mongoose.createConnection(t.MONGO_URL,{useNewUrlParser:!0}).then(function(r){return __awaiter(o,void 0,void 0,function(){return __generator(this,function(e){return n._mainDB=r,n._mainServer=new server_app_1.ResolveIOMainServer(this,n._serverConfig),[2]})})},function(e){process.exit()}))}return n.getClientName=function(){return this._client},n.getMainServer=function(){return n._mainServer},n.getMainDB=function(){return n._mainDB},n.getSupportDB=function(){return n._supportDB},n._serverConfig=null,n._mainDB=null,n._supportDB=null,n._mainServer=null,n._client="",n}();exports.default=ResolveIOServer,__export(require("./collections/active-subscription.collection")),__export(require("./collections/app-status.collection")),__export(require("./collections/app-version.collection")),__export(require("./collections/counter.collection")),__export(require("./collections/cron-job-history.collection")),__export(require("./collections/cron-job.collection")),__export(require("./collections/file.collection")),__export(require("./collections/flag.collection")),__export(require("./collections/log.collection")),__export(require("./collections/logged-in-users.collection")),__export(require("./collections/method-call.collection")),__export(require("./collections/method-response.collection")),__export(require("./collections/queue-flag.collection")),__export(require("./collections/queue-method.collection")),__export(require("./collections/queue-response.collection")),__export(require("./collections/support-ticket.collection")),__export(require("./collections/user.collection")),__export(require("./managers/cron.manager")),__export(require("./managers/method.manager")),__export(require("./managers/queue-method.manager")),__export(require("./managers/subscription.manager")),__export(require("./managers/support.manager")),__export(require("./models/pagination.model"));
|
|
2
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9pbmRleC50cyJdLCJuYW1lcyI6WyJtb25nb29zZSIsInJlcXVpcmUiLCJzZXJ2ZXJfYXBwXzEiLCJSZXNvbHZlSU9TZXJ2ZXIiLCJzZXJ2ZXJDb25maWciLCJjbGllbnQiLCJfdGhpcyIsInRoaXMiLCJfc2VydmVyQ29uZmlnIiwiX2NsaWVudCIsImNyZWF0ZUNvbm5lY3Rpb24iLCJ1c2VOZXdVcmxQYXJzZXIiLCJ0aGVuIiwiZGIiLCJfX2F3YWl0ZXIiLCJfc3VwcG9ydERCIiwiZGJNYWluIiwiX21haW5EQiIsIl9tYWluU2VydmVyIiwiUmVzb2x2ZUlPTWFpblNlcnZlciIsImVyciIsInByb2Nlc3MiLCJleGl0IiwiZ2V0Q2xpZW50TmFtZSIsImdldE1haW5TZXJ2ZXIiLCJnZXRNYWluREIiLCJnZXRTdXBwb3J0REIiLCJfX2V4cG9ydCJdLCJtYXBwaW5ncyI6InFnREFBQSxJQUFBQSxTQUFBQyxRQUFBLFlBQ0FDLGFBQUFELFFBQUEsZ0JBRUFFLGdCQUFBLFdBT0MsU0FBQUEsRUFBWUMsRUFBY0MsR0FBMUIsSUFBQUMsRUFBQUMsS0FFQ0osRUFBZ0JLLGNBQWdCSixFQUNoQ0QsRUFBZ0JNLFFBQVVKLEVBRU8sMEJBQTdCRCxFQUF1QixTQUMxQkosU0FBU1UsaUJBQWlCTixFQUEwQyw0QkFBRyxDQUFFTyxpQkFBaUIsSUFBUUMsS0FBSyxTQUFPQyxHQUFFLE9BQUFDLFVBQUFSLE9BQUEsT0FBQSxFQUFBLGlFQUMvR0gsRUFBZ0JZLFdBQWFGLEVBRTdCYixTQUFTVSxpQkFBaUJOLEVBQXdCLFVBQUcsQ0FBRU8saUJBQWlCLElBQVFDLEtBQUssU0FBT0ksR0FBTSxPQUFBRixVQUFBUixPQUFBLE9BQUEsRUFBQSxzREFDakdILEVBQWdCYyxRQUFVRCxFQUMxQmIsRUFBZ0JlLFlBQWMsSUFBSWhCLGFBQUFpQixvQkFBb0JaLEtBQU1KLEVBQWdCSyx3QkFDMUUsU0FBQ1ksR0FDSEMsUUFBUUMsa0JBRVAsU0FBQ0YsR0FDSEMsUUFBUUMsVUFJVG5CLEVBQWdCWSxXQUFhLEtBRTdCZixTQUFTVSxpQkFBaUJOLEVBQXdCLFVBQUcsQ0FBRU8saUJBQWlCLElBQVFDLEtBQUssU0FBT0ksR0FBTSxPQUFBRixVQUFBUixPQUFBLE9BQUEsRUFBQSxzREFDakdILEVBQWdCYyxRQUFVRCxFQUMxQmIsRUFBZ0JlLFlBQWMsSUFBSWhCLGFBQUFpQixvQkFBb0JaLEtBQU1KLEVBQWdCSyx3QkFDMUUsU0FBQ1ksR0FDSEMsUUFBUUMsVUFvQlosT0FmZW5CLEVBQUFvQixjQUFkLFdBQ0MsT0FBT2hCLEtBQUtFLFNBR0NOLEVBQUFxQixjQUFkLFdBQ0MsT0FBT3JCLEVBQWdCZSxhQUdWZixFQUFBc0IsVUFBZCxXQUNDLE9BQU90QixFQUFnQmMsU0FHVmQsRUFBQXVCLGFBQWQsV0FDQyxPQUFPdkIsRUFBZ0JZLFlBbERUWixFQUFBSyxjQUFnQixLQUNoQkwsRUFBQWMsUUFBVSxLQUNWZCxFQUFBWSxXQUFhLEtBQ2JaLEVBQUFlLFlBQWMsS0FDZGYsRUFBQU0sUUFBVSxHQWdEMUJOLEVBckRBLG1CQUFxQkEsZ0JBdURyQndCLFNBQUExQixRQUFBLGlEQUNBMEIsU0FBQTFCLFFBQUEsd0NBQ0EwQixTQUFBMUIsUUFBQSx5Q0FDQTBCLFNBQUExQixRQUFBLHFDQUNBMEIsU0FBQTFCLFFBQUEsOENBQ0EwQixTQUFBMUIsUUFBQSxzQ0FDQTBCLFNBQUExQixRQUFBLGtDQUNBMEIsU0FBQTFCLFFBQUEsa0NBQ0EwQixTQUFBMUIsUUFBQSxpQ0FDQTBCLFNBQUExQixRQUFBLDZDQUNBMEIsU0FBQTFCLFFBQUEseUNBQ0EwQixTQUFBMUIsUUFBQSw2Q0FDQTBCLFNBQUExQixRQUFBLHdDQUNBMEIsU0FBQTFCLFFBQUEsMENBQ0EwQixTQUFBMUIsUUFBQSw0Q0FDQTBCLFNBQUExQixRQUFBLDRDQUNBMEIsU0FBQTFCLFFBQUEsa0NBQ0EwQixTQUFBMUIsUUFBQSw0QkFDQTBCLFNBQUExQixRQUFBLDhCQUNBMEIsU0FBQTFCLFFBQUEsb0NBQ0EwQixTQUFBMUIsUUFBQSxvQ0FDQTBCLFNBQUExQixRQUFBLCtCQWFBMEIsU0FBQTFCLFFBQUEiLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBtb25nb29zZSBmcm9tICdtb25nb29zZSc7XG5pbXBvcnQgeyBSZXNvbHZlSU9NYWluU2VydmVyIH0gZnJvbSAnLi9zZXJ2ZXItYXBwJztcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgUmVzb2x2ZUlPU2VydmVyIHtcblx0cHJpdmF0ZSBzdGF0aWMgX3NlcnZlckNvbmZpZyA9IG51bGw7XG5cdHByaXZhdGUgc3RhdGljIF9tYWluREIgPSBudWxsO1xuXHRwcml2YXRlIHN0YXRpYyBfc3VwcG9ydERCID0gbnVsbDtcblx0cHJpdmF0ZSBzdGF0aWMgX21haW5TZXJ2ZXIgPSBudWxsO1xuXHRwcml2YXRlIHN0YXRpYyBfY2xpZW50ID0gJyc7XG5cblx0Y29uc3RydWN0b3Ioc2VydmVyQ29uZmlnLCBjbGllbnQ6IHN0cmluZykge1xuXG5cdFx0UmVzb2x2ZUlPU2VydmVyLl9zZXJ2ZXJDb25maWcgPSBzZXJ2ZXJDb25maWc7XG5cdFx0UmVzb2x2ZUlPU2VydmVyLl9jbGllbnQgPSBjbGllbnQ7XG5cblx0XHRpZiAoc2VydmVyQ29uZmlnWydST09UX1VSTCddICE9PSAnaHR0cDovL2xvY2FsaG9zdDo0MjAwJykge1xuXHRcdFx0bW9uZ29vc2UuY3JlYXRlQ29ubmVjdGlvbihzZXJ2ZXJDb25maWdbJ1JFU09MVkVJT19TVVBQT1JUX01PTkdPX1VSTCddLCB7IHVzZU5ld1VybFBhcnNlcjogdHJ1ZSB9KS50aGVuKGFzeW5jIChkYikgPT4ge1xuXHRcdFx0XHRSZXNvbHZlSU9TZXJ2ZXIuX3N1cHBvcnREQiA9IGRiO1xuXHRcdFx0XG5cdFx0XHRcdG1vbmdvb3NlLmNyZWF0ZUNvbm5lY3Rpb24oc2VydmVyQ29uZmlnWydNT05HT19VUkwnXSwgeyB1c2VOZXdVcmxQYXJzZXI6IHRydWUgfSkudGhlbihhc3luYyAoZGJNYWluKSA9PiB7XG5cdFx0XHRcdFx0UmVzb2x2ZUlPU2VydmVyLl9tYWluREIgPSBkYk1haW47XG5cdFx0XHRcdFx0UmVzb2x2ZUlPU2VydmVyLl9tYWluU2VydmVyID0gbmV3IFJlc29sdmVJT01haW5TZXJ2ZXIodGhpcywgUmVzb2x2ZUlPU2VydmVyLl9zZXJ2ZXJDb25maWcpO1xuXHRcdFx0XHR9LCAoZXJyKSA9PiB7XG5cdFx0XHRcdFx0cHJvY2Vzcy5leGl0KCk7XG5cdFx0XHRcdH0pO1xuXHRcdFx0fSwgKGVycikgPT4ge1xuXHRcdFx0XHRwcm9jZXNzLmV4aXQoKTtcblx0XHRcdH0pO1xuXHRcdH1cblx0XHRlbHNlIHtcblx0XHRcdFJlc29sdmVJT1NlcnZlci5fc3VwcG9ydERCID0gbnVsbDtcblx0XHRcdFxuXHRcdFx0bW9uZ29vc2UuY3JlYXRlQ29ubmVjdGlvbihzZXJ2ZXJDb25maWdbJ01PTkdPX1VSTCddLCB7IHVzZU5ld1VybFBhcnNlcjogdHJ1ZSB9KS50aGVuKGFzeW5jIChkYk1haW4pID0+IHtcblx0XHRcdFx0UmVzb2x2ZUlPU2VydmVyLl9tYWluREIgPSBkYk1haW47XG5cdFx0XHRcdFJlc29sdmVJT1NlcnZlci5fbWFpblNlcnZlciA9IG5ldyBSZXNvbHZlSU9NYWluU2VydmVyKHRoaXMsIFJlc29sdmVJT1NlcnZlci5fc2VydmVyQ29uZmlnKTtcblx0XHRcdH0sIChlcnIpID0+IHtcblx0XHRcdFx0cHJvY2Vzcy5leGl0KCk7XG5cdFx0XHR9KTtcblx0XHR9XG5cdH1cblxuXHRwdWJsaWMgc3RhdGljIGdldENsaWVudE5hbWUoKSB7XG5cdFx0cmV0dXJuIHRoaXMuX2NsaWVudDtcblx0fVxuXG5cdHB1YmxpYyBzdGF0aWMgZ2V0TWFpblNlcnZlcigpIHtcblx0XHRyZXR1cm4gUmVzb2x2ZUlPU2VydmVyLl9tYWluU2VydmVyO1xuXHR9XG5cblx0cHVibGljIHN0YXRpYyBnZXRNYWluREIoKSB7XG5cdFx0cmV0dXJuIFJlc29sdmVJT1NlcnZlci5fbWFpbkRCO1xuXHR9XG5cblx0cHVibGljIHN0YXRpYyBnZXRTdXBwb3J0REIoKSB7XG5cdFx0cmV0dXJuIFJlc29sdmVJT1NlcnZlci5fc3VwcG9ydERCO1xuXHR9XG59XG5cbmV4cG9ydCAqIGZyb20gJy4vY29sbGVjdGlvbnMvYWN0aXZlLXN1YnNjcmlwdGlvbi5jb2xsZWN0aW9uJztcbmV4cG9ydCAqIGZyb20gJy4vY29sbGVjdGlvbnMvYXBwLXN0YXR1cy5jb2xsZWN0aW9uJztcbmV4cG9ydCAqIGZyb20gJy4vY29sbGVjdGlvbnMvYXBwLXZlcnNpb24uY29sbGVjdGlvbic7XG5leHBvcnQgKiBmcm9tICcuL2NvbGxlY3Rpb25zL2NvdW50ZXIuY29sbGVjdGlvbic7XG5leHBvcnQgKiBmcm9tICcuL2NvbGxlY3Rpb25zL2Nyb24tam9iLWhpc3RvcnkuY29sbGVjdGlvbic7XG5leHBvcnQgKiBmcm9tICcuL2NvbGxlY3Rpb25zL2Nyb24tam9iLmNvbGxlY3Rpb24nO1xuZXhwb3J0ICogZnJvbSAnLi9jb2xsZWN0aW9ucy9maWxlLmNvbGxlY3Rpb24nO1xuZXhwb3J0ICogZnJvbSAnLi9jb2xsZWN0aW9ucy9mbGFnLmNvbGxlY3Rpb24nO1xuZXhwb3J0ICogZnJvbSAnLi9jb2xsZWN0aW9ucy9sb2cuY29sbGVjdGlvbic7XG5leHBvcnQgKiBmcm9tICcuL2NvbGxlY3Rpb25zL2xvZ2dlZC1pbi11c2Vycy5jb2xsZWN0aW9uJztcbmV4cG9ydCAqIGZyb20gJy4vY29sbGVjdGlvbnMvbWV0aG9kLWNhbGwuY29sbGVjdGlvbic7XG5leHBvcnQgKiBmcm9tICcuL2NvbGxlY3Rpb25zL21ldGhvZC1yZXNwb25zZS5jb2xsZWN0aW9uJztcbmV4cG9ydCAqIGZyb20gJy4vY29sbGVjdGlvbnMvcXVldWUtZmxhZy5jb2xsZWN0aW9uJztcbmV4cG9ydCAqIGZyb20gJy4vY29sbGVjdGlvbnMvcXVldWUtbWV0aG9kLmNvbGxlY3Rpb24nO1xuZXhwb3J0ICogZnJvbSAnLi9jb2xsZWN0aW9ucy9xdWV1ZS1yZXNwb25zZS5jb2xsZWN0aW9uJztcbmV4cG9ydCAqIGZyb20gJy4vY29sbGVjdGlvbnMvc3VwcG9ydC10aWNrZXQuY29sbGVjdGlvbic7XG5leHBvcnQgKiBmcm9tICcuL2NvbGxlY3Rpb25zL3VzZXIuY29sbGVjdGlvbic7XG5leHBvcnQgKiBmcm9tICcuL21hbmFnZXJzL2Nyb24ubWFuYWdlcic7XG5leHBvcnQgKiBmcm9tICcuL21hbmFnZXJzL21ldGhvZC5tYW5hZ2VyJztcbmV4cG9ydCAqIGZyb20gJy4vbWFuYWdlcnMvcXVldWUtbWV0aG9kLm1hbmFnZXInO1xuZXhwb3J0ICogZnJvbSAnLi9tYW5hZ2Vycy9zdWJzY3JpcHRpb24ubWFuYWdlcic7XG5leHBvcnQgKiBmcm9tICcuL21hbmFnZXJzL3N1cHBvcnQubWFuYWdlcic7XG5leHBvcnQgKiBmcm9tICcuL21vZGVscy9hY3RpdmUtc3Vic2NyaXB0aW9uLm1vZGVsJztcbmV4cG9ydCAqIGZyb20gJy4vbW9kZWxzL2FwcC1zdGF0dXMubW9kZWwnO1xuZXhwb3J0ICogZnJvbSAnLi9tb2RlbHMvYXBwLXZlcnNpb24ubW9kZWwnO1xuZXhwb3J0ICogZnJvbSAnLi9tb2RlbHMvY29sbGVjdGlvbi1kb2N1bWVudC5tb2RlbCc7XG5leHBvcnQgKiBmcm9tICcuL21vZGVscy9jb3VudGVyLm1vZGVsJztcbi8vIGV4cG9ydCAqIGZyb20gJy4vbW9kZWxzL2Nyb24tam9iLWhpc3RvcnkubW9kZWwnO1xuZXhwb3J0ICogZnJvbSAnLi9tb2RlbHMvY3Jvbi1qb2IubW9kZWwnO1xuZXhwb3J0ICogZnJvbSAnLi9tb2RlbHMvZGlhbG9nLm1vZGVsJztcbmV4cG9ydCAqIGZyb20gJy4vbW9kZWxzL2ZpbGUubW9kZWwnO1xuZXhwb3J0ICogZnJvbSAnLi9tb2RlbHMvZmxhZy5tb2RlbCc7XG5leHBvcnQgKiBmcm9tICcuL21vZGVscy9sb2cubW9kZWwnO1xuZXhwb3J0ICogZnJvbSAnLi9tb2RlbHMvbWV0aG9kLm1vZGVsJztcbmV4cG9ydCAqIGZyb20gJy4vbW9kZWxzL3BhZ2luYXRpb24ubW9kZWwnO1xuZXhwb3J0ICogZnJvbSAnLi9tb2RlbHMvcGVybWlzc2lvbi5tb2RlbCc7XG5leHBvcnQgKiBmcm9tICcuL21vZGVscy9zZWxlY3QtZGF0YS1sYWJlbC5tb2RlbCc7XG5leHBvcnQgKiBmcm9tICcuL21vZGVscy9zZXJ2ZXItcmVzcG9uc2UubW9kZWwnO1xuZXhwb3J0ICogZnJvbSAnLi9tb2RlbHMvc3VwcG9ydC1tZXRob2QubW9kZWwnO1xuZXhwb3J0ICogZnJvbSAnLi9tb2RlbHMvc3VwcG9ydC10aWNrZXQubW9kZWwnO1xuZXhwb3J0ICogZnJvbSAnLi9tb2RlbHMvdXNlci5tb2RlbCc7Il19
|
package/managers/cron.manager.js
CHANGED
|
@@ -1,193 +1,2 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
-
function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }
|
|
7
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
-
});
|
|
9
|
-
};
|
|
10
|
-
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
11
|
-
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
12
|
-
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
13
|
-
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
14
|
-
function step(op) {
|
|
15
|
-
if (f) throw new TypeError("Generator is already executing.");
|
|
16
|
-
while (_) try {
|
|
17
|
-
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
18
|
-
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
19
|
-
switch (op[0]) {
|
|
20
|
-
case 0: case 1: t = op; break;
|
|
21
|
-
case 4: _.label++; return { value: op[1], done: false };
|
|
22
|
-
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
23
|
-
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
24
|
-
default:
|
|
25
|
-
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
26
|
-
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
27
|
-
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
28
|
-
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
29
|
-
if (t[2]) _.ops.pop();
|
|
30
|
-
_.trys.pop(); continue;
|
|
31
|
-
}
|
|
32
|
-
op = body.call(thisArg, _);
|
|
33
|
-
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
34
|
-
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
35
|
-
}
|
|
36
|
-
};
|
|
37
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
38
|
-
var cron_job_collection_1 = require("../collections/cron-job.collection");
|
|
39
|
-
var CronJobManager = require('../cron/cron');
|
|
40
|
-
var CronManager = /** @class */ (function () {
|
|
41
|
-
function CronManager(mainServer) {
|
|
42
|
-
this._mainServer = mainServer;
|
|
43
|
-
this._cronManager = new CronJobManager();
|
|
44
|
-
this.loadCronJobs();
|
|
45
|
-
}
|
|
46
|
-
CronManager.prototype.loadCronJobs = function () {
|
|
47
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
48
|
-
var jobs;
|
|
49
|
-
var _this = this;
|
|
50
|
-
return __generator(this, function (_a) {
|
|
51
|
-
switch (_a.label) {
|
|
52
|
-
case 0: return [4 /*yield*/, cron_job_collection_1.CronJobs.find({}).exec()];
|
|
53
|
-
case 1:
|
|
54
|
-
jobs = _a.sent();
|
|
55
|
-
jobs.forEach(function (job) {
|
|
56
|
-
_this.addCronJob(job);
|
|
57
|
-
});
|
|
58
|
-
return [2 /*return*/];
|
|
59
|
-
}
|
|
60
|
-
});
|
|
61
|
-
});
|
|
62
|
-
};
|
|
63
|
-
CronManager.prototype.doesCronJobExist = function (cron) {
|
|
64
|
-
return this._cronManager.exists(cron.name);
|
|
65
|
-
};
|
|
66
|
-
CronManager.prototype.doesCronJobNameExist = function (cron_name) {
|
|
67
|
-
return this._cronManager.exists(cron_name);
|
|
68
|
-
};
|
|
69
|
-
CronManager.prototype.addCronJob = function (cron) {
|
|
70
|
-
var _this = this;
|
|
71
|
-
if (!this.doesCronJobExist(cron)) {
|
|
72
|
-
if (cron.timezone) {
|
|
73
|
-
}
|
|
74
|
-
else {
|
|
75
|
-
var cronOptions = {
|
|
76
|
-
start: true,
|
|
77
|
-
};
|
|
78
|
-
if (cron.timezone) {
|
|
79
|
-
cronOptions['timeZone'] = cron.timezone;
|
|
80
|
-
}
|
|
81
|
-
this._cronManager.add(cron.name, cron.time_to_run, function () {
|
|
82
|
-
_this.runCronJob(cron);
|
|
83
|
-
}, cronOptions);
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
};
|
|
87
|
-
CronManager.prototype.updateCronJob = function (cron) {
|
|
88
|
-
if (this.doesCronJobExist(cron)) {
|
|
89
|
-
this._cronManager.update(cron.name, cron.time_to_run);
|
|
90
|
-
}
|
|
91
|
-
};
|
|
92
|
-
CronManager.prototype.removeCronJob = function (cron_name) {
|
|
93
|
-
if (this.doesCronJobNameExist(cron_name)) {
|
|
94
|
-
this._cronManager.deleteJob(cron_name);
|
|
95
|
-
}
|
|
96
|
-
};
|
|
97
|
-
CronManager.prototype.startCronJob = function (cron) {
|
|
98
|
-
if (this.doesCronJobExist(cron)) {
|
|
99
|
-
this._cronManager.start(cron.name);
|
|
100
|
-
}
|
|
101
|
-
};
|
|
102
|
-
CronManager.prototype.stopCronJob = function (cron) {
|
|
103
|
-
if (this.doesCronJobExist(cron)) {
|
|
104
|
-
this._cronManager.start(cron.name);
|
|
105
|
-
}
|
|
106
|
-
};
|
|
107
|
-
CronManager.prototype.stopAllCronJobs = function () {
|
|
108
|
-
this._cronManager.stopAll();
|
|
109
|
-
};
|
|
110
|
-
CronManager.prototype.checkCronJobsForUpdates = function () {
|
|
111
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
112
|
-
var jobs;
|
|
113
|
-
var _this = this;
|
|
114
|
-
return __generator(this, function (_a) {
|
|
115
|
-
switch (_a.label) {
|
|
116
|
-
case 0: return [4 /*yield*/, cron_job_collection_1.CronJobs.find({}).exec()];
|
|
117
|
-
case 1:
|
|
118
|
-
jobs = _a.sent();
|
|
119
|
-
// Remove deleted cron jobs
|
|
120
|
-
this._cronManager.getJobs().forEach(function (cronJob) {
|
|
121
|
-
if (jobs.map(function (a) { return a.name; }).indexOf(cronJob) === -1) {
|
|
122
|
-
_this.removeCronJob(cronJob);
|
|
123
|
-
}
|
|
124
|
-
});
|
|
125
|
-
// Add new cron jobs
|
|
126
|
-
jobs.forEach(function (cronJob) {
|
|
127
|
-
_this.addCronJob(cronJob);
|
|
128
|
-
});
|
|
129
|
-
// Update cronjobs
|
|
130
|
-
jobs.forEach(function (cronJob) {
|
|
131
|
-
_this.updateCronJob(cronJob);
|
|
132
|
-
});
|
|
133
|
-
return [2 /*return*/];
|
|
134
|
-
}
|
|
135
|
-
});
|
|
136
|
-
});
|
|
137
|
-
};
|
|
138
|
-
CronManager.prototype.runCronJob = function (cron) {
|
|
139
|
-
var _this = this;
|
|
140
|
-
var now = new Date();
|
|
141
|
-
if (!cron.next_run || now.getTime() >= cron.next_run.getTime()) {
|
|
142
|
-
cron_job_collection_1.CronJobs.findOneAndUpdate({
|
|
143
|
-
$and: [
|
|
144
|
-
{ _id: cron._id },
|
|
145
|
-
{ running: false }
|
|
146
|
-
]
|
|
147
|
-
}, { $set: { running: true } }).exec(function (err, res) { return __awaiter(_this, void 0, void 0, function () {
|
|
148
|
-
return __generator(this, function (_a) {
|
|
149
|
-
switch (_a.label) {
|
|
150
|
-
case 0:
|
|
151
|
-
if (!res) return [3 /*break*/, 9];
|
|
152
|
-
if (!cron.method_run_data) return [3 /*break*/, 2];
|
|
153
|
-
return [4 /*yield*/, this._mainServer.getMethodManager().callMethodCron(cron.method_run, cron.method_run_data)];
|
|
154
|
-
case 1:
|
|
155
|
-
_a.sent();
|
|
156
|
-
return [3 /*break*/, 4];
|
|
157
|
-
case 2: return [4 /*yield*/, this._mainServer.getMethodManager().callMethodCron(cron.method_run)];
|
|
158
|
-
case 3:
|
|
159
|
-
_a.sent();
|
|
160
|
-
_a.label = 4;
|
|
161
|
-
case 4:
|
|
162
|
-
if (!cron.method_complete) return [3 /*break*/, 8];
|
|
163
|
-
if (!cron.method_complete_data) return [3 /*break*/, 6];
|
|
164
|
-
return [4 /*yield*/, this._mainServer.getMethodManager().callMethodCron(cron.method_complete, cron.method_complete_data)];
|
|
165
|
-
case 5:
|
|
166
|
-
_a.sent();
|
|
167
|
-
return [3 /*break*/, 8];
|
|
168
|
-
case 6: return [4 /*yield*/, this._mainServer.getMethodManager().callMethodCron(cron.method_complete)];
|
|
169
|
-
case 7:
|
|
170
|
-
_a.sent();
|
|
171
|
-
_a.label = 8;
|
|
172
|
-
case 8:
|
|
173
|
-
if (cron.repeat) {
|
|
174
|
-
cron_job_collection_1.CronJobs.updateOne({
|
|
175
|
-
$and: [
|
|
176
|
-
{ _id: cron._id },
|
|
177
|
-
{ running: true }
|
|
178
|
-
]
|
|
179
|
-
}, { $set: { running: false, next_run: this._cronManager.getJob(cron.name).nextDates().toDate() } }).exec();
|
|
180
|
-
}
|
|
181
|
-
else {
|
|
182
|
-
cron_job_collection_1.CronJobs.deleteOne({ _id: cron._id }).exec();
|
|
183
|
-
}
|
|
184
|
-
_a.label = 9;
|
|
185
|
-
case 9: return [2 /*return*/];
|
|
186
|
-
}
|
|
187
|
-
});
|
|
188
|
-
}); });
|
|
189
|
-
}
|
|
190
|
-
};
|
|
191
|
-
return CronManager;
|
|
192
|
-
}());
|
|
193
|
-
exports.CronManager = CronManager;
|
|
1
|
+
"use strict";var __awaiter=this&&this.__awaiter||function(a,i,c,s){return new(c||(c=Promise))(function(e,n){function t(e){try{r(s.next(e))}catch(e){n(e)}}function o(e){try{r(s.throw(e))}catch(e){n(e)}}function r(n){n.done?e(n.value):new c(function(e){e(n.value)}).then(t,o)}r((s=s.apply(a,i||[])).next())})},__generator=this&&this.__generator||function(t,o){var r,a,i,e,c={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return e={next:n(0),throw:n(1),return:n(2)},"function"==typeof Symbol&&(e[Symbol.iterator]=function(){return this}),e;function n(n){return function(e){return function(n){if(r)throw new TypeError("Generator is already executing.");for(;c;)try{if(r=1,a&&(i=2&n[0]?a.return:n[0]?a.throw||((i=a.return)&&i.call(a),0):a.next)&&!(i=i.call(a,n[1])).done)return i;switch(a=0,i&&(n=[2&n[0],i.value]),n[0]){case 0:case 1:i=n;break;case 4:return c.label++,{value:n[1],done:!1};case 5:c.label++,a=n[1],n=[0];continue;case 7:n=c.ops.pop(),c.trys.pop();continue;default:if(!(i=0<(i=c.trys).length&&i[i.length-1])&&(6===n[0]||2===n[0])){c=0;continue}if(3===n[0]&&(!i||n[1]>i[0]&&n[1]<i[3])){c.label=n[1];break}if(6===n[0]&&c.label<i[1]){c.label=i[1],i=n;break}if(i&&c.label<i[2]){c.label=i[2],c.ops.push(n);break}i[2]&&c.ops.pop(),c.trys.pop();continue}n=o.call(t,c)}catch(e){n=[6,e],a=0}finally{r=i=0}if(5&n[0])throw n[1];return{value:n[0]?n[1]:void 0,done:!0}}([n,e])}}};Object.defineProperty(exports,"__esModule",{value:!0});var cron_job_collection_1=require("../collections/cron-job.collection"),CronJobManager=require("../cron/cron"),CronManager=function(){function e(e){this._mainServer=e,this._cronManager=new CronJobManager,this.loadCronJobs()}return e.prototype.loadCronJobs=function(){return __awaiter(this,void 0,void 0,function(){var n=this;return __generator(this,function(e){switch(e.label){case 0:return[4,cron_job_collection_1.CronJobs.find({}).exec()];case 1:return e.sent().forEach(function(e){n.addCronJob(e)}),[2]}})})},e.prototype.doesCronJobExist=function(e){return this._cronManager.exists(e.name)},e.prototype.doesCronJobNameExist=function(e){return this._cronManager.exists(e)},e.prototype.addCronJob=function(e){var n=this;if(!this.doesCronJobExist(e))if(e.timezone);else{var t={start:!0};e.timezone&&(t.timeZone=e.timezone),this._cronManager.add(e.name,e.time_to_run,function(){n.runCronJob(e)},t)}},e.prototype.updateCronJob=function(e){this.doesCronJobExist(e)&&this._cronManager.update(e.name,e.time_to_run)},e.prototype.removeCronJob=function(e){this.doesCronJobNameExist(e)&&this._cronManager.deleteJob(e)},e.prototype.startCronJob=function(e){this.doesCronJobExist(e)&&this._cronManager.start(e.name)},e.prototype.stopCronJob=function(e){this.doesCronJobExist(e)&&this._cronManager.start(e.name)},e.prototype.stopAllCronJobs=function(){this._cronManager.stopAll()},e.prototype.checkCronJobsForUpdates=function(){return __awaiter(this,void 0,void 0,function(){var n,t=this;return __generator(this,function(e){switch(e.label){case 0:return[4,cron_job_collection_1.CronJobs.find({}).exec()];case 1:return n=e.sent(),this._cronManager.getJobs().forEach(function(e){-1===n.map(function(e){return e.name}).indexOf(e)&&t.removeCronJob(e)}),n.forEach(function(e){t.addCronJob(e)}),n.forEach(function(e){t.updateCronJob(e)}),[2]}})})},e.prototype.runCronJob=function(t){var o=this,e=new Date;(!t.next_run||e.getTime()>=t.next_run.getTime())&&cron_job_collection_1.CronJobs.findOneAndUpdate({$and:[{_id:t._id},{running:!1}]},{$set:{running:!0}}).exec(function(e,n){return __awaiter(o,void 0,void 0,function(){return __generator(this,function(e){switch(e.label){case 0:return n?t.method_run_data?[4,this._mainServer.getMethodManager().callMethodCron(t.method_run,t.method_run_data)]:[3,2]:[3,9];case 1:return e.sent(),[3,4];case 2:return[4,this._mainServer.getMethodManager().callMethodCron(t.method_run)];case 3:e.sent(),e.label=4;case 4:return t.method_complete?t.method_complete_data?[4,this._mainServer.getMethodManager().callMethodCron(t.method_complete,t.method_complete_data)]:[3,6]:[3,8];case 5:return e.sent(),[3,8];case 6:return[4,this._mainServer.getMethodManager().callMethodCron(t.method_complete)];case 7:e.sent(),e.label=8;case 8:t.repeat?cron_job_collection_1.CronJobs.updateOne({$and:[{_id:t._id},{running:!0}]},{$set:{running:!1,next_run:this._cronManager.getJob(t.name).nextDates().toDate()}}).exec():cron_job_collection_1.CronJobs.deleteOne({_id:t._id}).exec(),e.label=9;case 9:return[2]}})})})},e}();exports.CronManager=CronManager;
|
|
2
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9tYW5hZ2Vycy9jcm9uLm1hbmFnZXIudHMiXSwibmFtZXMiOlsiY3Jvbl9qb2JfY29sbGVjdGlvbl8xIiwicmVxdWlyZSIsIkNyb25Kb2JNYW5hZ2VyIiwiQ3Jvbk1hbmFnZXIiLCJtYWluU2VydmVyIiwidGhpcyIsIl9tYWluU2VydmVyIiwiX2Nyb25NYW5hZ2VyIiwibG9hZENyb25Kb2JzIiwicHJvdG90eXBlIiwiQ3JvbkpvYnMiLCJmaW5kIiwiZXhlYyIsIl9hIiwic2VudCIsImZvckVhY2giLCJqb2IiLCJfdGhpcyIsImFkZENyb25Kb2IiLCJkb2VzQ3JvbkpvYkV4aXN0IiwiY3JvbiIsImV4aXN0cyIsIm5hbWUiLCJkb2VzQ3JvbkpvYk5hbWVFeGlzdCIsImNyb25fbmFtZSIsInRpbWV6b25lIiwiY3Jvbk9wdGlvbnMiLCJzdGFydCIsImFkZCIsInRpbWVfdG9fcnVuIiwicnVuQ3JvbkpvYiIsInVwZGF0ZUNyb25Kb2IiLCJ1cGRhdGUiLCJyZW1vdmVDcm9uSm9iIiwiZGVsZXRlSm9iIiwic3RhcnRDcm9uSm9iIiwic3RvcENyb25Kb2IiLCJzdG9wQWxsQ3JvbkpvYnMiLCJzdG9wQWxsIiwiY2hlY2tDcm9uSm9ic0ZvclVwZGF0ZXMiLCJqb2JzIiwiZ2V0Sm9icyIsImNyb25Kb2IiLCJtYXAiLCJhIiwiaW5kZXhPZiIsIm5vdyIsIkRhdGUiLCJuZXh0X3J1biIsImdldFRpbWUiLCJmaW5kT25lQW5kVXBkYXRlIiwiJGFuZCIsIl9pZCIsInJ1bm5pbmciLCIkc2V0IiwiZXJyIiwicmVzIiwiX19hd2FpdGVyIiwibWV0aG9kX3J1bl9kYXRhIiwiZ2V0TWV0aG9kTWFuYWdlciIsImNhbGxNZXRob2RDcm9uIiwibWV0aG9kX3J1biIsIm1ldGhvZF9jb21wbGV0ZSIsIm1ldGhvZF9jb21wbGV0ZV9kYXRhIiwicmVwZWF0IiwidXBkYXRlT25lIiwiZ2V0Sm9iIiwibmV4dERhdGVzIiwidG9EYXRlIiwiZGVsZXRlT25lIiwiZXhwb3J0cyJd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ZUFBZXhDLEVBQUt5QyxvQkFBOURoRCxFQUFBQywrQkFHR00sRUFBSzBDLGdCQUNKMUMsRUFBSzJDLHFCQUNSLENBQUEsRUFBTTFELEtBQUtDLFlBQVlxRCxtQkFBbUJDLGVBQWV4QyxFQUFLMEMsZ0JBQWlCMUMsRUFBSzJDLHVCQURqRixDQUFBLEVBQUEsR0FERCxDQUFBLEVBQUEsaUJBRUZsRCxFQUFBQyxvQkFHQSxNQUFBLENBQUEsRUFBTVQsS0FBS0MsWUFBWXFELG1CQUFtQkMsZUFBZXhDLEVBQUswQyx5QkFBOURqRCxFQUFBQyx3QkFJRU0sRUFBSzRDLE9BQ1JoRSxzQkFBQVUsU0FBU3VELFVBQVUsQ0FDbEJkLEtBQU0sQ0FDTCxDQUFDQyxJQUFLaEMsRUFBS2dDLEtBQ1gsQ0FBQ0MsU0FBUyxLQUVULENBQUNDLEtBQU0sQ0FBQ0QsU0FBUyxFQUFPTCxTQUFVM0MsS0FBS0UsYUFBYTJELE9BQU85QyxFQUFLRSxNQUFNNkMsWUFBWUMsWUFBWXhELE9BR2pHWixzQkFBQVUsU0FBUzJELFVBQVUsQ0FBQ2pCLElBQUtoQyxFQUFLZ0MsTUFBTXhDLDBDQU0xQ1QsRUFySkEsR0FBYW1FLFFBQUFuRSxZQUFBQSIsImZpbGUiOiJtYW5hZ2Vycy9jcm9uLm1hbmFnZXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDcm9uSm9iTW9kZWwgfSBmcm9tICcuLi9tb2RlbHMvY3Jvbi1qb2IubW9kZWwnO1xuaW1wb3J0IHsgQ3JvbkpvYnMgfSBmcm9tICcuLi9jb2xsZWN0aW9ucy9jcm9uLWpvYi5jb2xsZWN0aW9uJztcbmltcG9ydCB7IFJlc29sdmVJT01haW5TZXJ2ZXIgfSBmcm9tICcuLi9zZXJ2ZXItYXBwJztcbmxldCBDcm9uSm9iTWFuYWdlciA9IHJlcXVpcmUoJy4uL2Nyb24vY3JvbicpO1xuXG5leHBvcnQgY2xhc3MgQ3Jvbk1hbmFnZXIge1xuXG5cdHByaXZhdGUgX2Nyb25NYW5hZ2VyO1xuXHRwcml2YXRlIF9tYWluU2VydmVyOiBSZXNvbHZlSU9NYWluU2VydmVyO1xuXG5cdGNvbnN0cnVjdG9yKG1haW5TZXJ2ZXIpIHtcblx0XHR0aGlzLl9tYWluU2VydmVyID0gbWFpblNlcnZlcjtcblxuXHRcdHRoaXMuX2Nyb25NYW5hZ2VyID0gbmV3IENyb25Kb2JNYW5hZ2VyKCk7XG5cdFx0dGhpcy5sb2FkQ3JvbkpvYnMoKTtcblx0fVxuXG5cdHByaXZhdGUgYXN5bmMgbG9hZENyb25Kb2JzKCkge1xuXHRcdGxldCBqb2JzID0gYXdhaXQgQ3JvbkpvYnMuZmluZCh7fSkuZXhlYygpO1xuXG5cdFx0am9icy5mb3JFYWNoKGpvYiA9PiB7XG5cdFx0XHR0aGlzLmFkZENyb25Kb2Ioam9iKTtcblx0XHR9KTtcblx0fVxuXG5cdHByaXZhdGUgZG9lc0Nyb25Kb2JFeGlzdChjcm9uOiBDcm9uSm9iTW9kZWwpIHtcblx0XHRyZXR1cm4gdGhpcy5fY3Jvbk1hbmFnZXIuZXhpc3RzKGNyb24ubmFtZSk7XG5cdH1cblxuXHRwcml2YXRlIGRvZXNDcm9uSm9iTmFtZUV4aXN0KGNyb25fbmFtZTogc3RyaW5nKSB7XG5cdFx0cmV0dXJuIHRoaXMuX2Nyb25NYW5hZ2VyLmV4aXN0cyhjcm9uX25hbWUpO1xuXHR9XG5cblx0cHJpdmF0ZSBhZGRDcm9uSm9iKGNyb246IENyb25Kb2JNb2RlbCkge1xuXHRcdGlmICghdGhpcy5kb2VzQ3JvbkpvYkV4aXN0KGNyb24pKSB7XG5cdFx0XHRpZiAoY3Jvbi50aW1lem9uZSkge1xuXG5cdFx0XHR9XG5cdFx0XHRlbHNlIHtcblx0XHRcdFx0bGV0IGNyb25PcHRpb25zID0ge1xuXHRcdFx0XHRcdHN0YXJ0OiB0cnVlLFxuXHRcdFx0XHRcdC8vIG9uQ29tcGxldGU6ICgpID0+IHtcblx0XHRcdFx0XHQvLyBcdHRoaXMucnVuQ3JvbkpvYkNvbXBsZXRlZChjcm9uKTtcblx0XHRcdFx0XHQvLyB9LFxuXHRcdFx0XHRcdC8vIHRpbWVab25lOiBjcm9uLnRpbWV6b25lXG5cdFx0XHRcdH07XG5cblx0XHRcdFx0aWYgKGNyb24udGltZXpvbmUpIHtcblx0XHRcdFx0XHRjcm9uT3B0aW9uc1sndGltZVpvbmUnXSA9IGNyb24udGltZXpvbmU7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHR0aGlzLl9jcm9uTWFuYWdlci5hZGQoXG5cdFx0XHRcdFx0Y3Jvbi5uYW1lLFxuXHRcdFx0XHRcdGNyb24udGltZV90b19ydW4sXG5cdFx0XHRcdFx0KCkgPT4ge1xuXHRcdFx0XHRcdFx0dGhpcy5ydW5Dcm9uSm9iKGNyb24pO1xuXHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0Y3Jvbk9wdGlvbnNcblx0XHRcdFx0KTtcblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHRwcml2YXRlIHVwZGF0ZUNyb25Kb2IoY3JvbjogQ3JvbkpvYk1vZGVsKSB7XG5cdFx0aWYgKHRoaXMuZG9lc0Nyb25Kb2JFeGlzdChjcm9uKSkge1xuXHRcdFx0dGhpcy5fY3Jvbk1hbmFnZXIudXBkYXRlKGNyb24ubmFtZSwgY3Jvbi50aW1lX3RvX3J1bik7XG5cdFx0fVxuXHR9XG5cblx0cHJpdmF0ZSByZW1vdmVDcm9uSm9iKGNyb25fbmFtZTogc3RyaW5nKSB7XG5cdFx0aWYgKHRoaXMuZG9lc0Nyb25Kb2JOYW1lRXhpc3QoY3Jvbl9uYW1lKSkge1xuXHRcdFx0dGhpcy5fY3Jvbk1hbmFnZXIuZGVsZXRlSm9iKGNyb25fbmFtZSk7XG5cdFx0fVxuXHR9XG5cblx0cHJpdmF0ZSBzdGFydENyb25Kb2IoY3JvbjogQ3JvbkpvYk1vZGVsKSB7XG5cdFx0aWYgKHRoaXMuZG9lc0Nyb25Kb2JFeGlzdChjcm9uKSkge1xuXHRcdFx0dGhpcy5fY3Jvbk1hbmFnZXIuc3RhcnQoY3Jvbi5uYW1lKTtcblx0XHR9XG5cdH1cblxuXHRwcml2YXRlIHN0b3BDcm9uSm9iKGNyb246IENyb25Kb2JNb2RlbCkge1xuXHRcdGlmICh0aGlzLmRvZXNDcm9uSm9iRXhpc3QoY3JvbikpIHtcblx0XHRcdHRoaXMuX2Nyb25NYW5hZ2VyLnN0YXJ0KGNyb24ubmFtZSk7XG5cdFx0fVxuXHR9XG5cblx0cHJpdmF0ZSBzdG9wQWxsQ3JvbkpvYnMoKSB7XG5cdFx0dGhpcy5fY3Jvbk1hbmFnZXIuc3RvcEFsbCgpO1xuXHR9XG5cblx0cHVibGljIGFzeW5jIGNoZWNrQ3JvbkpvYnNGb3JVcGRhdGVzKCkge1xuXHRcdGxldCBqb2JzID0gYXdhaXQgQ3JvbkpvYnMuZmluZCh7fSkuZXhlYygpO1xuXG5cdFx0Ly8gUmVtb3ZlIGRlbGV0ZWQgY3JvbiBqb2JzXG5cdFx0dGhpcy5fY3Jvbk1hbmFnZXIuZ2V0Sm9icygpLmZvckVhY2goY3JvbkpvYiA9PiB7XG5cdFx0XHRpZiAoam9icy5tYXAoYSA9PiBhLm5hbWUpLmluZGV4T2YoY3JvbkpvYikgPT09IC0xKSB7XG5cdFx0XHRcdHRoaXMucmVtb3ZlQ3JvbkpvYihjcm9uSm9iKTtcblx0XHRcdH1cblx0XHR9KTtcblxuXHRcdC8vIEFkZCBuZXcgY3JvbiBqb2JzXG5cdFx0am9icy5mb3JFYWNoKGNyb25Kb2IgPT4ge1xuXHRcdFx0dGhpcy5hZGRDcm9uSm9iKGNyb25Kb2IpO1xuXHRcdH0pO1xuXG5cdFx0Ly8gVXBkYXRlIGNyb25qb2JzXG5cdFx0am9icy5mb3JFYWNoKGNyb25Kb2IgPT4ge1xuXHRcdFx0dGhpcy51cGRhdGVDcm9uSm9iKGNyb25Kb2IpO1xuXHRcdH0pO1xuXHR9XG5cblx0cHJpdmF0ZSBydW5Dcm9uSm9iKGNyb246IENyb25Kb2JNb2RlbCkge1xuXHRcdGxldCBub3cgPSBuZXcgRGF0ZSgpO1xuXG5cdFx0aWYgKCFjcm9uLm5leHRfcnVuIHx8IG5vdy5nZXRUaW1lKCkgPj0gY3Jvbi5uZXh0X3J1bi5nZXRUaW1lKCkpIHtcblx0XHRcdENyb25Kb2JzLmZpbmRPbmVBbmRVcGRhdGUoe1xuXHRcdFx0XHQkYW5kOiBbXG5cdFx0XHRcdFx0e19pZDogY3Jvbi5faWR9LFxuXHRcdFx0XHRcdHtydW5uaW5nOiBmYWxzZX1cblx0XHRcdFx0XVxuXHRcdFx0fSwgeyRzZXQ6IHtydW5uaW5nOiB0cnVlfX0pLmV4ZWMoYXN5bmMgKGVyciwgcmVzKSA9PiB7XG5cdFx0XHRcdGlmIChyZXMpIHtcblx0XHRcdFx0XHRpZiAoY3Jvbi5tZXRob2RfcnVuX2RhdGEpIHtcblx0XHRcdFx0XHRcdGF3YWl0IHRoaXMuX21haW5TZXJ2ZXIuZ2V0TWV0aG9kTWFuYWdlcigpLmNhbGxNZXRob2RDcm9uKGNyb24ubWV0aG9kX3J1biwgY3Jvbi5tZXRob2RfcnVuX2RhdGEpO1x0XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdGVsc2Uge1xuXHRcdFx0XHRcdFx0YXdhaXQgdGhpcy5fbWFpblNlcnZlci5nZXRNZXRob2RNYW5hZ2VyKCkuY2FsbE1ldGhvZENyb24oY3Jvbi5tZXRob2RfcnVuKTtcblx0XHRcdFx0XHR9XG5cdFxuXHRcdFx0XHRcdGlmIChjcm9uLm1ldGhvZF9jb21wbGV0ZSkge1xuXHRcdFx0XHRcdFx0aWYgKGNyb24ubWV0aG9kX2NvbXBsZXRlX2RhdGEpIHtcblx0XHRcdFx0XHRcdFx0YXdhaXQgdGhpcy5fbWFpblNlcnZlci5nZXRNZXRob2RNYW5hZ2VyKCkuY2FsbE1ldGhvZENyb24oY3Jvbi5tZXRob2RfY29tcGxldGUsIGNyb24ubWV0aG9kX2NvbXBsZXRlX2RhdGEpO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0ZWxzZSB7XG5cdFx0XHRcdFx0XHRcdGF3YWl0IHRoaXMuX21haW5TZXJ2ZXIuZ2V0TWV0aG9kTWFuYWdlcigpLmNhbGxNZXRob2RDcm9uKGNyb24ubWV0aG9kX2NvbXBsZXRlKTtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9XG5cdFxuXHRcdFx0XHRcdGlmIChjcm9uLnJlcGVhdCkge1xuXHRcdFx0XHRcdFx0Q3JvbkpvYnMudXBkYXRlT25lKHtcblx0XHRcdFx0XHRcdFx0JGFuZDogW1xuXHRcdFx0XHRcdFx0XHRcdHtfaWQ6IGNyb24uX2lkfSxcblx0XHRcdFx0XHRcdFx0XHR7cnVubmluZzogdHJ1ZX1cblx0XHRcdFx0XHRcdFx0XVxuXHRcdFx0XHRcdFx0fSwgeyRzZXQ6IHtydW5uaW5nOiBmYWxzZSwgbmV4dF9ydW46IHRoaXMuX2Nyb25NYW5hZ2VyLmdldEpvYihjcm9uLm5hbWUpLm5leHREYXRlcygpLnRvRGF0ZSgpfX0pLmV4ZWMoKTtcblx0XHRcdFx0XHR9IFxuXHRcdFx0XHRcdGVsc2Uge1xuXHRcdFx0XHRcdFx0Q3JvbkpvYnMuZGVsZXRlT25lKHtfaWQ6IGNyb24uX2lkfSkuZXhlYygpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fSk7XG5cdFx0fVxuXHR9XG59Il19
|