probe.gl
Version:
JavaScript Console Instrumentation and Benchmarking for Browser and Node
154 lines (126 loc) • 4.23 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.formatTime = formatTime;
exports.leftPad = leftPad;
exports.rightPad = rightPad;
exports.getSISuffix = getSISuffix;
exports.formatSI = formatSI;
exports.formatValue = formatValue;
exports.formatImage = formatImage;
function formatTime(ms) {
var formatted;
if (ms < 10) {
formatted = "".concat(ms.toFixed(2), "ms");
} else if (ms < 100) {
formatted = "".concat(ms.toFixed(1), "ms");
} else if (ms < 1000) {
formatted = "".concat(ms.toFixed(0), "ms");
} else {
formatted = "".concat((ms / 1000).toFixed(2), "s");
}
return formatted;
}
function leftPad(string) {
var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 8;
var padLength = Math.max(length - string.length, 0);
return "".concat(' '.repeat(padLength)).concat(string);
}
function rightPad(string) {
var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 8;
var padLength = Math.max(length - string.length, 0);
return "".concat(string).concat(' '.repeat(padLength));
}
function splitIntoBaseAndExponent(number) {
var base = number;
var exponent = 0;
if (number !== 0) {
while (base >= 10 || base <= -10) {
base /= 10;
exponent++;
}
while (base < 1 && base > -1) {
base *= 10;
exponent--;
}
}
return {
base: base,
exponent: exponent
};
}
function getSISuffix(multipleOf3) {
var SI_SUFFIXES = {
0: '',
1: 'K',
2: 'M',
3: 'G',
'-1': 'm',
'-2': 'µ',
'-3': 'n'
};
var key = String(multipleOf3);
return key in SI_SUFFIXES ? SI_SUFFIXES[key] : "e".concat(multipleOf3 * 3);
}
function formatSI(number) {
var precision = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 3;
var _splitIntoBaseAndExpo = splitIntoBaseAndExponent(number),
base = _splitIntoBaseAndExpo.base,
exponent = _splitIntoBaseAndExpo.exponent;
var multipleOf3 = Math.floor(exponent / 3);
var remaining = exponent - multipleOf3 * 3;
var digits = base * Math.pow(10, remaining);
return "".concat(digits.toPrecision(precision)).concat(getSISuffix(multipleOf3));
}
function formatValue(v) {
var opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
var EPSILON = 1e-16;
var _opts$isInteger = opts.isInteger,
isInteger = _opts$isInteger === void 0 ? false : _opts$isInteger;
if (Array.isArray(v) || ArrayBuffer.isView(v)) {
return formatArrayValue(v, opts);
}
if (!Number.isFinite(v)) {
return String(v);
}
if (Math.abs(v) < EPSILON) {
return isInteger ? '0' : '0.';
}
if (isInteger) {
return v.toFixed(0);
}
if (Math.abs(v) > 100 && Math.abs(v) < 10000) {
return v.toFixed(0);
}
var string = v.toPrecision(2);
var decimal = string.indexOf('.0');
return decimal === string.length - 2 ? string.slice(0, -1) : string;
}
function formatArrayValue(v, opts) {
var _opts$maxElts = opts.maxElts,
maxElts = _opts$maxElts === void 0 ? 16 : _opts$maxElts,
_opts$size = opts.size,
size = _opts$size === void 0 ? 1 : _opts$size;
var string = '[';
for (var i = 0; i < v.length && i < maxElts; ++i) {
if (i > 0) {
string += ",".concat(i % size === 0 ? ' ' : '');
}
string += formatValue(v[i], opts);
}
var terminator = v.length > maxElts ? '...' : ']';
return "".concat(string).concat(terminator);
}
function formatImage(image, message, scale) {
var maxWidth = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 600;
var imageUrl = image.src.replace(/\(/g, '%28').replace(/\)/g, '%29');
if (image.width > maxWidth) {
scale = Math.min(scale, maxWidth / image.width);
}
var width = image.width * scale;
var height = image.height * scale;
var style = ['font-size:1px;', "padding:".concat(Math.floor(height / 2), "px ").concat(Math.floor(width / 2), "px;"), "line-height:".concat(height, "px;"), "background:url(".concat(imageUrl, ");"), "background-size:".concat(width, "px ").concat(height, "px;"), 'color:transparent;'].join('');
return ["".concat(message, " %c+"), style];
}
//# sourceMappingURL=formatters.js.map