'use strict';
var util = require('util');
var colors = util.inspect.colors;
var colo = {};

var deco = function(_styles) {
  var decorator = function() {
    return decorate.apply(decorator, arguments);
  };
  decorator._styles = _styles;
  decorator.__proto__ = Object.defineProperties(function(){}, styles);
  return decorator;
}

var decorate = function() {
  var result = arguments[0];
  this._styles.forEach(function(style) {
    var color = colors[style];
    if (color) {
      result = '\u001b[' + color[0] + 'm' + result + '\u001b[' + color[1] + 'm';
    }
  });
  return result;
}

var styles = (function () {
  var result = {};
  Object.keys(colors).forEach(function (color) {
  result[color] = {
    get: function () {
      if (!this._styles) this._styles = [];
      return deco(this._styles.concat(color));
    }
  };
  });
  return result;
})();

Object.defineProperties(colo, styles);

module.exports = colo;

@@ -139,24 +139,27 @@
  = function(
+str
 ) %7B%0A    retu
@@ -187,25 +187,21 @@
 orator, 
-arguments
+%5Bstr%5D
 );%0A  %7D;%0A
@@ -323,16 +323,17 @@
 rator;%0A%7D
+;
 %0A%0Avar de
@@ -350,16 +350,19 @@
 unction(
+str
 ) %7B%0A  va
@@ -376,20 +376,11 @@
 t = 
-arguments%5B0%5D
+str
 ;%0A  
@@ -577,16 +577,17 @@
 esult;%0A%7D
+;
 %0A%0Avar st
@@ -676,16 +676,18 @@
 olor) %7B%0A
+  
   result
@@ -702,16 +702,18 @@
 = %7B%0A    
+ 
+ 
 get: fun
@@ -719,24 +719,26 @@
 nction () %7B%0A
+  
       if (!t
@@ -771,24 +771,26 @@
 = %5B%5D;%0A      
+  
 return deco(
@@ -822,18 +822,22 @@
 ));%0A    
-%7D%0A
+  %7D%0A  
   %7D;%0A  %7D

fix indent