1 | 'use strict'
|
2 |
|
3 | Acho = require 'acho'
|
4 | DEFAULT = require './Bumped.default'
|
5 | MSG = require './Bumped.messages'
|
6 | noop = require('./Bumped.util').noop
|
7 | isArray = require('./Bumped.util').isArray
|
8 | isBoolean = require('./Bumped.util').isBoolean
|
9 |
|
10 | optsDefault =
|
11 | lineBreak: true
|
12 | output: true
|
13 |
|
14 |
|
15 |
|
16 |
|
17 |
|
18 |
|
19 |
|
20 |
|
21 | errorHandler = (err, opts, cb) ->
|
22 | if (arguments.length is 2 and typeof arguments[1] is 'function')
|
23 | cb = opts
|
24 | opts = optsDefault
|
25 | else
|
26 | opts = Object.assign optsDefault, opts
|
27 | cb ||= noop
|
28 |
|
29 | return cb err if @level is 'silent' or not opts.output
|
30 |
|
31 | err = MSG.NOT_PROPERLY_FINISHED err if isBoolean err
|
32 | printErrorMessage = (err) => @error err.message or err
|
33 | process.stdout.write '\n' if opts.lineBreak
|
34 | err = [err] unless isArray(err)
|
35 |
|
36 | err.forEach printErrorMessage
|
37 | cb err
|
38 |
|
39 | module.exports = (opts) ->
|
40 | opts = Object.assign DEFAULT.logger, opts
|
41 | logger = Acho opts
|
42 | logger.errorHandler = errorHandler
|
43 | logger
|