about summary refs log tree commit diff
path: root/src/logger/util.ts
diff options
context:
space:
mode:
Diffstat (limited to 'src/logger/util.ts')
-rw-r--r--src/logger/util.ts29
1 files changed, 29 insertions, 0 deletions
diff --git a/src/logger/util.ts b/src/logger/util.ts
new file mode 100644
index 000000000..f1e12b164
--- /dev/null
+++ b/src/logger/util.ts
@@ -0,0 +1,29 @@
+import {LogLevel, Metadata, Serializable} from '#/logger/types'
+
+export const enabledLogLevels: {
+  [key in LogLevel]: LogLevel[]
+} = {
+  [LogLevel.Debug]: [
+    LogLevel.Debug,
+    LogLevel.Info,
+    LogLevel.Log,
+    LogLevel.Warn,
+    LogLevel.Error,
+  ],
+  [LogLevel.Info]: [LogLevel.Info, LogLevel.Log, LogLevel.Warn, LogLevel.Error],
+  [LogLevel.Log]: [LogLevel.Log, LogLevel.Warn, LogLevel.Error],
+  [LogLevel.Warn]: [LogLevel.Warn, LogLevel.Error],
+  [LogLevel.Error]: [LogLevel.Error],
+}
+
+export function prepareMetadata(
+  metadata: Metadata,
+): Record<string, Serializable> {
+  return Object.keys(metadata).reduce((acc, key) => {
+    let value = metadata[key]
+    if (value instanceof Error) {
+      value = value.toString()
+    }
+    return {...acc, [key]: value}
+  }, {})
+}