UNPKG

1.17 kBtext/coffeescriptView Raw
1'use strict'
2
3chalk = require 'chalk'
4ms = require 'pretty-ms'
5timeSpan = require 'time-span'
6DEFAULT = require './Bumped.default'
7MSG = require './Bumped.messages'
8
9TYPE_SHORTCUT =
10 prerelease: 'pre'
11 postrelease: 'post'
12
13module.exports = class Animation
14
15 constructor: (params) ->
16 @[param] = value for param, value of params
17 @isPostRelease = @type is 'postrelease'
18 @isPreRelease = @type is 'prerelease'
19
20 start: (cb) ->
21 @timespan = timeSpan()
22 @running = true
23 shortcut = TYPE_SHORTCUT[@type]
24 process.stdout.write '\n' if @isPostRelease
25
26 @logger.keyword = "#{chalk.magenta(shortcut)} #{@logger.keyword}"
27 @logger.success "Starting #{chalk.cyan(@text)}"
28 cb()
29
30 stop: (err, cb) ->
31 @running = false
32
33 if err
34 @logger.keyword = DEFAULT.logger.keyword
35 return cb err
36
37 end = ms @timespan()
38 @logger.success "Finished #{chalk.cyan(@text)} after #{chalk.magenta(end)}."
39 process.stdout.write '\n' if @isPreRelease
40 @logger.keyword = DEFAULT.logger.keyword
41 cb()
42
43 @end: (opts) ->
44 opts.logger.success MSG.CREATED_VERSION(opts.version)
45 opts.logger.keyword = DEFAULT.logger.keyword