UNPKG

ppi-calculator

Version:

PPI Calculator

99 lines (77 loc) 3.09 kB
#!/usr/bin/env node 'use strict'; 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); }