UNPKG

marko

Version:

UI Components + streaming, async, high performance, HTML templating for Node.js and the browser.

46 lines (41 loc) 1.16 kB
"use strict";module.exports = function render(input, out) { var isComponent = !input.n; var shouldPreserve = !("i" in input) || input.i; var componentsContext = out.b_; var isHydrate = componentsContext && componentsContext.p_.aa_; var ownerComponent = out.ab_.s_; var referenceComponent = ownerComponent; var key = out.ac_; var checkKey = key; if (key[0] !== "@") { var parentComponent = componentsContext.o_.s_; if (ownerComponent !== parentComponent) { referenceComponent = parentComponent; checkKey += ":" + ownerComponent.id; } } var isPreserved = shouldPreserve && ( isHydrate && (isComponent || input.b) || referenceComponent.L_[checkKey]); if (isComponent) { out.bf(key, ownerComponent, shouldPreserve); if (!isPreserved && input.renderBody) { input.renderBody(out); } out.ef(); } else { if (isPreserved) { if (input.b) { out.ad_.ae_ = true; } else { out.beginElement("", null, key, ownerComponent); out.ad_.af_ = true; out.endElement(); } } else if (input.renderBody) { input.renderBody(out); } } };