'use strict'; const memoizee = require("memoizee"); const setTextStyles = require("./set-text-styles"); //const measureFont = memoizee(require("./measure-font")); const measureFont = memoizee(require("measure-font")); module.exports = function measureText(text, options) { let offscreenCanvas = document.createElement("canvas"); let context = offscreenCanvas.getContext("2d"); setTextStyles(context, options); let fontMeasurements = measureFont(options.fontFamily, {fontSize: 40}); return Object.assign(context.measureText(text), { height: options.fontSize * (fontMeasurements.descender - fontMeasurements.topBounding), ascender: options.fontSize * fontMeasurements.ascender, descender: options.fontSize * fontMeasurements.descender, capHeight: options.fontSize * fontMeasurements.capHeight, median: options.fontSize * fontMeasurements.median, topBounding: options.fontSize * fontMeasurements.topBounding, }); }