src/cm/media/js/lib/yui/yui3-3.15.0/build/yui-log-nodejs/yui-log-nodejs.js
author gibus
Mon, 10 Mar 2014 15:19:48 +0100
changeset 602 e16a97fb364a
permissions -rw-r--r--
Use YUI 3.15
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
602
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
     1
YUI.add('yui-log-nodejs', function (Y, NAME) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
     2
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
     3
var sys = require(process.binding('natives').util ? 'util' : 'sys'),
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
     4
    hasColor = false;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
     5
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
     6
try {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
     7
    var stdio = require("stdio");
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
     8
    hasColor = stdio.isStderrATTY();
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
     9
} catch (ex) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    10
    hasColor = true;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    11
}
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    12
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    13
Y.config.useColor = hasColor;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    14
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    15
Y.consoleColor = function(str, num) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    16
    if (!this.config.useColor) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    17
        return str;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    18
    }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    19
    if (!num) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    20
        num = '32';
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    21
    }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    22
    return "\u001b[" + num +"m" + str + "\u001b[0m";
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    23
};
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    24
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    25
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    26
var logFn = function(str, t, m) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    27
    var id = '', lvl, mLvl;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    28
    if (this.id) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    29
        id = '[' + this.id + ']:';
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    30
    }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    31
    t = t || 'info';
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    32
    m = (m) ? this.consoleColor(' (' +  m.toLowerCase() + '):', 35) : '';
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    33
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    34
    if (str === null) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    35
        str = 'null';
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    36
    }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    37
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    38
    if ((typeof str === 'object') || str instanceof Array) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    39
        try {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    40
            //Should we use this?
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    41
            if (str.tagName || str._yuid || str._query) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    42
                str = str.toString();
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    43
            } else {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    44
                str = sys.inspect(str);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    45
            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    46
        } catch (e) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    47
            //Fail catcher
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    48
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    49
    }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    50
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    51
    lvl = '37;40';
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    52
    mLvl = ((str) ? '' : 31);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    53
    t = t+''; //Force to a string..
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    54
    switch (t.toLowerCase()) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    55
        case 'error':
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    56
            lvl = mLvl = 31;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    57
            break;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    58
        case 'warn':
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    59
            lvl = 33;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    60
            break;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    61
        case 'debug':
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    62
            lvl = 34;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    63
            break;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    64
    }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    65
    if (typeof str === 'string') {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    66
        if (str && str.indexOf("\n") !== -1) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    67
            str = "\n" + str;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    68
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    69
    }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    70
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    71
    // output log messages to stderr
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    72
    sys.error(this.consoleColor(t.toLowerCase() + ':', lvl) + m + ' ' + this.consoleColor(str, mLvl));
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    73
};
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    74
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    75
if (!Y.config.logFn) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    76
    Y.config.logFn = logFn;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    77
}
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    78
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    79
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    80
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    81
}, '@VERSION@');