solid-ui
Version:
UI library for writing Solid read-write-web applications
118 lines (93 loc) • 2.78 kB
JavaScript
;
// Log of diagnostics -- node module version
/* global alert */
var wrapper = function wrapper() {
var logger = {}; // /////////////////////// Logging
//
// bitmask levels
// var TNONE = 0
var TERROR = 1;
var TWARN = 2;
var TMESG = 4;
var TSUCCESS = 8;
var TINFO = 16;
var TDEBUG = 32;
var TALL = 63;
logger.level = TERROR + TWARN + TMESG;
logger.ascending = false;
logger.msg = function (str, type, typestr) {
if (!type) {
type = TMESG;
typestr = 'mesg';
}
if (!(logger.level & type)) return; // bitmask
if (typeof document !== 'undefined') {
// Not AJAX environment
var logArea = document.getElementById('status');
if (!logArea) return; // Local version to reduce dependencies
var escapeForXML = function escapeForXML(str) {
// don't use library one in case ithasn't been loaded yet
return str.replace(/&/g, '&').replace(/</g, '<');
};
var addendum = document.createElement('span');
addendum.setAttribute('class', typestr);
var now = new Date();
addendum.innerHTML = now.getHours() + ':' + now.getMinutes() + ':' + now.getSeconds() + ' [' + typestr + '] ' + escapeForXML(str) + '<br/>';
if (!logger.ascending) {
logArea.appendChild(addendum);
} else {
logArea.insertBefore(addendum, logArea.firstChild);
}
} else if (typeof console !== 'undefined') {
// node.js
console.log(str);
/*
} else {
var f = dump // || print
if (!f) throw new Error('log: No way to output message: ' + str)
f('Log: ' + str + '\n')
*/
}
}; // logger.msg
logger.warn = function (msg) {
logger.msg(msg, TWARN, 'warn');
};
logger.debug = function (msg) {
logger.msg(msg, TDEBUG, 'dbug');
};
logger.info = function (msg) {
logger.msg(msg, TINFO, 'info');
};
logger.error = function (msg) {
logger.msg(msg, TERROR, 'eror');
};
logger.success = function (msg) {
logger.msg(msg, TSUCCESS, 'good');
};
if (typeof alert !== 'undefined') {
logger.alert = alert;
} else {
logger.alert = logger.warn;
}
/** clear the log window **/
logger.clear = function () {
var x = document.getElementById('status');
if (!x) return;
x.innerHTML = ''; // emptyNode(x);
}; // clearStatus
/** set the logging level **/
logger.setLevel = function (x) {
logger.level = TALL;
logger.debug('Log level is now ' + x);
logger.level = x;
};
logger.dumpHTML = function () {
var l = logger.level;
logger.level = TALL;
logger.debug(document.innerHTML);
logger.level = l;
};
return logger;
}; // wrapper
module.exports = wrapper();
//# sourceMappingURL=log.js.map