micronodelib 1.0.0 → 1.0.3

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
+ ```
@@ -0,0 +1,3 @@
1
+ export { httpContextMiddleware } from "./context/http-context";
2
+ export { requestLogMiddleware } from "./logging/middleware";
3
+ export { Logger } from "./logging/logger";
package/dist/index.js ADDED
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Logger = exports.requestLogMiddleware = exports.httpContextMiddleware = void 0;
4
+ var http_context_1 = require("./context/http-context");
5
+ Object.defineProperty(exports, "httpContextMiddleware", { enumerable: true, get: function () { return http_context_1.httpContextMiddleware; } });
6
+ var middleware_1 = require("./logging/middleware");
7
+ Object.defineProperty(exports, "requestLogMiddleware", { enumerable: true, get: function () { return middleware_1.requestLogMiddleware; } });
8
+ var logger_1 = require("./logging/logger");
9
+ Object.defineProperty(exports, "Logger", { enumerable: true, get: function () { return logger_1.Logger; } });
@@ -42,7 +42,7 @@ const winstonLogger = winston_1.default.createLogger({
42
42
  request_id: (0, express_http_context_1.get)('reqId')
43
43
  };
44
44
  info.stacktrace = info.stack;
45
- info.message = "";
45
+ info.message = null;
46
46
  delete info.timestamp;
47
47
  delete info.stack;
48
48
  return info;
@@ -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;
@@ -24,18 +24,20 @@ const requestLogMiddleware = function (opt) {
24
24
  request_method: req.method,
25
25
  query: new URLSearchParams(req.query).toString(),
26
26
  url: req.url,
27
+ device_id: req.headers['device-id'],
28
+ device_session_id: req.headers['device-session-id'],
27
29
  request_id: req.headers['x-request-id'],
28
30
  client_ip: req.headers['x-forwarded-for'] || (req.connection ? req.connection.remoteAddress : null),
29
31
  user_agent: req.headers['user-agent']
30
32
  };
31
- info.message = "";
33
+ info.message = null;
32
34
  delete info.timestamp;
33
35
  delete info.meta;
34
36
  return info;
35
37
  }),
36
38
  transports: configuration_1.transports,
37
39
  ignoreRoute: function (req, res) {
38
- return opt.ignoreRoutes.length > 0 && opt.ignoreRoutes.indexOf(req.url) >= 0;
40
+ return opt !== undefined && opt.ignoreRoutes.length > 0 && opt.ignoreRoutes.indexOf(req.url) >= 0;
39
41
  }
40
42
  });
41
43
  };
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "micronodelib",
3
- "version": "1.0.0",
4
- "description": "Common package for NodeJs application",
3
+ "version": "1.0.3",
4
+ "description": "Common core for NodeJs project",
5
5
  "author": "Thang Bui",
6
6
  "license": "MIT",
7
7
  "main": "dist/index.js",