فهرست منبع

Merge pull request #510 from Tresjs/fix/useLogger

fix(useLogger): remove '<empty string>', allow any args/string substitution
andretchen0 1 سال پیش
والد
کامیت
3163714906
1فایلهای تغییر یافته به همراه22 افزوده شده و 6 حذف شده
  1. 22 6
      src/composables/useLogger.ts

+ 22 - 6
src/composables/useLogger.ts

@@ -3,19 +3,35 @@ export const isProd = import.meta.env.MODE === 'production'
 
 
 const logPrefix = '[TresJS ▲ ■ ●] '
 const logPrefix = '[TresJS ▲ ■ ●] '
 
 
+type OneOrMore<T> = { 0: T } & Array<T>
+
 interface LoggerComposition {
 interface LoggerComposition {
-  logError: (message: string, error?: Error | ErrorEvent) => void
-  logWarning: (message: string) => void
+  logError: (...args: OneOrMore<any>) => void
+  logWarning: (...args: OneOrMore<any>) => void
   logMessage: (name: string, value: any) => void
   logMessage: (name: string, value: any) => void
 }
 }
 
 
 export function useLogger(): LoggerComposition {
 export function useLogger(): LoggerComposition {
-  function logError(message: string, error?: Error | ErrorEvent) {
-    console.error(`${logPrefix} ${message}`, error || '')
+  function logError(...args: OneOrMore<any>) {
+    if (typeof args[0] === 'string') {
+      // NOTE: Don't break console string substitution
+      args[0] = logPrefix + args[0]
+    }
+    else {
+      args.unshift(logPrefix)
+    }
+    console.error(...args)
   }
   }
 
 
-  function logWarning(message: string) {
-    console.warn(`${logPrefix} ${message}`)
+  function logWarning(...args: OneOrMore<any>) {
+    if (typeof args[0] === 'string') {
+      // NOTE: Don't break console string substitution
+      args[0] = logPrefix + args[0]
+    }
+    else {
+      args.unshift(logPrefix)
+    }
+    console.warn(...args)
   }
   }
 
 
   function logMessage(name: string, value: any) {
   function logMessage(name: string, value: any) {