You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
'use strict';
Object.defineProperty(exports, "__esModule", { value: true });
exports.default = function (number, unit, { time, length, angle }) { let value = dropLeadingZero(number) + (unit ? unit : ''); let converted;
if (length !== false && unit.toLowerCase() in lengthConv) { converted = transform(number, unit, lengthConv); }
if (time !== false && unit.toLowerCase() in timeConv) { converted = transform(number, unit, timeConv); }
if (angle !== false && unit.toLowerCase() in angleConv) { converted = transform(number, unit, angleConv); }
if (converted && converted.length < value.length) { value = converted; }
return value; };
const lengthConv = { in: 96, px: 1, pt: 4 / 3, pc: 16 };
const timeConv = { s: 1000, ms: 1 };
const angleConv = { turn: 360, deg: 1 };
function dropLeadingZero(number) { const value = String(number);
if (number % 1) { if (value[0] === '0') { return value.slice(1); }
if (value[0] === '-' && value[1] === '0') { return '-' + value.slice(2); } }
return value; }
function transform(number, unit, conversion) { const lowerCasedUnit = unit.toLowerCase(); let one, base; let convertionUnits = Object.keys(conversion).filter(u => { if (conversion[u] === 1) { one = u; } return lowerCasedUnit !== u; });
if (lowerCasedUnit === one) { base = number / conversion[lowerCasedUnit]; } else { base = number * conversion[lowerCasedUnit]; }
return convertionUnits.map(u => dropLeadingZero(base / conversion[u]) + u).reduce((a, b) => a.length < b.length ? a : b); }
module.exports = exports['default'];
|