UNPKG

hdd-space

Version:

This module provides getting information about free space and size of hdds

103 lines 7.42 kB
"use strict"; 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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