@opengis/fastify-table 2.5.8 → 2.5.9

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.
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../server/plugins/logger/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAgC,MAAM,SAAS,CAAC;AAyD7E,iBAAS,YAAY,CAAC,OAAO,EAAE,eAAe,QA+B7C;AACD,eAAe,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../server/plugins/logger/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAgC,MAAM,SAAS,CAAC;AAqE7E,iBAAS,YAAY,CAAC,OAAO,EAAE,eAAe,QA+C7C;AACD,eAAe,YAAY,CAAC"}
@@ -2,6 +2,12 @@ import errorMessage from "./errorMessage.js";
2
2
  import errorStatus from "./errorStatus.js";
3
3
  import logger from "./getLogger.js";
4
4
  import pgClients from "../pg/pgClients.js";
5
+ const DEFAULT_LOG_STATUS_CODES = [403, 409, 413, 415, 429];
6
+ const logStatusCodes = typeof process.env["LOG_STATUS_CODES"] === "string"
7
+ ? process.env["LOG_STATUS_CODES"].split(",").map((el) => el - 0)
8
+ : DEFAULT_LOG_STATUS_CODES;
9
+ const logResponseCodes = process.env.LOG === "true" ? logStatusCodes : [];
10
+ const logWarningCodes = process.env.LOG === "true" ? logStatusCodes.filter((el) => el >= 400) : [];
5
11
  // avoid process exit with exception on network changes: disconnect from db, internet altogether etc
6
12
  process.on("uncaughtException", (err) => {
7
13
  if (err.message === "Connection terminated unexpectedly" ||
@@ -46,18 +52,32 @@ process.on("unhandledRejection", (err) => {
46
52
  throw err;
47
53
  });
48
54
  function loggerPlugin(fastify) {
49
- fastify.addHook("onResponse", async (req, reply) => {
55
+ fastify.addHook("onResponse", async (request, reply) => {
50
56
  if (reply?.statusCode && reply.statusCode >= 400) {
51
57
  logger.metrics(`error-count:${reply.statusCode}`);
52
58
  }
59
+ if (reply?.statusCode && logResponseCodes.includes(reply.statusCode)) {
60
+ const { elapsedTime, statusCode } = reply;
61
+ const { method, url } = request;
62
+ if (statusCode === 200 && url.startsWith("/logger-file/"))
63
+ return; // skip logger self-log
64
+ logger.file("request", { elapsedTime, statusCode, method, url });
65
+ }
53
66
  });
54
67
  fastify.setErrorHandler(async (error, request, reply) => {
55
- logger.error(error, request);
56
- console.error({
57
- msg: error.message,
58
- where: error.where,
59
- stack: error.stack,
60
- });
68
+ if (!error.statusCode || error.statusCode >= 500) {
69
+ logger.error(error, request);
70
+ }
71
+ if (error.statusCode && logWarningCodes.includes(error.statusCode)) {
72
+ logger.warn(error, request);
73
+ }
74
+ if (process.env.trace === "true") {
75
+ console.error({
76
+ msg: error.message,
77
+ where: error.where,
78
+ stack: error.stack,
79
+ });
80
+ }
61
81
  const statusCode = errorStatus(error) || 500;
62
82
  const message = errorMessage(error, statusCode);
63
83
  return reply.status(statusCode).send({
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@opengis/fastify-table",
3
- "version": "2.5.8",
3
+ "version": "2.5.9",
4
4
  "type": "module",
5
5
  "description": "core-plugins",
6
6
  "keywords": [