bump package version to 3.0.3
[squeep-logger-json-console] / lib / json-replacers.js
index 2160ad8635af71f9aed3fbd169c02cd17df71849..0ccea720bd7e77ff7ca8702fa74e2cecb2a941e8 100644 (file)
@@ -4,67 +4,35 @@
  * Here are some replacers for rendering peculiar entities as JSON suitable for logging.
  */
 
-const http = require('http');
-
-/**
- * @typedef {Object} ReplacerResult
- * @property {Boolean} replaced
- * @property {*} value
- */
-
-
-/**
- * template for replacers
- * @param {String} _key
- * @param {*} value
- * @returns {ReplacerResult}
- */
-/* istanbul ignore next */
-function _replacer(_key, value) {
-  let replaced = false;
-
-  if (undefined) { // eslint-disable-line no-constant-condition
-    replaced = true;
-
-    const newValue = Object.assign({}, value);
-
-    value = newValue;
-  }
-  return { replaced, value };
-}
-
+const http = require('node:http');
 
 /**
  * Convert any Error to a plain Object.
- * @param {String} _key
- * @param {*} value
- * @returns {ReplacerResult}
+ * @param {string} _key key, unused
+ * @param {*} value value to possibly replace
+ * @returns {object} value or replaced value
  */
 function replacerError(_key, value) {
-  let replaced = false;
   if (value instanceof Error) {
-    replaced = true;
     const newValue = {};
     Object.getOwnPropertyNames(value).forEach((propertyName) => newValue[propertyName] = value[propertyName]); // eslint-disable-line security/detect-object-injection
     value = newValue;
   }
-  return { replaced, value };
+  return value;
 }
 
 
 /**
  * Convert any BigInt type to a String.
- * @param {String} _key
- * @param {*} value
- * @returns {ReplacerResult}
+ * @param {string} _key key, unused
+ * @param {*} value value to possibly replace
+ * @returns {string} value or replaced value
  */
 function replacerBigInt(_key, value) {
-  let replaced = false;
   if (typeof value === 'bigint') {
-    replaced = true;
     value = value.toString();
   }
-  return { replaced, value };
+  return value;
 }
 
 
@@ -73,14 +41,12 @@ function replacerBigInt(_key, value) {
  * Also sanitizes any Authorization header.  We do this here rather than
  * in sanitization stage so that we do not have to rely on a set path to
  * this object.
- * @param {String} _key
- * @param {*} value
- * @returns {ReplacerResult}
+ * @param {string} _key key, unused
+ * @param {*} value value to possibly replace
+ * @returns {object} value or replaved value
  */
 function replacerHttpIncomingMessage(_key, value) {
-  let replaced = false;
   if (value instanceof http.IncomingMessage) {
-    replaced = true;
     const newValue = {};
     [
       'method',
@@ -96,35 +62,34 @@ function replacerHttpIncomingMessage(_key, value) {
       // This blurs entire auth string if no space found, because -1 from indexOf.
       const blurredAuthHeader = authHeader.slice(0, spaceIndex + 1) + '*'.repeat(authHeader.length - (spaceIndex + 1));
       // New headers object, as we change it.
-      newValue.headers = Object.assign({}, newValue.headers, {
+      newValue.headers = {
+        ...newValue.headers,
         authorization: blurredAuthHeader,
-      });
+      };
     }
     value = newValue;
   }
-  return { replaced, value };
+  return value;
 }
 
 
 /**
  * Convert any ServerResponse or OutgoingMessage to a subset Object.
- * @param {String} _key
- * @param {*} value
- * @returns {ReplacerResult}
+ * @param {string} _key key, unused
+ * @param {*} value value to possibly replace
+ * @returns {object} value or replaced value
  */
 function replacerHttpServerResponse(_key, value) {
-  let replaced = false;
   if (value instanceof http.OutgoingMessage || value instanceof http.ServerResponse) {
-    replaced = true;
     const newValue = {};
     [
       'statusCode',
       'statusMessage',
-    ].forEach((property) => newValue[property] = value[property]);  // eslint-disable-line security/detect-object-injection
+    ].forEach((property) => newValue[property] = value[property]); // eslint-disable-line security/detect-object-injection
     newValue.headers = value.getHeaders();
     value = newValue;
   }
-  return { replaced, value };
+  return value;
 }