@onereach/orest-input-cli
Version:
The tool for creating, serving, and publishing OREST Inputs
40 lines (30 loc) • 845 B
JavaScript
const path = require('path');
const ProgressBar = require('progress');
const zipDirectory = require('./util/zipDirectory');
const DIST_DIR = '';
const dist = relDirPath =>
path.join(path.resolve(process.cwd(), relDirPath), DIST_DIR);
const DEST_FILENAME = 'orest-input.zip';
const dest = relDirPath =>
path.join(path.resolve(process.cwd(), relDirPath), DEST_FILENAME);
const progressConfig = {
complete: '=',
incomplete: ' ',
width: 30,
total: 100,
};
const zippingBar = new ProgressBar(
'Zipping: [:bar] :percent :etas',
progressConfig
);
function onZippingProgress(progress) {
zippingBar.update(Math.round(progress) / 100);
}
function zipBundle(relDirPath = '') {
return zipDirectory({
dir: dist(relDirPath),
dest: dest(relDirPath),
onProgress: onZippingProgress,
});
}
module.exports = zipBundle;