hdd-space
Version:
This module provides getting information about free space and size of hdds
103 lines • 7.42 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
var child_process_1 = require("child_process");
var utils_1 = require("./utils");
var format_1 = require("./format");
var unix_1 = require("./unix");
var win32_1 = require("./win32");
function formatResult(opts, res) {
var formater = function (size) { return format_1.formatSize(opts.format, size); };
var newRes = {
parts: res.parts.map(function (part) {
var newPart = {
free: formater(part.free),
size: formater(part.size),
place: part.place
};
if ('letter' in part) {
newPart.letter = part.letter;
}
if ('mountOn' in part) {
newPart.mountOn = part.mountOn;
}
return newPart;
}),
total: {
free: formater(res.total.free),
size: formater(res.total.size)
}
};
return newRes;
}
function runCmd(commandFn, parser, callback) {
commandFn(function (err, output) {
if (err) {
callback(err);
return;
}
if (!output || output.trim() === '') {
callback(new Error('empty output'));
return;
}
try {
var result = parser(output);
if (result.parts.length === 0) {
throw new Error('cannot parse output');
}
callback(null, result);
}
catch (e) {
callback(new Error('cannot parse output'));
}
});
}
var defaultOpts = {
format: function (size) { return size; }
};
function getHddInfo(opts, callback) {
var platform = opts.platform || process.platform;
var _a = platform === 'win32'
? [win32_1.win32Cmd, win32_1.parseWin32Output]
: [unix_1.unixCmd, unix_1.parseUnixOutput], cmd = _a[0], parser = _a[1];
var fn = opts.fetchOutput || ('output' in opts
? function (cb) { return cb(null, opts.output); }
: child_process_1.exec.bind(null, cmd));
runCmd(fn, parser, function (err, result) {
if (err) {
callback(err);
return;
}
var formatted = formatResult(opts, result);
callback(null, formatted);
});
}
exports.getHddInfo = getHddInfo;
function fetchHddInfo(opts) {
if (opts === void 0) { opts = defaultOpts; }
return new Promise(function (resolve, reject) {
getHddInfo(opts, function (err, res) {
if (err) {
reject(err);
return;
}
resolve(res);
});
});
}
exports.fetchHddInfo = fetchHddInfo;
function getCrossPlatformInfo(opts, callback) {
if (arguments.length < 2) {
callback = opts;
opts = defaultOpts;
}
opts = opts;
getHddInfo(opts, function (err, res) {
if (err) {
throw err;
}
callback(res);
});
}
exports.default = getCrossPlatformInfo;
module.exports = utils_1.assign(getCrossPlatformInfo, module.exports);
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSwrQ0FBbUM7QUFFbkMsaUNBQStCO0FBQy9CLG1DQUE0QztBQUM1QywrQkFBZ0Q7QUFDaEQsaUNBQW1EO0FBcUNuRCxzQkFBc0IsSUFBVSxFQUFFLEdBQVk7SUFDN0MsSUFBTSxRQUFRLEdBQUcsVUFBQyxJQUFZLElBQUssT0FBQSxtQkFBVSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLEVBQTdCLENBQTZCLENBQUM7SUFDakUsSUFBTSxNQUFNLEdBQW9CO1FBQy9CLEtBQUssRUFBRSxHQUFHLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxVQUFBLElBQUk7WUFDeEIsSUFBSSxPQUFPLEdBQWlCO2dCQUMzQixJQUFJLEVBQUUsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7Z0JBQ3pCLElBQUksRUFBRSxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztnQkFDekIsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLO2FBQ2pCLENBQUM7WUFDRixFQUFFLENBQUMsQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQztnQkFDdEIsT0FBTyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO1lBQzlCLENBQUM7WUFDRCxFQUFFLENBQUMsQ0FBQyxTQUFTLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQztnQkFDdkIsT0FBTyxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDO1lBQ2hDLENBQUM7WUFDRCxNQUFNLENBQUMsT0FBTyxDQUFDO1FBQ2hCLENBQUMsQ0FBQztRQUNGLEtBQUssRUFBRTtZQUNOLElBQUksRUFBRSxRQUFRLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUM7WUFDOUIsSUFBSSxFQUFFLFFBQVEsQ0FBQyxHQUFHLENBQUMsS0FBSyxD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