namirasoft-node 1.4.80 → 1.4.82

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.
@@ -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
- this.app.logger.info(`Cron ${this.info.name} was started.`);
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.app.logger.info(`Cron ${this.info.name} was finished.`);
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);
@@ -1 +1 @@
1
- {"version":3,"file":"BaseCron.js","sourceRoot":"","sources":["../src/BaseCron.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AACA,0DAA6B;AAY7B,MAAsB,QAAQ;IAI1B,YAAY,GAAuB;QAE/B,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC/B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC3C,CAAC;IAID,GAAG;QAEC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;QAE3B,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ;YAC1C,MAAM,IAAI,KAAK,CAAC,yEAAyE,CAAC,CAAC;aAC1F,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU;YACzB,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,IAAI,qBAAqB,IAAI,CAAC,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;aACxF,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ;YACvB,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,IAAI,2BAA2B,IAAI,CAAC,IAAI,CAAC,QAAQ,KAAK,CAAC,CAAC;;YAE/F,MAAM,IAAI,KAAK,CAAC,sEAAsE,CAAC,CAAC;QAE5F,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU;YACpB,IAAI,CAAC,OAAO,EAAE,CAAC;QACnB,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU;YACpB,mBAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;aACjD,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ;YACvB,IAAI,CAAC,IAAI,EAAE,CAAC;IACpB,CAAC;IAEa,IAAI;;YAEd,OAAO,IAAI,EACX,CAAC;gBACG,MAAM,IAAI,CAAC,OAAO,EAAE,CAAA;gBACpB,MAAM,IAAI,OAAO,CAAC,QAAQ,CAAC,EAAE;oBAEzB,UAAU,CAAC,GAAG,EAAE;wBAEZ,QAAQ,CAAC,EAAE,CAAC,CAAC;oBACjB,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBAC3B,CAAC,CAAC,CAAA;YACN,CAAC;QACL,CAAC;KAAA;IAEa,OAAO;;YAEjB,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,IAAI,eAAe,CAAC,CAAC;YAC5D,IACA,CAAC;gBAEG,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;gBAEvB,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;gBAEvB,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;gBAExB,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,IAAI,gBAAgB,CAAC,CAAC;YACjE,CAAC;YACD,OAAO,KAAU,EACjB,CAAC;gBACG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;YAC3C,CAAC;QACL,CAAC;KAAA;IAAA,CAAC;IAEI,SAAS;8DAAoB,CAAC;KAAA;IAE9B,UAAU;8DAAoB,CAAC;KAAA;CACxC;AAzED,4BAyEC"}
1
+ {"version":3,"file":"BaseCron.js","sourceRoot":"","sources":["../src/BaseCron.ts"],"names":[],"mappings":"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"}
@@ -7,8 +7,6 @@ export declare abstract class BaseTable<D extends BaseDatabase, ModelColumnOptio
7
7
  constructor(database: D);
8
8
  abstract getName(): string;
9
9
  abstract getShortName(): string;
10
- protected addSecureColumns(columns: string[]): string[];
11
- protected addReadOnlyColumns(columns: string[]): string[];
12
10
  getSecureColumns(): string[];
13
11
  getReadOnlyColumns(): string[];
14
12
  abstract forEachColumn(handler: (name: string, column: ModelColumnOption) => void): void;
package/dist/BaseTable.js CHANGED
@@ -8,19 +8,21 @@ class BaseTable {
8
8
  this.database = database;
9
9
  this.uuid = new namirasoft_core_1.BaseUUID(this.getShortName());
10
10
  }
11
- addSecureColumns(columns) {
12
- return columns;
13
- }
14
- addReadOnlyColumns(columns) {
15
- return columns;
16
- }
17
11
  getSecureColumns() {
18
12
  let columns = [];
19
- return this.addSecureColumns(columns);
13
+ this.forEachColumn((name, column) => {
14
+ if (column.secure)
15
+ columns.push(name);
16
+ });
17
+ return columns;
20
18
  }
21
19
  getReadOnlyColumns() {
22
20
  let columns = [];
23
- return this.addReadOnlyColumns(columns);
21
+ this.forEachColumn((name, column) => {
22
+ if (column.read_only)
23
+ columns.push(name);
24
+ });
25
+ return columns;
24
26
  }
25
27
  getColumns(secure = false, read_only = null, filter) {
26
28
  let columns_secure = this.getSecureColumns();
@@ -1 +1 @@
1
- {"version":3,"file":"BaseTable.js","sourceRoot":"","sources":["../src/BaseTable.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"BaseTable.js","sourceRoot":"","sources":["../src/BaseTable.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
- start_time: Date | null;
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.start_time = null;
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.start_time = new Date();
21
+ this.timer.onStart();
23
22
  }
24
23
  onFinish() {
25
- var _a, _b, _c, _d;
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;AAG5C,MAAa,IAAI;IAeb,YAAY,IAAsF,EAAE,GAAoB;QAPxH,eAAU,GAAgB,IAAI,CAAC;QAC/B,aAAQ,GAAgB,IAAI,CAAC;QAC7B,aAAQ,GAAkB,IAAI,CAAC;QAC/B,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,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;AAjCD,oBAiCC"}
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"}
@@ -0,0 +1,8 @@
1
+ export declare class Timer {
2
+ start_time: Date | null;
3
+ end_time: Date | null;
4
+ duration: number | null;
5
+ constructor();
6
+ onStart(): void;
7
+ onFinish(): void;
8
+ }
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.80",
11
+ "version": "1.4.82",
12
12
  "author": "Amir Abolhasani",
13
13
  "license": "MIT",
14
14
  "main": "./dist/index.js",
@@ -20,22 +20,22 @@
20
20
  "@supercharge/request-ip": "^1.2.0",
21
21
  "@types/cors": "^2.8.17",
22
22
  "@types/express": "^5.0.0",
23
- "@types/node": "^22.13.4",
23
+ "@types/node": "^22.13.5",
24
24
  "@types/node-cron": "^3.0.11",
25
25
  "@types/nodemailer": "^6.4.17",
26
26
  "@types/nodemailer-smtp-transport": "^2.7.8",
27
27
  "@types/serve-index": "^1.9.4",
28
28
  "@types/swagger-jsdoc": "^6.0.4",
29
- "@types/swagger-ui-express": "^4.1.7",
29
+ "@types/swagger-ui-express": "^4.1.8",
30
30
  "cors": "^2.8.5",
31
31
  "express": "^4.21.2",
32
32
  "joi": "^17.13.3",
33
33
  "namirasoft-core": "^1.4.51",
34
- "namirasoft-log": "^1.4.20",
34
+ "namirasoft-log": "^1.4.21",
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.4.2",
38
+ "nodemailer-smtp-transport": "^2.7.4",
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
- this.app.logger.info(`Cron ${this.info.name} was started.`);
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
- // Log
76
- this.app.logger.info(`Cron ${this.info.name} was finished.`);
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/BaseTable.ts CHANGED
@@ -13,23 +13,25 @@ export abstract class BaseTable<D extends BaseDatabase, ModelColumnOption>
13
13
  }
14
14
  public abstract getName(): string;
15
15
  public abstract getShortName(): string;
16
- protected addSecureColumns(columns: string[]): string[]
17
- {
18
- return columns;
19
- }
20
- protected addReadOnlyColumns(columns: string[]): string[]
21
- {
22
- return columns;
23
- }
24
16
  public getSecureColumns(): string[]
25
17
  {
26
18
  let columns: string[] = [];
27
- return this.addSecureColumns(columns);
19
+ this.forEachColumn((name, column: any) =>
20
+ {
21
+ if (column.secure)
22
+ columns.push(name);
23
+ });
24
+ return columns;
28
25
  }
29
26
  public getReadOnlyColumns(): string[]
30
27
  {
31
28
  let columns: string[] = [];
32
- return this.addReadOnlyColumns(columns);
29
+ this.forEachColumn((name, column: any) =>
30
+ {
31
+ if (column.read_only)
32
+ columns.push(name);
33
+ });
34
+ return columns;
33
35
  }
34
36
  public abstract forEachColumn(handler: (name: string, column: ModelColumnOption) => void): void;
35
37
  public getColumns(secure: boolean | null = false, read_only: boolean | null = null, filter?: any): string[]
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
- start_time: Date | null = null;
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.start_time = new Date();
31
+ this.timer.onStart();
33
32
  }
34
33
  onFinish()
35
34
  {
36
- this.end_time = new Date();
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
+ }