'use strict'; const canvassed = require("canvassed"); const defaultValue = require("default-value"); module.exports = function setTextStyles(context, options) { canvassed.validateSync(options, { fontFamily: "required", fontSize: "required" }); let fontSegments = [ options.fontStyle, options.fontVariant, options.fontWeight, `${options.fontSize}px`, // FIXME: Other units? options.fontFamily ]; context.font = fontSegments.filter(segment => (segment != null)).join(" "); context.textBaseline = defaultValue(options.textBaseline, "alphabetic"); if (options.isStroke) { context.strokeStyle = options.color; } else { context.fillStyle = options.color; } }