namirasoft-node 1.4.128 → 1.4.130

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.
@@ -27,8 +27,10 @@ export declare abstract class BaseApplication<D extends {
27
27
  protected version: string;
28
28
  protected mode: string;
29
29
  express: express.Express;
30
+ private server;
30
31
  databases: D;
31
32
  logger: ILogger;
33
+ private crons;
32
34
  constructor(base_path: string);
33
35
  abstract getDatabases(): D;
34
36
  protected abstract getILogger(): ILogger;
@@ -70,4 +72,10 @@ export declare abstract class BaseApplication<D extends {
70
72
  addLink_Page(): void;
71
73
  addLink_Swagger(): void;
72
74
  read<T>(file_path: string): T;
75
+ stop(): Promise<void>;
76
+ protected stopDatabase(): Promise<void>;
77
+ protected onBeforeStop(): Promise<void>;
78
+ protected stopExpress(): Promise<void>;
79
+ protected stopCrons(): Promise<void>;
80
+ protected onAfterStop(): Promise<void>;
73
81
  }
@@ -61,6 +61,7 @@ class BaseApplication {
61
61
  constructor(base_path) {
62
62
  var _a, _b, _c, _d, _e, _f, _g, _h;
63
63
  this.links = [];
64
+ this.crons = [];
64
65
  this.base_path = base_path;
65
66
  this.name_asset = "asset";
66
67
  this.name_page = "page";
@@ -90,6 +91,8 @@ class BaseApplication {
90
91
  fs.mkdirSync(this.dir_page);
91
92
  if (!fs.existsSync(this.dir_swagger))
92
93
  fs.mkdirSync(this.dir_swagger, { recursive: true });
94
+ process.on('SIGTERM', () => this.stop());
95
+ process.on('SIGINT', () => this.stop());
93
96
  }
94
97
  foreachController(handler, modes) {
95
98
  return __awaiter(this, void 0, void 0, function* () {
@@ -220,7 +223,7 @@ class BaseApplication {
220
223
  }));
221
224
  this.express.use('/', yield this.getRouter());
222
225
  const port = this.getPort();
223
- this.express.listen(port, () => __awaiter(this, void 0, void 0, function* () {
226
+ this.server = this.express.listen(port, () => __awaiter(this, void 0, void 0, function* () {
224
227
  this.logger.success(`Server is listening on port ${port}`);
225
228
  }));
226
229
  }
@@ -232,6 +235,7 @@ class BaseApplication {
232
235
  this.foreachCron((generator) => __awaiter(this, void 0, void 0, function* () {
233
236
  const template = generator();
234
237
  template.run();
238
+ this.crons.push(template);
235
239
  return true;
236
240
  }));
237
241
  }
@@ -444,6 +448,55 @@ class BaseApplication {
444
448
  let filePath = path.join(__dirname, file_path);
445
449
  return JSON.parse(fs.readFileSync(filePath, 'utf8'));
446
450
  }
451
+ stop() {
452
+ return __awaiter(this, void 0, void 0, function* () {
453
+ setTimeout(() => {
454
+ process.exit(0);
455
+ }, 10000);
456
+ yield this.stopDatabase();
457
+ if (!process.env.NAMIRASOFT_MUTE) {
458
+ yield this.onBeforeStop();
459
+ yield this.stopExpress();
460
+ yield this.stopCrons();
461
+ yield this.onAfterStop();
462
+ }
463
+ setTimeout(() => {
464
+ process.exit(0);
465
+ }, 5000);
466
+ });
467
+ }
468
+ stopDatabase() {
469
+ return __awaiter(this, void 0, void 0, function* () {
470
+ this.databases = this.getDatabases();
471
+ yield this.foreachIDatabase((database) => __awaiter(this, void 0, void 0, function* () {
472
+ yield database.close();
473
+ }));
474
+ this.logger.success("Databases were disconnected.");
475
+ });
476
+ }
477
+ onBeforeStop() {
478
+ return __awaiter(this, void 0, void 0, function* () { });
479
+ }
480
+ stopExpress() {
481
+ return __awaiter(this, void 0, void 0, function* () {
482
+ if (!process.env.NAMIRASOFT_MUTE)
483
+ this.server.close();
484
+ });
485
+ }
486
+ stopCrons() {
487
+ return __awaiter(this, void 0, void 0, function* () {
488
+ if (!process.env.NAMIRASOFT_MUTE) {
489
+ for (let i = 0; i < this.crons.length; i++) {
490
+ const cron = this.crons[i];
491
+ cron.stop();
492
+ }
493
+ }
494
+ });
495
+ }
496
+ onAfterStop() {
497
+ return __awaiter(this, void 0, void 0, function* () {
498
+ });
499
+ }
447
500
  }
448
501
  exports.BaseApplication = BaseApplication;
449
502
  //# sourceMappingURL=BaseApplication.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"BaseApplication.js","sourceRoot":"","sources":["../src/BaseApplication.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"BaseApplication.js","sourceRoot":"","sources":["../src/BaseApplication.ts"],"names":[],"mappings":"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"}
@@ -11,6 +11,7 @@ export type BaseCronInfoType = {
11
11
  export declare abstract class BaseCron<D extends {
12
12
  [name: string]: IDatabase;
13
13
  }> {
14
+ private running;
14
15
  protected log: {
15
16
  enabled: boolean;
16
17
  onStarted: boolean;
@@ -27,4 +28,5 @@ export declare abstract class BaseCron<D extends {
27
28
  preHandle(): Promise<void>;
28
29
  abstract handleOne(): Promise<void>;
29
30
  postHandle(): Promise<void>;
31
+ stop(): void;
30
32
  }
package/dist/BaseCron.js CHANGED
@@ -17,6 +17,7 @@ const node_cron_1 = __importDefault(require("node-cron"));
17
17
  const Timer_1 = require("./Timer");
18
18
  class BaseCron {
19
19
  constructor(app) {
20
+ this.running = true;
20
21
  this.log = {
21
22
  enabled: true,
22
23
  onStarted: true,
@@ -47,7 +48,7 @@ class BaseCron {
47
48
  }
48
49
  loop() {
49
50
  return __awaiter(this, void 0, void 0, function* () {
50
- while (true) {
51
+ while (this.running) {
51
52
  yield this.handler();
52
53
  yield new Promise(resolver => {
53
54
  setTimeout(() => {
@@ -63,11 +64,16 @@ class BaseCron {
63
64
  if (this.log.onStarted)
64
65
  this.app.logger.info(`Cron ${this.info.name} was started.`);
65
66
  try {
66
- this.timer.onStart();
67
- yield this.preHandle();
68
- yield this.handleOne();
69
- yield this.postHandle();
70
- this.timer.onFinish();
67
+ if (this.running)
68
+ this.timer.onStart();
69
+ if (this.running)
70
+ yield this.preHandle();
71
+ if (this.running)
72
+ yield this.handleOne();
73
+ if (this.running)
74
+ yield this.postHandle();
75
+ if (this.running)
76
+ this.timer.onFinish();
71
77
  if (this.log.enabled)
72
78
  if (this.log.onFinished)
73
79
  this.app.logger.info(`Cron ${this.info.name} was finished in ${this.timer.duration}ms.`);
@@ -84,6 +90,9 @@ class BaseCron {
84
90
  postHandle() {
85
91
  return __awaiter(this, void 0, void 0, function* () { });
86
92
  }
93
+ stop() {
94
+ this.running = false;
95
+ }
87
96
  }
88
97
  exports.BaseCron = BaseCron;
89
98
  //# sourceMappingURL=BaseCron.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"BaseCron.js","sourceRoot":"","sources":["../src/BaseCron.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"BaseCron.js","sourceRoot":"","sources":["../src/BaseCron.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,0DAA6B;AAE7B,mCAAgC;AAYhC,MAAsB,QAAQ;IAgB1B,YAAY,GAAuB;QAd3B,YAAO,GAAY,IAAI,CAAC;QACtB,QAAG,GAIT;YACI,OAAO,EAAE,IAAI;YACb,SAAS,EAAE,IAAI;YACf,UAAU,EAAE,IAAI;SACnB,CAAC;QAGI,UAAK,GAAU,IAAI,aAAK,EAAE,CAAC;QAIjC,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,CAAC,OAAO,EACnB,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,IAAI,CAAC,GAAG,CAAC,OAAO;gBAChB,IAAI,IAAI,CAAC,GAAG,CAAC,SAAS;oBAClB,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,IAAI,eAAe,CAAC,CAAC;YACpE,IACA,CAAC;gBAEG,IAAI,IAAI,CAAC,OAAO;oBACZ,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;gBACzB,IAAI,IAAI,CAAC,OAAO;oBACZ,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;gBAE3B,IAAI,IAAI,CAAC,OAAO;oBACZ,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;gBAE3B,IAAI,IAAI,CAAC,OAAO;oBACZ,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;gBAC5B,IAAI,IAAI,CAAC,OAAO;oBACZ,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;gBAE1B,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO;oBAChB,IAAI,IAAI,CAAC,GAAG,CAAC,UAAU;wBACnB,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,IAAI,oBAAoB,IAAI,CAAC,KAAK,CAAC,QAAQ,KAAK,CAAC,CAAC;YACrG,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;IAC9B,IAAI;QAEP,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;IACzB,CAAC;CACJ;AApGD,4BAoGC"}
@@ -14,6 +14,7 @@ export declare abstract class BaseDatabase implements IDatabase {
14
14
  seedBefore(): Promise<void>;
15
15
  seedAfter(): Promise<void>;
16
16
  abstract isHealthy(): Promise<boolean>;
17
+ abstract close(): Promise<void>;
17
18
  addTable(name: string, table: any): void;
18
19
  getTable<T>(name: string): T;
19
20
  paginate(page_number: number, page_size: number, page_size_default?: number): {
@@ -1 +1 @@
1
- {"version":3,"file":"BaseDatabase.js","sourceRoot":"","sources":["../src/BaseDatabase.ts"],"names":[],"mappings":";;;;;;;;;;;;AACA,qDAA2D;AAG3D,MAAsB,YAAY;IAAlC;QAEY,WAAM,GAA4B,EAAE,CAAC;IA6CjD,CAAC;IAtCS,OAAO;8DACX,CAAC;KAAA;IAEG,UAAU;;QAEhB,CAAC;KAAA;IACK,SAAS;;QAEf,CAAC;KAAA;IAED,QAAQ,CAAC,IAAY,EAAE,KAAU;QAE7B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;IAC9B,CAAC;IACD,QAAQ,CAAI,IAAY;QAEpB,IAAI,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAM,CAAC;QACjC,IAAI,CAAC,GAAG;YACJ,gCAAc,CAAC,SAAS,CAAC,GAAG,EAAE,UAAU,IAAI,aAAa,CAAC,CAAC;QAC/D,OAAO,GAAG,CAAC;IACf,CAAC;IACD,QAAQ,CAAC,WAAmB,EAAE,SAAiB,EAAE,iBAA0B;QAGvE,IAAI,KAAK,CAAC,WAAW,CAAC;YAClB,WAAW,GAAG,CAAC,CAAC;QAEpB,IAAI,KAAK,CAAC,SAAS,CAAC;YAChB,IAAI,iBAAiB;gBACjB,SAAS,GAAG,iBAAiB,CAAC;QACtC,IAAI,KAAK,CAAC,SAAS,CAAC;YAChB,SAAS,GAAG,EAAE,CAAC;QAEnB,IAAI,MAAM,GAAG,CAAC,WAAW,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC;QAC3C,IAAI,KAAK,GAAG,SAAS,CAAC;QACtB,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;IAC7B,CAAC;CAEJ;AA/CD,oCA+CC"}
1
+ {"version":3,"file":"BaseDatabase.js","sourceRoot":"","sources":["../src/BaseDatabase.ts"],"names":[],"mappings":";;;;;;;;;;;;AACA,qDAA2D;AAG3D,MAAsB,YAAY;IAAlC;QAEY,WAAM,GAA4B,EAAE,CAAC;IA8CjD,CAAC;IAvCS,OAAO;8DACX,CAAC;KAAA;IAEG,UAAU;;QAEhB,CAAC;KAAA;IACK,SAAS;;QAEf,CAAC;KAAA;IAGD,QAAQ,CAAC,IAAY,EAAE,KAAU;QAE7B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;IAC9B,CAAC;IACD,QAAQ,CAAI,IAAY;QAEpB,IAAI,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAM,CAAC;QACjC,IAAI,CAAC,GAAG;YACJ,gCAAc,CAAC,SAAS,CAAC,GAAG,EAAE,UAAU,IAAI,aAAa,CAAC,CAAC;QAC/D,OAAO,GAAG,CAAC;IACf,CAAC;IACD,QAAQ,CAAC,WAAmB,EAAE,SAAiB,EAAE,iBAA0B;QAGvE,IAAI,KAAK,CAAC,WAAW,CAAC;YAClB,WAAW,GAAG,CAAC,CAAC;QAEpB,IAAI,KAAK,CAAC,SAAS,CAAC;YAChB,IAAI,iBAAiB;gBACjB,SAAS,GAAG,iBAAiB,CAAC;QACtC,IAAI,KAAK,CAAC,SAAS,CAAC;YAChB,SAAS,GAAG,EAAE,CAAC;QAEnB,IAAI,MAAM,GAAG,CAAC,WAAW,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC;QAC3C,IAAI,KAAK,GAAG,SAAS,CAAC;QACtB,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;IAC7B,CAAC;CAEJ;AAhDD,oCAgDC"}
@@ -8,4 +8,5 @@ export interface IDatabase {
8
8
  seedBefore(): Promise<void>;
9
9
  seedAfter(): Promise<void>;
10
10
  isHealthy(): Promise<boolean>;
11
+ close(): Promise<void>;
11
12
  }
package/package.json CHANGED
@@ -8,7 +8,7 @@
8
8
  "framework": "npm",
9
9
  "application": "package",
10
10
  "private": false,
11
- "version": "1.4.128",
11
+ "version": "1.4.130",
12
12
  "author": "Amir Abolhasani",
13
13
  "license": "MIT",
14
14
  "main": "./dist/index.js",
@@ -19,10 +19,10 @@
19
19
  "dependencies": {
20
20
  "@supercharge/request-ip": "^1.2.0",
21
21
  "@types/cors": "^2.8.19",
22
- "@types/express": "^5.0.3",
23
- "@types/node": "^24.7.0",
22
+ "@types/express": "^5.0.5",
23
+ "@types/node": "^24.10.0",
24
24
  "@types/node-cron": "^3.0.11",
25
- "@types/nodemailer": "^7.0.2",
25
+ "@types/nodemailer": "^7.0.3",
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",
@@ -30,11 +30,11 @@
30
30
  "cors": "^2.8.5",
31
31
  "express": "^5.1.0",
32
32
  "joi": "^18.0.1",
33
- "namirasoft-core": "^1.4.95",
34
- "namirasoft-log": "^1.4.37",
33
+ "namirasoft-core": "^1.4.108",
34
+ "namirasoft-log": "^1.4.41",
35
35
  "namirasoft-schema": "^1.4.25",
36
36
  "node-cron": "^4.2.1",
37
- "nodemailer": "^7.0.7",
37
+ "nodemailer": "^7.0.10",
38
38
  "nodemailer-smtp-transport": "^2.7.4",
39
39
  "request-ip": "^3.3.0",
40
40
  "serve-index": "^1.9.1",
@@ -1,6 +1,7 @@
1
1
  import cors from "cors";
2
2
  import express, { Router } from 'express';
3
3
  import * as fs from "fs";
4
+ import * as http from "http";
4
5
  import { EnvService, HTTPMethod, ObjectService, PackageService } from 'namirasoft-core';
5
6
  import { ILogger } from "namirasoft-log";
6
7
  import { ApplicationSchema, BaseVariableSchema, ObjectSchema, SwaggerApplicationBuilder } from 'namirasoft-schema';
@@ -34,8 +35,10 @@ export abstract class BaseApplication<D extends { [name: string]: IDatabase }>
34
35
  protected version: string;
35
36
  protected mode!: string;
36
37
  public express!: express.Express;
38
+ private server!: http.Server<typeof http.IncomingMessage, typeof http.ServerResponse>;
37
39
  public databases!: D;
38
40
  public logger: ILogger;
41
+ private crons: BaseCron<any>[] = [];
39
42
  constructor(base_path: string)
40
43
  {
41
44
  this.base_path = base_path;
@@ -69,6 +72,9 @@ export abstract class BaseApplication<D extends { [name: string]: IDatabase }>
69
72
  fs.mkdirSync(this.dir_page);
70
73
  if (!fs.existsSync(this.dir_swagger))
71
74
  fs.mkdirSync(this.dir_swagger, { recursive: true });
75
+
76
+ process.on('SIGTERM', () => this.stop());
77
+ process.on('SIGINT', () => this.stop());
72
78
  }
73
79
  public abstract getDatabases(): D;
74
80
  protected abstract getILogger(): ILogger;
@@ -220,7 +226,7 @@ export abstract class BaseApplication<D extends { [name: string]: IDatabase }>
220
226
  this.express.use('/', await this.getRouter());
221
227
  // start server
222
228
  const port = this.getPort();
223
- this.express.listen(port, async () =>
229
+ this.server = this.express.listen(port, async () =>
224
230
  {
225
231
  this.logger.success(`Server is listening on port ${port}`);
226
232
  });
@@ -234,6 +240,7 @@ export abstract class BaseApplication<D extends { [name: string]: IDatabase }>
234
240
  {
235
241
  const template = generator() as BaseCron<D>;
236
242
  template.run();
243
+ this.crons.push(template);
237
244
  return true;
238
245
  });
239
246
  }
@@ -469,4 +476,56 @@ export abstract class BaseApplication<D extends { [name: string]: IDatabase }>
469
476
  let filePath = path.join(__dirname, file_path);
470
477
  return JSON.parse(fs.readFileSync(filePath, 'utf8')) as T;
471
478
  }
479
+ // Stop
480
+
481
+ async stop()
482
+ {
483
+ setTimeout(() =>
484
+ {
485
+ process.exit(0);
486
+ }, 10000);
487
+ await this.stopDatabase();
488
+
489
+ if (!process.env.NAMIRASOFT_MUTE)
490
+ {
491
+ await this.onBeforeStop();
492
+ await this.stopExpress();
493
+ await this.stopCrons();
494
+ await this.onAfterStop();
495
+ }
496
+ setTimeout(() =>
497
+ {
498
+ process.exit(0);
499
+ }, 5000);
500
+ }
501
+ protected async stopDatabase(): Promise<void>
502
+ {
503
+ this.databases = this.getDatabases();
504
+ await this.foreachIDatabase(async database =>
505
+ {
506
+ await database.close();
507
+ });
508
+ this.logger.success("Databases were disconnected.");
509
+ }
510
+ protected async onBeforeStop(): Promise<void>
511
+ { }
512
+ protected async stopExpress(): Promise<void>
513
+ {
514
+ if (!process.env.NAMIRASOFT_MUTE)
515
+ this.server.close();
516
+ }
517
+ protected async stopCrons(): Promise<void>
518
+ {
519
+ if (!process.env.NAMIRASOFT_MUTE)
520
+ {
521
+ for (let i = 0; i < this.crons.length; i++)
522
+ {
523
+ const cron = this.crons[i];
524
+ cron.stop();
525
+ }
526
+ }
527
+ }
528
+ protected async onAfterStop(): Promise<void>
529
+ {
530
+ }
472
531
  }
package/src/BaseCron.ts CHANGED
@@ -14,6 +14,7 @@ export type BaseCronInfoType =
14
14
 
15
15
  export abstract class BaseCron<D extends { [name: string]: IDatabase }>
16
16
  {
17
+ private running: boolean = true;
17
18
  protected log: {
18
19
  enabled: boolean;
19
20
  onStarted: boolean;
@@ -60,7 +61,7 @@ export abstract class BaseCron<D extends { [name: string]: IDatabase }>
60
61
 
61
62
  private async loop()
62
63
  {
63
- while (true)
64
+ while (this.running)
64
65
  {
65
66
  await this.handler()
66
67
  await new Promise(resolver =>
@@ -81,13 +82,18 @@ export abstract class BaseCron<D extends { [name: string]: IDatabase }>
81
82
  try
82
83
  {
83
84
  // preHandle
84
- this.timer.onStart();
85
- await this.preHandle();
85
+ if (this.running)
86
+ this.timer.onStart();
87
+ if (this.running)
88
+ await this.preHandle();
86
89
  // Handler
87
- await this.handleOne();
90
+ if (this.running)
91
+ await this.handleOne();
88
92
  // postHandle
89
- await this.postHandle();
90
- this.timer.onFinish();
93
+ if (this.running)
94
+ await this.postHandle();
95
+ if (this.running)
96
+ this.timer.onFinish();
91
97
 
92
98
  if (this.log.enabled)
93
99
  if (this.log.onFinished)
@@ -102,4 +108,8 @@ export abstract class BaseCron<D extends { [name: string]: IDatabase }>
102
108
  async preHandle(): Promise<void> { }
103
109
  abstract handleOne(): Promise<void>;
104
110
  async postHandle(): Promise<void> { }
111
+ public stop()
112
+ {
113
+ this.running = false;
114
+ }
105
115
  }
@@ -21,6 +21,7 @@ export abstract class BaseDatabase implements IDatabase
21
21
  {
22
22
  }
23
23
  abstract isHealthy(): Promise<boolean>;
24
+ abstract close(): Promise<void>;
24
25
  addTable(name: string, table: any)
25
26
  {
26
27
  this.tables[name] = table;
package/src/IDatabase.ts CHANGED
@@ -9,4 +9,5 @@ export interface IDatabase
9
9
  seedBefore(): Promise<void>;
10
10
  seedAfter(): Promise<void>;
11
11
  isHealthy(): Promise<boolean>;
12
+ close(): Promise<void>;
12
13
  }