UNPKG

uhtml

Version:
33 lines (26 loc) • 1.02 kB
'use strict'; /*! (c) Andrea Giammarchi - MIT */ const { Hole } = require('./rabbit.js'); const { attr } = require('./handler.js'); /** @typedef {import("./literals.js").DOMValue} DOMValue */ /** @typedef {import("./literals.js").Target} Target */ const tag = svg => (template, ...values) => new Hole(svg, template, values).toDOM().valueOf(); /** @type {(template: TemplateStringsArray, ...values:DOMValue[]) => Target} A tag to render HTML content. */ const html = tag(false); exports.html = html; /** @type {(template: TemplateStringsArray, ...values:DOMValue[]) => Target} A tag to render SVG content. */ const svg = tag(true); exports.svg = svg; /** * Render directly within a generic container. * @template T * @param {T} where the DOM node where to render content * @param {(() => Target) | Target} what the node to render * @returns */ const render = (where, what) => { where.replaceChildren(typeof what === 'function' ? what() : what); return where; }; exports.render = render; exports.attr = attr;