Files
add-and-commit/node_modules/@node-minify/utils/lib/utils.js
Federico Grandi f118062594 Update with working working version (#12)
* Fix workflow

* Trigger

* [auto] Update compiled version

* [auto] Commit modules

* Push Windows changes

* Fix

* [auto] Update compiled version

* Try removing cwd

* [auto] Update compiled version

* Try with path module

* [auto] Update compiled version

* Fix path

* [auto] Update compiled version

* Use raw path

* [auto] Update compiled version

* Other path

* [auto] Update compiled version

* Avoid @action/exec

* [auto] Update compiled version

* test

* [auto] Update compiled version

* test

* [auto] Update compiled version

* test

* [auto] Update compiled version

* test

* [auto] Update compiled version

* Try with shelljs

* [auto] Update compiled version

* Fix my stupidity

* Copy scripts to local dir

* [auto] Update compiled version

* Still use path

* [auto] Update compiled version

* Delete entrypoint.sh

* [auto] Update compiled version

* Make file executable

* [auto] Update compiled version

* Try using bash

* [auto] Update compiled version
2019-12-14 21:47:13 +01:00

159 lines
3.2 KiB
JavaScript

"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.utils = void 0;
var _fs = _interopRequireDefault(require("fs"));
var _gzipSize = _interopRequireDefault(require("gzip-size"));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
/*!
* node-minify
* Copyright(c) 2011-2019 Rodolphe Stoclin
* MIT Licensed
*/
/**
* Module dependencies.
*/
const utils = {};
/**
* Read content from file.
*
* @param {String} file
* @returns {String}
*/
exports.utils = utils;
utils.readFile = file => _fs.default.readFileSync(file, 'utf8');
/**
* Write content into file.
*
* @param {String} file
* @param {String} content
* @param {Number} index - index of the file being processed
* @returns {String}
*/
utils.writeFile = ({
file,
content,
index
}) => {
_fs.default.writeFileSync(index !== undefined ? file[index] : file, content, 'utf8');
return content;
};
/**
* Builds arguments array based on an object.
*
* @param {Object} options
* @returns {Array}
*/
utils.buildArgs = options => {
const args = [];
Object.keys(options).forEach(key => {
if (options[key] && options[key] !== false) {
args.push('--' + key);
}
if (options[key] && options[key] !== true) {
args.push(options[key]);
}
});
return args;
};
/**
* Clone an object.
*
* @param {Object} obj
* @returns {Object}
*/
utils.clone = obj => JSON.parse(JSON.stringify(obj));
/**
* Get the file size in bytes.
*
* @returns {String}
*/
utils.getFilesizeInBytes = file => {
const stats = _fs.default.statSync(file);
const fileSizeInBytes = stats.size;
return utils.prettyBytes(fileSizeInBytes);
};
/**
* Get the gzipped file size in bytes.
*
* @returns {Promise.<String>}
*/
utils.getFilesizeGzippedInBytes = file => {
return new Promise(resolve => {
const source = _fs.default.createReadStream(file);
source.pipe(_gzipSize.default.stream()).on('gzip-size', size => {
resolve(utils.prettyBytes(size));
});
});
};
/**
* Get the size in human readable.
* From https://github.com/sindresorhus/pretty-bytes
*
* @returns {String}
*/
utils.prettyBytes = num => {
const UNITS = ['B', 'kB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'];
if (!Number.isFinite(num)) {
throw new TypeError(`Expected a finite number, got ${typeof num}: ${num}`);
}
const neg = num < 0;
if (neg) {
num = -num;
}
if (num < 1) {
return (neg ? '-' : '') + num + ' B';
}
const exponent = Math.min(Math.floor(Math.log(num) / Math.log(1000)), UNITS.length - 1);
const numStr = Number((num / Math.pow(1000, exponent)).toPrecision(3));
const unit = UNITS[exponent];
return (neg ? '-' : '') + numStr + ' ' + unit;
};
/**
* Set the file name as minified.
* eg. file.js returns file.min.js
*
* @param {String} file
* @param {String} output
* @returns {String}
*/
utils.setFileNameMin = function (file, output) {
const fileWithoutPath = file.substr(file.lastIndexOf('/') + 1);
const fileWithoutExtension = fileWithoutPath.substr(0, fileWithoutPath.lastIndexOf('.js'));
return output.replace('$1', fileWithoutExtension);
};
/**
* Expose `utils`.
*/