UNPKG

mathup

Version:

Easy MathML authoring tool with a quick to write syntax

29 lines (24 loc) 675 B
import { applyStyles } from "./styles.js"; /** * @typedef {import("../../parser/index.js").Node} Node * @typedef {import("../../parser/index.js").Term} Term * @typedef {import("../index.js").Tag} Tag */ /** * @template T * @param {T} node * @returns {boolean} */ function notNull(node) { return node !== null; } /** @type {import("../index.js").TransformFn<Term>} */ export default function term(node, transform) { if (node.items.length === 1 && notNull(node.items[0])) { return applyStyles(node.styles, transform(node.items[0])); } return applyStyles(node.styles, { tag: "mrow", childNodes: node.items.map(transform).filter(notNull), }); }