namirasoft-node 1.4.79 → 1.4.81
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/dist/BaseCron.d.ts +6 -0
- package/dist/BaseCron.js +15 -2
- package/dist/BaseCron.js.map +1 -1
- package/dist/Meta.d.ts +2 -3
- package/dist/Meta.js +4 -7
- package/dist/Meta.js.map +1 -1
- package/dist/Timer.d.ts +8 -0
- package/dist/Timer.js +20 -0
- package/dist/Timer.js.map +1 -0
- package/package.json +2 -2
- package/src/BaseCron.ts +21 -3
- package/src/Meta.ts +4 -6
- package/src/Timer.ts +18 -0
package/dist/BaseCron.d.ts
CHANGED
|
@@ -10,8 +10,14 @@ export type BaseCronInfoType = {
|
|
|
10
10
|
export declare abstract class BaseCron<D extends {
|
|
11
11
|
[name: string]: BaseDatabase;
|
|
12
12
|
}> {
|
|
13
|
+
protected log: {
|
|
14
|
+
enabled: boolean;
|
|
15
|
+
onStarted: boolean;
|
|
16
|
+
onFinished: boolean;
|
|
17
|
+
};
|
|
13
18
|
protected app: BaseApplication<D>;
|
|
14
19
|
private info;
|
|
20
|
+
private timer;
|
|
15
21
|
constructor(app: BaseApplication<D>);
|
|
16
22
|
abstract getInfo(): BaseCronInfoType;
|
|
17
23
|
run(): void;
|
package/dist/BaseCron.js
CHANGED
|
@@ -14,8 +14,15 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
14
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
15
|
exports.BaseCron = void 0;
|
|
16
16
|
const node_cron_1 = __importDefault(require("node-cron"));
|
|
17
|
+
const Timer_1 = require("./Timer");
|
|
17
18
|
class BaseCron {
|
|
18
19
|
constructor(app) {
|
|
20
|
+
this.log = {
|
|
21
|
+
enabled: true,
|
|
22
|
+
onStarted: true,
|
|
23
|
+
onFinished: true
|
|
24
|
+
};
|
|
25
|
+
this.timer = new Timer_1.Timer();
|
|
19
26
|
this.app = app;
|
|
20
27
|
this.run = this.run.bind(this);
|
|
21
28
|
this.loop = this.loop.bind(this);
|
|
@@ -52,12 +59,18 @@ class BaseCron {
|
|
|
52
59
|
}
|
|
53
60
|
handler() {
|
|
54
61
|
return __awaiter(this, void 0, void 0, function* () {
|
|
55
|
-
|
|
62
|
+
if (this.log.enabled)
|
|
63
|
+
if (this.log.onStarted)
|
|
64
|
+
this.app.logger.info(`Cron ${this.info.name} was started.`);
|
|
56
65
|
try {
|
|
66
|
+
this.timer.onStart();
|
|
57
67
|
yield this.preHandle();
|
|
58
68
|
yield this.handleOne();
|
|
59
69
|
yield this.postHandle();
|
|
60
|
-
this.
|
|
70
|
+
this.timer.onFinish();
|
|
71
|
+
if (this.log.enabled)
|
|
72
|
+
if (this.log.onFinished)
|
|
73
|
+
this.app.logger.info(`Cron ${this.info.name} was finished in ${this.timer.duration}ms.`);
|
|
61
74
|
}
|
|
62
75
|
catch (error) {
|
|
63
76
|
this.app.logger.onCatchCritical(error);
|
package/dist/BaseCron.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BaseCron.js","sourceRoot":"","sources":["../src/BaseCron.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AACA,0DAA6B;
|
|
1
|
+
{"version":3,"file":"BaseCron.js","sourceRoot":"","sources":["../src/BaseCron.ts"],"names":[],"mappings":"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"}
|
package/dist/Meta.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import * as express from 'express';
|
|
2
2
|
import { IncomingHttpHeaders } from "http";
|
|
3
3
|
import { HTTPMethod } from 'namirasoft-core';
|
|
4
|
+
import { Timer } from './Timer';
|
|
4
5
|
export declare class Meta {
|
|
5
6
|
info: {
|
|
6
7
|
name: string;
|
|
@@ -14,9 +15,7 @@ export declare class Meta {
|
|
|
14
15
|
url: string;
|
|
15
16
|
headers?: IncomingHttpHeaders;
|
|
16
17
|
body?: any;
|
|
17
|
-
|
|
18
|
-
end_time: Date | null;
|
|
19
|
-
duration: number | null;
|
|
18
|
+
timer: Timer;
|
|
20
19
|
code: number;
|
|
21
20
|
message: string;
|
|
22
21
|
error: Error | null;
|
package/dist/Meta.js
CHANGED
|
@@ -2,11 +2,10 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.Meta = void 0;
|
|
4
4
|
const IPOperation_1 = require("./IPOperation");
|
|
5
|
+
const Timer_1 = require("./Timer");
|
|
5
6
|
class Meta {
|
|
6
7
|
constructor(info, req) {
|
|
7
|
-
this.
|
|
8
|
-
this.end_time = null;
|
|
9
|
-
this.duration = null;
|
|
8
|
+
this.timer = new Timer_1.Timer();
|
|
10
9
|
this.code = 200;
|
|
11
10
|
this.message = "Success";
|
|
12
11
|
this.error = null;
|
|
@@ -19,12 +18,10 @@ class Meta {
|
|
|
19
18
|
this.body = req.body;
|
|
20
19
|
}
|
|
21
20
|
onStart() {
|
|
22
|
-
this.
|
|
21
|
+
this.timer.onStart();
|
|
23
22
|
}
|
|
24
23
|
onFinish() {
|
|
25
|
-
|
|
26
|
-
this.end_time = new Date();
|
|
27
|
-
this.duration = ((_b = (_a = this.end_time) === null || _a === void 0 ? void 0 : _a.getTime()) !== null && _b !== void 0 ? _b : 0) - ((_d = (_c = this.start_time) === null || _c === void 0 ? void 0 : _c.getTime()) !== null && _d !== void 0 ? _d : 0);
|
|
24
|
+
this.timer.onFinish();
|
|
28
25
|
}
|
|
29
26
|
}
|
|
30
27
|
exports.Meta = Meta;
|
package/dist/Meta.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Meta.js","sourceRoot":"","sources":["../src/Meta.ts"],"names":[],"mappings":";;;AAEA,+CAA4C;
|
|
1
|
+
{"version":3,"file":"Meta.js","sourceRoot":"","sources":["../src/Meta.ts"],"names":[],"mappings":";;;AAEA,+CAA4C;AAE5C,mCAAgC;AAEhC,MAAa,IAAI;IAab,YAAY,IAAsF,EAAE,GAAoB;QALxH,UAAK,GAAU,IAAI,aAAK,EAAE,CAAC;QAC3B,SAAI,GAAW,GAAG,CAAC;QACnB,YAAO,GAAW,SAAS,CAAC;QAC5B,UAAK,GAAiB,IAAI,CAAC;QAC3B,sBAAiB,GAAkB,IAAI,CAAC;QAGpC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,EAAE,GAAG,yBAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACjC,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC;QACzB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC,WAAW,CAAC;QAC3B,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC;QAC3B,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC;IACzB,CAAC;IACD,OAAO;QAEH,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;IACzB,CAAC;IACD,QAAQ;QAEJ,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;IAC1B,CAAC;CACJ;AA9BD,oBA8BC"}
|
package/dist/Timer.d.ts
ADDED
package/dist/Timer.js
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Timer = void 0;
|
|
4
|
+
class Timer {
|
|
5
|
+
constructor() {
|
|
6
|
+
this.start_time = null;
|
|
7
|
+
this.end_time = null;
|
|
8
|
+
this.duration = null;
|
|
9
|
+
}
|
|
10
|
+
onStart() {
|
|
11
|
+
this.start_time = new Date();
|
|
12
|
+
}
|
|
13
|
+
onFinish() {
|
|
14
|
+
var _a, _b, _c, _d;
|
|
15
|
+
this.end_time = new Date();
|
|
16
|
+
this.duration = ((_b = (_a = this.end_time) === null || _a === void 0 ? void 0 : _a.getTime()) !== null && _b !== void 0 ? _b : 0) - ((_d = (_c = this.start_time) === null || _c === void 0 ? void 0 : _c.getTime()) !== null && _d !== void 0 ? _d : 0);
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
exports.Timer = Timer;
|
|
20
|
+
//# sourceMappingURL=Timer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Timer.js","sourceRoot":"","sources":["../src/Timer.ts"],"names":[],"mappings":";;;AAAA,MAAa,KAAK;IAKd;QAHO,eAAU,GAAgB,IAAI,CAAC;QAC/B,aAAQ,GAAgB,IAAI,CAAC;QAC7B,aAAQ,GAAkB,IAAI,CAAC;IAGtC,CAAC;IACD,OAAO;QAEH,IAAI,CAAC,UAAU,GAAG,IAAI,IAAI,EAAE,CAAC;IACjC,CAAC;IACD,QAAQ;;QAEJ,IAAI,CAAC,QAAQ,GAAG,IAAI,IAAI,EAAE,CAAC;QAC3B,IAAI,CAAC,QAAQ,GAAG,CAAC,MAAA,MAAA,IAAI,CAAC,QAAQ,0CAAE,OAAO,EAAE,mCAAI,CAAC,CAAC,GAAG,CAAC,MAAA,MAAA,IAAI,CAAC,UAAU,0CAAE,OAAO,EAAE,mCAAI,CAAC,CAAC,CAAC;IACxF,CAAC;CACJ;AAjBD,sBAiBC"}
|
package/package.json
CHANGED
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
"framework": "npm",
|
|
9
9
|
"application": "package",
|
|
10
10
|
"private": false,
|
|
11
|
-
"version": "1.4.
|
|
11
|
+
"version": "1.4.81",
|
|
12
12
|
"author": "Amir Abolhasani",
|
|
13
13
|
"license": "MIT",
|
|
14
14
|
"main": "./dist/index.js",
|
|
@@ -35,7 +35,7 @@
|
|
|
35
35
|
"namirasoft-schema": "^1.4.25",
|
|
36
36
|
"node-cron": "^3.0.3",
|
|
37
37
|
"nodemailer": "^6.10.0",
|
|
38
|
-
"nodemailer-smtp-transport": "^2.
|
|
38
|
+
"nodemailer-smtp-transport": "^2.4.2",
|
|
39
39
|
"request-ip": "^3.3.0",
|
|
40
40
|
"serve-index": "^1.9.1",
|
|
41
41
|
"swagger-jsdoc": "^6.2.8",
|
package/src/BaseCron.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { BaseDatabase } from './BaseDatabase';
|
|
2
2
|
import cron from 'node-cron';
|
|
3
3
|
import { BaseApplication } from './BaseApplication';
|
|
4
|
+
import { Timer } from './Timer';
|
|
4
5
|
|
|
5
6
|
export type BaseCronInfoType =
|
|
6
7
|
{
|
|
@@ -13,8 +14,19 @@ export type BaseCronInfoType =
|
|
|
13
14
|
|
|
14
15
|
export abstract class BaseCron<D extends { [name: string]: BaseDatabase }>
|
|
15
16
|
{
|
|
17
|
+
protected log: {
|
|
18
|
+
enabled: boolean;
|
|
19
|
+
onStarted: boolean;
|
|
20
|
+
onFinished: boolean;
|
|
21
|
+
} = {
|
|
22
|
+
enabled: true,
|
|
23
|
+
onStarted: true,
|
|
24
|
+
onFinished: true
|
|
25
|
+
};
|
|
16
26
|
protected app: BaseApplication<D>;
|
|
17
27
|
private info!: BaseCronInfoType;
|
|
28
|
+
private timer: Timer = new Timer();
|
|
29
|
+
|
|
18
30
|
constructor(app: BaseApplication<D>)
|
|
19
31
|
{
|
|
20
32
|
this.app = app;
|
|
@@ -63,17 +75,23 @@ export abstract class BaseCron<D extends { [name: string]: BaseDatabase }>
|
|
|
63
75
|
|
|
64
76
|
private async handler()
|
|
65
77
|
{
|
|
66
|
-
|
|
78
|
+
if (this.log.enabled)
|
|
79
|
+
if (this.log.onStarted)
|
|
80
|
+
this.app.logger.info(`Cron ${this.info.name} was started.`);
|
|
67
81
|
try
|
|
68
82
|
{
|
|
69
83
|
// preHandle
|
|
84
|
+
this.timer.onStart();
|
|
70
85
|
await this.preHandle();
|
|
71
86
|
// Handler
|
|
72
87
|
await this.handleOne();
|
|
73
88
|
// postHandle
|
|
74
89
|
await this.postHandle();
|
|
75
|
-
|
|
76
|
-
|
|
90
|
+
this.timer.onFinish();
|
|
91
|
+
|
|
92
|
+
if (this.log.enabled)
|
|
93
|
+
if (this.log.onFinished)
|
|
94
|
+
this.app.logger.info(`Cron ${this.info.name} was finished in ${this.timer.duration}ms.`);
|
|
77
95
|
}
|
|
78
96
|
catch (error: any)
|
|
79
97
|
{
|
package/src/Meta.ts
CHANGED
|
@@ -2,6 +2,7 @@ import * as express from 'express';
|
|
|
2
2
|
import { IncomingHttpHeaders } from "http";
|
|
3
3
|
import { IPOperation } from './IPOperation';
|
|
4
4
|
import { HTTPMethod } from 'namirasoft-core';
|
|
5
|
+
import { Timer } from './Timer';
|
|
5
6
|
|
|
6
7
|
export class Meta
|
|
7
8
|
{
|
|
@@ -11,9 +12,7 @@ export class Meta
|
|
|
11
12
|
url: string;
|
|
12
13
|
headers?: IncomingHttpHeaders;
|
|
13
14
|
body?: any;
|
|
14
|
-
|
|
15
|
-
end_time: Date | null = null;
|
|
16
|
-
duration: number | null = null;
|
|
15
|
+
timer: Timer = new Timer();
|
|
17
16
|
code: number = 200;
|
|
18
17
|
message: string = "Success";
|
|
19
18
|
error: Error | null = null;
|
|
@@ -29,11 +28,10 @@ export class Meta
|
|
|
29
28
|
}
|
|
30
29
|
onStart()
|
|
31
30
|
{
|
|
32
|
-
this.
|
|
31
|
+
this.timer.onStart();
|
|
33
32
|
}
|
|
34
33
|
onFinish()
|
|
35
34
|
{
|
|
36
|
-
this.
|
|
37
|
-
this.duration = (this.end_time?.getTime() ?? 0) - (this.start_time?.getTime() ?? 0);
|
|
35
|
+
this.timer.onFinish();
|
|
38
36
|
}
|
|
39
37
|
}
|
package/src/Timer.ts
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export class Timer
|
|
2
|
+
{
|
|
3
|
+
public start_time: Date | null = null;
|
|
4
|
+
public end_time: Date | null = null;
|
|
5
|
+
public duration: number | null = null;
|
|
6
|
+
constructor()
|
|
7
|
+
{
|
|
8
|
+
}
|
|
9
|
+
onStart()
|
|
10
|
+
{
|
|
11
|
+
this.start_time = new Date();
|
|
12
|
+
}
|
|
13
|
+
onFinish()
|
|
14
|
+
{
|
|
15
|
+
this.end_time = new Date();
|
|
16
|
+
this.duration = (this.end_time?.getTime() ?? 0) - (this.start_time?.getTime() ?? 0);
|
|
17
|
+
}
|
|
18
|
+
}
|