Comparing version 1.0.0 to 1.1.0
106
index.js
@@ -0,3 +1,12 @@ | ||
const padRight = require('pad-right') | ||
const padLeft = require('pad-left') | ||
module.exports = chooLog | ||
// colors from http://clrs.cc/ | ||
const GREEN = '#2ECC40' | ||
const RED = '#FF4136' | ||
const BLUE = '#7FDBFF' | ||
const GRAY = '#AAAAAA' | ||
// Development logger for choo | ||
@@ -15,5 +24,18 @@ // null -> obj | ||
function onAction (data, state, name, caller, createSend) { | ||
console.groupCollapsed(`Action: ${caller} -> ${name}`) | ||
console.log(data) | ||
console.groupEnd() | ||
const line = [] | ||
.concat(colorify('gray', renderType('Action:'))) | ||
.concat(' ' + `${caller} -> ${name}`) | ||
if (console.groupCollapsed) { | ||
logGroup(line) | ||
logInner(data) | ||
console.groupEnd() | ||
} else { | ||
log(line) | ||
logInner(data) | ||
} | ||
function logInner (action) { | ||
console.log('action:', data) | ||
} | ||
} | ||
@@ -24,7 +46,14 @@ | ||
function onError (err, state, createSend) { | ||
console.groupCollapsed(`Error: ${err.message}`) | ||
console.error(err) | ||
console.groupEnd() | ||
const send = createSend('onError: ') | ||
send('app:error', err) | ||
var line = [] | ||
.concat(colorify('red', renderType('Error:'))) | ||
.concat(' ' + err.message) | ||
if (console.groupCollapsed) { | ||
logGroup(line) | ||
console.error(err) | ||
console.groupEnd() | ||
} else { | ||
log(line) | ||
console.error(err) | ||
} | ||
} | ||
@@ -35,7 +64,60 @@ | ||
function onStateChange (data, state, prev, createSend) { | ||
console.groupCollapsed('State') | ||
console.log(prev) | ||
console.log(state) | ||
console.groupEnd() | ||
const line = [] | ||
.concat(colorify('gray', renderType('State:'))) | ||
if (console.groupCollapsed) { | ||
logGroup(line) | ||
console.log('state', state) | ||
console.log('prev', prev) | ||
console.groupEnd() | ||
} else { | ||
log(line) | ||
console.log('prev', prev) | ||
console.log('state', state) | ||
} | ||
} | ||
} | ||
// create a collapsedGroup log from an array | ||
// str -> [str, str] | ||
function logGroup (line) { | ||
console.groupCollapsed.apply(console, line) | ||
} | ||
// create a console log from an array | ||
// str -> [str, str] | ||
function log (line) { | ||
console.log.apply(console, line) | ||
} | ||
// indent message types | ||
// str -> str | ||
function renderType (msg) { | ||
return padLeft(msg, 7, ' ') | ||
} | ||
// 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 | ||
] | ||
} | ||
} |
{ | ||
"name": "choo-log", | ||
"version": "1.0.0", | ||
"version": "1.1.0", | ||
"description": "Development logger for choo", | ||
@@ -9,3 +9,4 @@ "main": "index.js", | ||
"test": "standard && npm run deps && NODE_ENV=test node test", | ||
"test:cov": "standard && npm run deps && NODE_ENV=test istanbul cover test.js" | ||
"test:cov": "standard && npm run deps && NODE_ENV=test istanbul cover test.js", | ||
"example": "budo ./example.js -p 8080" | ||
}, | ||
@@ -23,4 +24,10 @@ "repository": "yoshuawuyts/choo-log", | ||
"license": "MIT", | ||
"dependencies": {}, | ||
"dependencies": { | ||
"pad-left": "^2.1.0", | ||
"pad-right": "^0.2.2", | ||
"pretty-ms": "^2.1.0" | ||
}, | ||
"devDependencies": { | ||
"budo": "^8.3.0", | ||
"choo": "^3.0.1", | ||
"dependency-check": "^2.5.2", | ||
@@ -27,0 +34,0 @@ "istanbul": "^0.4.4", |
@@ -14,8 +14,28 @@ # choo-log [![stability][0]][1] | ||
const app = choo({ | ||
onAction: logger.onAction(), | ||
onError: logger.onError(), | ||
onStateChange: logger.onStateChange(), | ||
onAction: logger.onAction, | ||
onError: logger.onError, | ||
onStateChange: logger.onStateChange | ||
}) | ||
``` | ||
And to optimize for production using | ||
[envify](https://github.com/hughsk/envify): | ||
```js | ||
const choo = require('choo') | ||
// this block of code will be eliminated by any minification if | ||
// NODE_ENV is set to "production" | ||
if (process.env.NODE_ENV !== 'production') { | ||
const chooLog = require('choo-log') | ||
const logger = chooLog() | ||
var hooks = { | ||
onAction: logger.onAction(), | ||
onError: logger.onError(), | ||
onStateChange: logger.onStateChange(), | ||
} | ||
} | ||
const app = hooks ? choo(hooks) : choo() | ||
``` | ||
## API | ||
@@ -25,10 +45,10 @@ ### logger = chooLog() | ||
### logger.onAction() | ||
Return a new logger for `onAction()` | ||
### logger.onAction | ||
Logger for `onAction()` | ||
### logger.onError() | ||
Return a new logger for `onError()` | ||
### logger.onError | ||
Logger for `onError()` | ||
### logger.onStateChange() | ||
Return a new logger for `onStateChange()` | ||
### logger.onStateChange | ||
Logger for `onStateChange()` | ||
@@ -35,0 +55,0 @@ ## Installation |
8144
8
164
73
3
6
+ Addedpad-left@^2.1.0
+ Addedpad-right@^0.2.2
+ Addedpretty-ms@^2.1.0
+ Addedis-finite@1.1.0(transitive)
+ Addedpad-left@2.1.0(transitive)
+ Addedpad-right@0.2.2(transitive)
+ Addedparse-ms@1.0.1(transitive)
+ Addedplur@1.0.0(transitive)
+ Addedpretty-ms@2.1.0(transitive)
+ Addedrepeat-string@1.6.1(transitive)