-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathindex.js
More file actions
34 lines (28 loc) · 967 Bytes
/
index.js
File metadata and controls
34 lines (28 loc) · 967 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
const webpack = require('webpack');
const helper = require('./helper');
const SiccProgressBar = require('node-progress-loader');
module.exports = function SiccProgressLoader({
stream = process.stdout,
mode = 'production',
serverPort,
} = {}) {
if (!stream.isTTY) {
return function () {};
}
const progressBar = new SiccProgressBar({ stream });
const isDev = mode === 'development' && serverPort;
const finishedMessageConfig = isDev
? { message: `Available on port ${serverPort}`, align: 'left' }
: { message: 'Build finished', align: 'center' };
helper.logMessage({ message: 'Building...' });
const handler = (percentage, message) => {
const newPercent = Math.floor(percentage * 100);
if (percentage === 1) {
progressBar.stop();
helper.logFramedMessage({ stream, ...finishedMessageConfig });
} else {
progressBar.draw(newPercent, message);
}
};
return new webpack.ProgressPlugin(handler);
};