neft
Version:
Universal Platform
65 lines (56 loc) • 1.98 kB
text/coffeescript
logger = require '../logger'
{log, signal} = Neft
logByMsgPrefix = (prefix, methodName, msg) ->
if msg.indexOf(prefix) is 0
log[methodName] msg.slice(prefix.length)
true
else
false
exports.errors = Object.create null
exports.passingTests = Object.create null
exports.LogsReader = class LogsReader
constructor: () ->
= null
= false
exports.passingTests[] = 0
log: (data) ->
msg = String(data).trim()
msg = msg.replace /^\n+|\n+$/g, ''
unless msg
return
if msg.indexOf('\n') >= 0
return msg.split('\n').forEach , @
if msg.indexOf(logger.SCOPE) >= 0
log msg.slice(logger.SCOPE.length)
else if msg.indexOf(logger.TEST) >= 0
log.ok msg.slice(logger.TEST.length)
exports.passingTests[] += 1
else if msg.indexOf(logger.ERROR_TEST) >= 0
msg = msg.slice(logger.ERROR_TEST.length)
log.error msg
else if msg.indexOf(logger.ERROR) >= 0
errMsg = msg.slice logger.ERROR.length
errMsg = try decodeURIComponent errMsg catch then errMsg
= new Error errMsg
errMsg = "\n#{errMsg}\n"
log.error errMsg
exports.errors[] ?= ''
exports.errors[] += errMsg
else if msg is logger.SUCCESS
= true
else if msg is logger.FAILURE
= true
= new Error logger.FAILURE
else if logByMsgPrefix 'LOG: ', 'debug', msg
return
else if logByMsgPrefix 'OK: ', 'ok', msg
return
else if logByMsgPrefix 'INFO: ', 'info', msg
return
else if logByMsgPrefix 'WARN: ', 'warn', msg
return
else if logByMsgPrefix 'ERROR: ', 'error', msg
return
else
log.debug msg