micronodelib 1.0.1 → 1.0.2

Sign up to get free protection for your applications and to get access to all the features.
package/README.md ADDED
@@ -0,0 +1,41 @@
1
+ # Micronodelib
2
+
3
+ Common core for NodeJs project.
4
+
5
+ ## Features
6
+
7
+ - Request context injected
8
+ - Http request log
9
+ - Standard logging format
10
+
11
+ ## Install
12
+
13
+ ```shell
14
+ npm install micronodelib
15
+
16
+ # Or
17
+
18
+ yarn add micronodelib
19
+ ```
20
+
21
+ ## Usage
22
+
23
+ ```shell
24
+ import express, {Application} from "express";
25
+ import {Logger, httpContextMiddleware, requestLogMiddleware} from "micronodelib";
26
+ const app: Application = express();
27
+
28
+ # Enable request context
29
+ app.use(httpContextMiddleware);
30
+
31
+ # Enable http request log
32
+ app.use(requestLogMiddleware({
33
+ # Ignore request log for specific routes
34
+ ignoreRoutes: ["/actuator/health"]
35
+ }));
36
+
37
+ app.listen(3000, () => {
38
+ # Using standard log level: debug, info, warn, error
39
+ Logger.info('App started');
40
+ })
41
+ ```
@@ -35,17 +35,16 @@ const util = __importStar(require("util"));
35
35
  // and used to log messages.
36
36
  const winstonLogger = winston_1.default.createLogger({
37
37
  format: (0, configuration_1.formatter)(info => {
38
- info.level = info.level.toUpperCase();
39
- info.msg = info.message;
40
- info.ts = Date.parse(info.timestamp) / 1000;
41
- info.request_meta = {
42
- request_id: (0, express_http_context_1.get)('reqId')
38
+ return {
39
+ level: info.level.toUpperCase(),
40
+ msg: info.message,
41
+ message: null,
42
+ ts: Date.parse(info.timestamp) / 1000,
43
+ request_meta: {
44
+ request_id: (0, express_http_context_1.get)('reqId'),
45
+ },
46
+ stacktrace: info.stack
43
47
  };
44
- info.stacktrace = info.stack;
45
- info.message = "";
46
- delete info.timestamp;
47
- delete info.stack;
48
- return info;
49
48
  }),
50
49
  transports: configuration_1.transports,
51
50
  });
@@ -2,4 +2,4 @@ import { Handler } from "express";
2
2
  export interface RequestLogOptions {
3
3
  ignoreRoutes: string[];
4
4
  }
5
- export declare const requestLogMiddleware: (opt: RequestLogOptions) => Handler;
5
+ export declare const requestLogMiddleware: (opt?: RequestLogOptions | undefined) => Handler;
@@ -13,29 +13,29 @@ const requestLogMiddleware = function (opt) {
13
13
  msg: 'finish router',
14
14
  format: (0, configuration_1.formatter)(info => {
15
15
  const req = info.meta.req;
16
- info.level = info.level.toUpperCase();
17
- info.msg = info.message;
18
- info.ts = Date.parse(info.timestamp) / 1000;
19
- info.request_meta = {
20
- status: info.meta.res.statusCode,
21
- execution_time: info.meta.responseTime,
22
- request_pattern: url_1.default.parse(req.url).pathname,
23
- request_path: url_1.default.parse(req.url).pathname,
24
- request_method: req.method,
25
- query: new URLSearchParams(req.query).toString(),
26
- url: req.url,
27
- request_id: req.headers['x-request-id'],
28
- client_ip: req.headers['x-forwarded-for'] || (req.connection ? req.connection.remoteAddress : null),
29
- user_agent: req.headers['user-agent']
16
+ return {
17
+ level: info.level.toUpperCase(),
18
+ msg: info.message,
19
+ message: null,
20
+ ts: Date.parse(info.timestamp) / 1000,
21
+ request_meta: {
22
+ status: info.meta.res.statusCode,
23
+ execution_time: info.meta.responseTime,
24
+ request_pattern: url_1.default.parse(req.url).pathname,
25
+ request_path: url_1.default.parse(req.url).pathname,
26
+ request_method: req.method,
27
+ query: new URLSearchParams(req.query).toString(),
28
+ url: req.url,
29
+ device_id: req.headers['device-id'],
30
+ request_id: req.headers['x-request-id'],
31
+ client_ip: req.headers['x-forwarded-for'] || (req.connection ? req.connection.remoteAddress : null),
32
+ user_agent: req.headers['user-agent']
33
+ }
30
34
  };
31
- info.message = "";
32
- delete info.timestamp;
33
- delete info.meta;
34
- return info;
35
35
  }),
36
36
  transports: configuration_1.transports,
37
37
  ignoreRoute: function (req, res) {
38
- return opt.ignoreRoutes.length > 0 && opt.ignoreRoutes.indexOf(req.url) >= 0;
38
+ return opt !== undefined && opt.ignoreRoutes.length > 0 && opt.ignoreRoutes.indexOf(req.url) >= 0;
39
39
  }
40
40
  });
41
41
  };
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "micronodelib",
3
- "version": "1.0.1",
4
- "description": "Common package for NodeJs application",
3
+ "version": "1.0.2",
4
+ "description": "Common core for NodeJs project",
5
5
  "author": "Thang Bui",
6
6
  "license": "MIT",
7
7
  "main": "dist/index.js",