1 | 'use strict';
|
2 |
|
3 | Object.defineProperty(exports, "__esModule", {
|
4 | value: true
|
5 | });
|
6 |
|
7 | var _chalk = require('chalk');
|
8 |
|
9 | var _chalk2 = _interopRequireDefault(_chalk);
|
10 |
|
11 | var _cli = require('../utils/cli');
|
12 |
|
13 | var _webpack = require('../utils/webpack');
|
14 |
|
15 | var _consts = require('../utils/consts');
|
16 |
|
17 | var _logUpdate = require('../utils/log-update');
|
18 |
|
19 | var _logUpdate2 = _interopRequireDefault(_logUpdate);
|
20 |
|
21 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
22 |
|
23 | const logUpdate = new _logUpdate2.default();
|
24 |
|
25 |
|
26 | let lastRender = Date.now();
|
27 |
|
28 | class FancyReporter {
|
29 | allDone() {
|
30 | logUpdate.done();
|
31 | }
|
32 |
|
33 | done(context) {
|
34 | this._renderStates(context.statesArray);
|
35 |
|
36 | if (context.hasErrors) {
|
37 | logUpdate.done();
|
38 | }
|
39 | }
|
40 |
|
41 | progress(context) {
|
42 | if (Date.now() - lastRender > 50) {
|
43 | this._renderStates(context.statesArray);
|
44 | }
|
45 | }
|
46 |
|
47 | _renderStates(statesArray) {
|
48 | lastRender = Date.now();
|
49 |
|
50 | const renderedStates = statesArray.map(c => this._renderState(c)).join('\n\n');
|
51 |
|
52 | logUpdate.render('\n' + renderedStates + '\n');
|
53 | }
|
54 |
|
55 | _renderState(state) {
|
56 | const color = (0, _cli.colorize)(state.color);
|
57 |
|
58 | let line1;
|
59 | let line2;
|
60 |
|
61 | if (state.progress >= 0 && state.progress < 100) {
|
62 |
|
63 | line1 = [color(_consts.BULLET), color(state.name), (0, _cli.renderBar)(state.progress, state.color), state.message, `(${state.progress || 0}%)`, _chalk2.default.grey(state.details[0] || ''), _chalk2.default.grey(state.details[1] || '')].join(' ');
|
64 |
|
65 | line2 = state.request ? ' ' + _chalk2.default.grey((0, _cli.ellipsisLeft)((0, _webpack.formatRequest)(state.request), logUpdate.columns)) : '';
|
66 | } else {
|
67 | let icon = ' ';
|
68 |
|
69 | if (state.hasErrors) {
|
70 | icon = _consts.CROSS;
|
71 | } else if (state.progress === 100) {
|
72 | icon = _consts.TICK;
|
73 | } else if (state.progress === -1) {
|
74 | icon = _consts.CIRCLE_OPEN;
|
75 | }
|
76 |
|
77 | line1 = color(`${icon} ${state.name}`);
|
78 | line2 = _chalk2.default.grey(' ' + state.message);
|
79 | }
|
80 |
|
81 | return line1 + '\n' + line2;
|
82 | }
|
83 | }
|
84 | exports.default = FancyReporter; |
\ | No newline at end of file |