Comparing version 1.1.0 to 1.2.0
91
index.js
@@ -1,2 +0,2 @@ | ||
const padRight = require('pad-right') | ||
// const padRight = require('pad-right') | ||
const padLeft = require('pad-left') | ||
@@ -7,6 +7,10 @@ | ||
// colors from http://clrs.cc/ | ||
const GREEN = '#2ECC40' | ||
const RED = '#FF4136' | ||
const BLUE = '#7FDBFF' | ||
const GRAY = '#AAAAAA' | ||
const colors = { | ||
green: '#2ECC40', | ||
red: '#FF4136', | ||
blue: '#7FDBFF', | ||
lightGray: '#DDDDDD', | ||
gray: '#AAAAAA', | ||
default: '#293037' | ||
} | ||
@@ -16,2 +20,4 @@ // Development logger for choo | ||
function chooLog () { | ||
const startTime = Date.now() | ||
return { | ||
@@ -27,4 +33,5 @@ onAction: onAction, | ||
const line = [] | ||
.concat(colorify('gray', renderType('Action:'))) | ||
.concat(' ' + `${caller} -> ${name}`) | ||
colorify('lightGray', renderTime(startTime), line) | ||
colorify('gray', renderType('Action:'), line) | ||
append(`${caller} -> ${name}`, line) | ||
@@ -48,12 +55,17 @@ if (console.groupCollapsed) { | ||
function onError (err, state, createSend) { | ||
var line = [] | ||
.concat(colorify('red', renderType('Error:'))) | ||
.concat(' ' + err.message) | ||
const line = [] | ||
colorify('lightGray', renderTime(startTime), line) | ||
colorify('red', renderType('Error:'), line) | ||
append(err.message, line) | ||
if (console.groupCollapsed) { | ||
logGroup(line) | ||
console.error(err) | ||
logInner(err) | ||
console.groupEnd() | ||
} else { | ||
log(line) | ||
logInner(err) | ||
} | ||
function logInner (err) { | ||
console.error(err) | ||
@@ -67,11 +79,15 @@ } | ||
const line = [] | ||
.concat(colorify('gray', renderType('State:'))) | ||
colorify('lightGray', renderTime(startTime), line) | ||
colorify('gray', renderType('State:'), line) | ||
if (console.groupCollapsed) { | ||
logGroup(line) | ||
console.log('state', state) | ||
console.log('prev', prev) | ||
logInner(prev, state) | ||
console.groupEnd() | ||
} else { | ||
log(line) | ||
logInner(prev, state) | ||
} | ||
function logInner (prev, state) { | ||
console.log('prev', prev) | ||
@@ -102,25 +118,28 @@ console.log('state', state) | ||
// toHtml + chalk | ||
// (str, str) -> str | ||
function colorify (color, line) { | ||
if (color === 'red') { | ||
return [ | ||
'%c ' + line + ' ', | ||
'color: ' + RED | ||
] | ||
} else if (color === 'blue') { | ||
return [ | ||
'%c ' + line + ' ', | ||
'color: ' + BLUE | ||
] | ||
} else if (color === 'green') { | ||
return [ | ||
'%c ' + line + ' ', | ||
'color: ' + GREEN | ||
] | ||
} else if (color === 'gray') { | ||
return [ | ||
'%c ' + line + ' ', | ||
'color: ' + GRAY | ||
] | ||
// (str, str, [str, ...str]) -> [str, str] | ||
function colorify (color, line, prev) { | ||
if (prev) { | ||
if (!prev[0]) prev[0] = '' | ||
prev[0] = prev[0] += ' %c' + line + ' ' | ||
prev.push('color: ' + colors[color]) | ||
return prev | ||
} else { | ||
return [ '%c' + line + ' ', 'color: ' + colors[color] ] | ||
} | ||
} | ||
// append to line without colorizing | ||
// (str, [str, ...str]) -> [str, str] | ||
function append (line, prev) { | ||
prev[0] = prev[0] += ' %c' + line + ' ' | ||
prev.push('color: ' + colors.default) | ||
return prev | ||
} | ||
// render the time | ||
// num -> null | ||
function renderTime (startTime) { | ||
var offset = String(Math.round((Date.now() - startTime) / 1000) % 10000) | ||
var msg = '[' + padLeft(offset, 4, '0') + ']' | ||
return msg | ||
} |
{ | ||
"name": "choo-log", | ||
"version": "1.1.0", | ||
"version": "1.2.0", | ||
"description": "Development logger for choo", | ||
@@ -5,0 +5,0 @@ "main": "index.js", |
8720
178