Skip to content

Commit

Permalink
Implemented PrettyError.listen()
Browse files Browse the repository at this point in the history
  • Loading branch information
AriaMinaei committed Jan 25, 2014
1 parent f6a9ba0 commit 5f943da
Show file tree
Hide file tree
Showing 2 changed files with 54 additions and 30 deletions.
2 changes: 2 additions & 0 deletions .npmignore
Expand Up @@ -5,6 +5,8 @@ xeno/**
node_modules
scripts/dist

docs

-p

npm-debug.log
Expand Down
82 changes: 52 additions & 30 deletions scripts/coffee/lib/PrettyError.coffee
Expand Up @@ -22,6 +22,14 @@ module.exports = class PrettyError

defaultStyle()

@listen: (cb) ->

pe = new self

pe.listen cb

pe

constructor: ->

@_maxItems = 50
Expand All @@ -42,6 +50,20 @@ module.exports = class PrettyError

@_renderer.style @_style

listen: (cb) ->

process.on 'uncaughtException', (exc) =>

@render exc, yes

process.exit 1

return

process.nextTick cb if cb?

@

config: (c) ->

if c.skipPackages?
Expand Down Expand Up @@ -244,36 +266,6 @@ module.exports = class PrettyError

rendered

_skipOrFilter: (item, itemNumber) ->

if typeof item is 'object'

return yes if item.modName in @_packagesToSkip

return yes if item.path in @_pathsToSkip

for modName in item.packages

return yes if modName in @_packagesToSkip

if typeof item.shortenedAddr is 'string'

for pair in @_aliases

item.shortenedAddr = item.shortenedAddr.replace pair.stringOrRx,

pair.alias

for cb in @_skipCallbacks

return yes if cb(item, itemNumber) is yes

for cb in @_filterCallbacks

cb(item, itemNumber)

return no

getObject: (e) ->

unless e instanceof ParsedError
Expand Down Expand Up @@ -363,6 +355,36 @@ module.exports = class PrettyError

obj

_skipOrFilter: (item, itemNumber) ->

if typeof item is 'object'

return yes if item.modName in @_packagesToSkip

return yes if item.path in @_pathsToSkip

for modName in item.packages

return yes if modName in @_packagesToSkip

if typeof item.shortenedAddr is 'string'

for pair in @_aliases

item.shortenedAddr = item.shortenedAddr.replace pair.stringOrRx,

pair.alias

for cb in @_skipCallbacks

return yes if cb(item, itemNumber) is yes

for cb in @_filterCallbacks

cb(item, itemNumber)

return no

for prop in ['renderer', 'style'] then do ->

methodName = '_get' + prop[0].toUpperCase() + prop.substr(1, prop.length)
Expand Down

0 comments on commit 5f943da

Please sign in to comment.