ppi-calculator
Version:
PPI Calculator
99 lines (77 loc) • 3.09 kB
JavaScript
;
function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }
var minimist = _interopDefault(require('minimist'));
var slicedToArray = function () {
function sliceIterator(arr, i) {
var _arr = [];
var _n = true;
var _d = false;
var _e = undefined;
try {
for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {
_arr.push(_s.value);
if (i && _arr.length === i) break;
}
} catch (err) {
_d = true;
_e = err;
} finally {
try {
if (!_n && _i["return"]) _i["return"]();
} finally {
if (_d) throw _e;
}
}
return _arr;
}
return function (arr, i) {
if (Array.isArray(arr)) {
return arr;
} else if (Symbol.iterator in Object(arr)) {
return sliceIterator(arr, i);
} else {
throw new TypeError("Invalid attempt to destructure non-iterable instance");
}
};
}();
var parseResolutionString = function parseResolutionString(_ref) {
var resolutionString = _ref.resolutionString;
var _resolutionString$toL = resolutionString.toLowerCase().split('x');
var _resolutionString$toL2 = slicedToArray(_resolutionString$toL, 2);
var width = _resolutionString$toL2[0];
var height = _resolutionString$toL2[1];
return {
height: Number.parseInt(height),
width: Number.parseInt(width)
};
};
var calculatePPI = function calculatePPI(_ref) {
var _ref$resolutionString = _ref.resolutionString;
var resolutionString = _ref$resolutionString === undefined ? '' : _ref$resolutionString;
var diagonalSize = _ref.diagonalSize;
var width = _ref.width;
var height = _ref.height;
if (resolutionString !== '' && diagonalSize !== undefined) {
var _parseResolutionStrin = parseResolutionString({ resolutionString: resolutionString });
var _width = _parseResolutionStrin.width;
var _height = _parseResolutionStrin.height;
return calculatePPI({ width: _width, height: _height, diagonalSize: diagonalSize });
} else if (width > 0 && height > 0 && diagonalSize > 0) {
return Math.round(Math.sqrt(Math.pow(width, 2) + Math.pow(height, 2)) / diagonalSize * 100) / 100;
}
};
var argv = minimist(process.argv.slice(2));
var helpMessage = 'Usage: ppi-calculator -r <resolution> -s <screen size>\n\n Calculates PPI for the given screen resolution and digonal size\n\nOptions:\n\n -h, --help output usage information\n -r, --resolution screen resolution\n -s, --screen-size screen digonal size\n';
var screenSize = argv.s || argv['screen-size'];
var resolution = argv.r || argv.resolution;
var help = argv.h || argv.help;
if (help) {
process.stdout.write(helpMessage);
} else if (screenSize && resolution) {
var ppi = calculatePPI({ resolutionString: resolution, diagonalSize: screenSize });
process.stdout.write(ppi + '\n');
} else {
process.stdout.write('requires at least two parameters -r and -s\n');
process.stdout.write(helpMessage);
}