]> git.r.bdr.sh - rbdr/cologne/commitdiff
Add Cobalt now/stringify + remove old formatters
authorBen Beltran <redacted>
Wed, 24 Apr 2013 17:05:14 +0000 (12:05 -0500)
committerBen Beltran <redacted>
Wed, 24 Apr 2013 17:05:14 +0000 (12:05 -0500)
lib/cobalt.js

index 5ae39f2577490fcfd41cfdb2e5c7299b4e6e23da..9554a04ad248b7f3ef06412448e8aa387de350b1 100644 (file)
@@ -19,8 +19,6 @@
   // Load up loggers + formatters
   if (typeof require === 'function') {
     // Formatters
-    Cobalt.Formatter.Simple = require('./formatters/simple.js').Simple;
-    Cobalt.Formatter.Ansi = require('./formatters/ansi.js').Ansi;
     Cobalt.Formatter.Token = require('./formatters/token.js').Token;
 
     // Loggers
     return Date.now();
   }
 
+  // Stringify with circular dereference.
+  Cobalt.stringify = function (object) {
+    var cache = [], stringified;
+    stringified = JSON.stringify(object, function (key, value) {
+      if (typeof value === 'object' && value !== null) {
+        if (cache.indexOf(value) !== -1) {
+          return "[Circular]";
+        }
+        cache.push(value);
+      }
+      return value;
+    });
+    cache = null;
+
+    return stringified;
+  }
+
   Cobalt.Console = Class(Cobalt, 'Console')({
     prototype : {
       from : "Generic Cobalt Logger",
@@ -82,7 +97,7 @@
           if (typeof item !== "object") {
             item = {message : item.toString() };
           } else {
-            item.message = JSON.stringify(item);
+            item.message = Cobalt.stringify(item);
           }
 
           item._cobaltLog = true;
     global.Formatter = Cobalt.Formatter;
     global.Logger = Cobalt.Logger;
     global.Console = Cobalt.Console;
+    global.now = Cobalt.now;
+    global.stringify = Cobalt.stringify;
   } else {
     global.Cobalt = Cobalt;
   }