update dependencies and devDependencies, fix breaking changes from myster-box
[squeep-indie-auther] / src / common.js
index d58f53525812e9ff5e4790972e4936ceb7dd743c..90ae9d2e8e982664e148e641af3afca2b03ba4a9 100644 (file)
@@ -151,6 +151,28 @@ const dateToEpoch = (date) => {
   return Math.ceil(dateMs / 1000);
 };
 
+
+const omit = (o, props) => {
+  return Object.fromEntries(Object.entries(o).filter(([k]) => !props.includes(k)))
+};
+
+
+/**
+ * Log Mystery Box statistics events.
+ * @param {Console} logger
+ * @param {String} scope
+ */
+const mysteryBoxLogger = (logger, scope) => {
+  return (s) => {
+    logger.debug(scope, `${s.packageName}@${s.packageVersion}:${s.method}`, omit(s, [
+      'packageName',
+      'packageVersion',
+      'method',
+    ]));
+  };
+};
+
+
 module.exports = {
   ...common,
   axiosResponseLogData,
@@ -159,7 +181,9 @@ module.exports = {
   ensureArray,
   freezeDeep,
   logTruncate,
+  mysteryBoxLogger,
   newSecret,
+  omit,
   randomBytesAsync,
   validScope,
   validError,