namirasoft-node 1.4.74 → 1.4.76

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,14 +10,8 @@ export declare abstract class BaseController<D extends {
10
10
  }, State, Props, Output> {
11
11
  protected log: {
12
12
  show: boolean;
13
- beginning: {
14
- show: boolean;
15
- onBefore: (() => Promise<void>)[];
16
- };
17
- end: {
18
- show: boolean;
19
- onBefore: (() => Promise<void>)[];
20
- };
13
+ can: (() => Promise<boolean>)[];
14
+ onBefore: (() => Promise<void>)[];
21
15
  };
22
16
  app: BaseApplication<D>;
23
17
  req: express.Request;
@@ -17,14 +17,8 @@ class BaseController {
17
17
  constructor(app, req, res) {
18
18
  this.log = {
19
19
  show: true,
20
- beginning: {
21
- show: false,
22
- onBefore: []
23
- },
24
- end: {
25
- show: false,
26
- onBefore: []
27
- }
20
+ can: [],
21
+ onBefore: []
28
22
  };
29
23
  this.validate_query = true;
30
24
  this.bodyAs = {
@@ -58,15 +52,17 @@ class BaseController {
58
52
  this.meta = new Meta_1.Meta(info, this.req);
59
53
  this.output = null;
60
54
  this.result = null;
55
+ let showLog = (log) => __awaiter(this, void 0, void 0, function* () {
56
+ if (this.log.show)
57
+ if (!this.log.can.some((x) => !x())) {
58
+ for (let i = 0; i < this.log.onBefore.length; i++)
59
+ yield this.log.onBefore[i]();
60
+ log();
61
+ }
62
+ });
63
+ let failed = false;
61
64
  try {
62
65
  this.meta.onStart();
63
- if (this.log.show)
64
- if (this.log.beginning.show)
65
- if (!this.meta.url.endsWith("/healthz")) {
66
- for (let i = 0; i < this.log.beginning.onBefore.length; i++)
67
- yield this.log.beginning.onBefore[i]();
68
- this.app.logger.info(this.meta);
69
- }
70
66
  let accpet = new namirasoft_core_1.ObjectService(this.req.headers.accept).getString("");
71
67
  let isJson = accpet.includes("application/json") || accpet.includes("*/*");
72
68
  let isSchema = accpet.includes("application/schema");
@@ -102,6 +98,7 @@ class BaseController {
102
98
  namirasoft_core_1.ErrorOperation.throwHTTP(400, "Invalid accept: " + accpet);
103
99
  }
104
100
  catch (error) {
101
+ failed = true;
105
102
  let message;
106
103
  if (error instanceof Error) {
107
104
  this.meta.error = error;
@@ -111,12 +108,17 @@ class BaseController {
111
108
  message = error + "";
112
109
  if (error instanceof namirasoft_core_1.HTTPError) {
113
110
  this.meta.code = error.code;
114
- this.app.logger.error(error.message + "\n" + JSON.stringify(this.meta, undefined, 4), error.stack);
111
+ yield showLog(() => {
112
+ this.app.logger.error(error.message, error.stack, JSON.stringify(this.meta, undefined, 4));
113
+ });
115
114
  }
116
115
  else {
117
116
  this.meta.code = 500;
118
- if (error instanceof Error)
119
- this.app.logger.critical(error.message + "\n" + JSON.stringify(this.meta, undefined, 4), error.stack);
117
+ if (error instanceof Error) {
118
+ yield showLog(() => {
119
+ this.app.logger.critical(error.message, error.stack, JSON.stringify(this.meta, undefined, 4));
120
+ });
121
+ }
120
122
  }
121
123
  this.meta.message = message;
122
124
  if (error instanceof namirasoft_core_1.HTTPError)
@@ -131,13 +133,10 @@ class BaseController {
131
133
  this.result = this.output;
132
134
  }
133
135
  this.meta.onFinish();
134
- if (this.log.show)
135
- if (this.log.end.show)
136
- if (!this.meta.url.endsWith("/healthz")) {
137
- for (let i = 0; i < this.log.end.onBefore.length; i++)
138
- yield this.log.end.onBefore[i]();
139
- this.app.logger.info(this.meta);
140
- }
136
+ if (!failed)
137
+ yield showLog(() => {
138
+ this.app.logger.info(JSON.stringify(this.meta, undefined, 4));
139
+ });
141
140
  if (this.meta.redirect_location)
142
141
  return this.res.redirect(this.meta.code, this.meta.redirect_location);
143
142
  return this.res.status(this.meta.code).send(this.result);
@@ -1 +1 @@
1
- {"version":3,"file":"BaseController.js","sourceRoot":"","sources":["../src/BaseController.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"BaseController.js","sourceRoot":"","sources":["../src/BaseController.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -8,7 +8,7 @@
8
8
  "framework": "npm",
9
9
  "application": "package",
10
10
  "private": false,
11
- "version": "1.4.74",
11
+ "version": "1.4.76",
12
12
  "author": "Amir Abolhasani",
13
13
  "license": "MIT",
14
14
  "main": "./dist/index.js",
@@ -10,24 +10,12 @@ export abstract class BaseController<D extends { [name: string]: BaseDatabase },
10
10
  {
11
11
  protected log: {
12
12
  show: boolean;
13
- beginning: {
14
- show: boolean;
15
- onBefore: (() => Promise<void>)[];
16
- }
17
- end: {
18
- show: boolean;
19
- onBefore: (() => Promise<void>)[];
20
- }
13
+ can: (() => Promise<boolean>)[];
14
+ onBefore: (() => Promise<void>)[];
21
15
  } = {
22
16
  show: true,
23
- beginning: {
24
- show: false,
25
- onBefore: []
26
- },
27
- end: {
28
- show: false,
29
- onBefore: []
30
- }
17
+ can: [],
18
+ onBefore: []
31
19
  };
32
20
  public app: BaseApplication<D>;
33
21
  public req: express.Request;
@@ -87,18 +75,24 @@ export abstract class BaseController<D extends { [name: string]: BaseDatabase },
87
75
  // output
88
76
  this.output = null;
89
77
  this.result = null;
78
+
79
+ let showLog = async (log: () => void) =>
80
+ {
81
+ if (this.log.show)
82
+ if (!this.log.can.some((x) => !x()))
83
+ {
84
+ for (let i = 0; i < this.log.onBefore.length; i++)
85
+ await this.log.onBefore[i]();
86
+ log();
87
+ }
88
+ }
89
+
90
+ let failed = false;
91
+
90
92
  try
91
93
  {
92
94
  // meta
93
95
  this.meta.onStart();
94
- if (this.log.show)
95
- if (this.log.beginning.show)
96
- if (!this.meta.url.endsWith("/healthz"))
97
- {
98
- for (let i = 0; i < this.log.beginning.onBefore.length; i++)
99
- await this.log.beginning.onBefore[i]();
100
- this.app.logger.info(this.meta);
101
- }
102
96
 
103
97
  let accpet: string = new ObjectService(this.req.headers.accept).getString("");
104
98
  let isJson = accpet.includes("application/json") || accpet.includes("*/*");
@@ -149,6 +143,7 @@ export abstract class BaseController<D extends { [name: string]: BaseDatabase },
149
143
  ErrorOperation.throwHTTP(400, "Invalid accept: " + accpet);
150
144
  } catch (error)
151
145
  {
146
+ failed = true;
152
147
  let message: string;
153
148
  if (error instanceof Error)
154
149
  {
@@ -161,13 +156,21 @@ export abstract class BaseController<D extends { [name: string]: BaseDatabase },
161
156
  if (error instanceof HTTPError)
162
157
  {
163
158
  this.meta.code = error.code;
164
- this.app.logger.error(error.message + "\n" + JSON.stringify(this.meta, undefined, 4), error.stack);
159
+ await showLog(() =>
160
+ {
161
+ this.app.logger.error(error.message, error.stack, JSON.stringify(this.meta, undefined, 4));
162
+ });
165
163
  }
166
164
  else
167
165
  {
168
166
  this.meta.code = 500;
169
167
  if (error instanceof Error)
170
- this.app.logger.critical(error.message + "\n" + JSON.stringify(this.meta, undefined, 4), error.stack);
168
+ {
169
+ await showLog(() =>
170
+ {
171
+ this.app.logger.critical(error.message, error.stack, JSON.stringify(this.meta, undefined, 4));
172
+ });
173
+ }
171
174
  }
172
175
  this.meta.message = message;
173
176
  if (error instanceof HTTPError)
@@ -186,14 +189,12 @@ export abstract class BaseController<D extends { [name: string]: BaseDatabase },
186
189
 
187
190
  // finish
188
191
  this.meta.onFinish();
189
- if (this.log.show)
190
- if (this.log.end.show)
191
- if (!this.meta.url.endsWith("/healthz"))
192
- {
193
- for (let i = 0; i < this.log.end.onBefore.length; i++)
194
- await this.log.end.onBefore[i]();
195
- this.app.logger.info(this.meta);
196
- }
192
+
193
+ if (!failed)
194
+ await showLog(() =>
195
+ {
196
+ this.app.logger.info(JSON.stringify(this.meta, undefined, 4));
197
+ });
197
198
 
198
199
  if (this.meta.redirect_location)
199
200
  return this.res.redirect(this.meta.code, this.meta.redirect_location);