UNPKG

treant

Version:

Dependency free component library for the browser

40 lines (35 loc) 987 B
var merge = require("../util/merge") module.exports = fragment fragment.options = { variable: "f" } function fragment( html, compiler, compilerOptions ){ compilerOptions = merge(fragment.options, compilerOptions) var render = null return function( templateData ){ var temp = window.document.createElement("div") if( typeof compiler == "function" && !render ){ render = compiler(html, compilerOptions) } if( render ){ try{ html = render(templateData) } catch( e ){ console.error("Error rendering fragment with context:", templateData) console.error(render.toString()) console.error(e) throw e } } temp.innerHTML = html var fragment = window.document.createDocumentFragment() while( temp.childNodes.length ){ fragment.appendChild(temp.firstChild) } return fragment } } fragment.render = function( html, templateData ){ return fragment(html)(templateData) }