marko
Version:
UI Components + streaming, async, high performance, HTML templating for Node.js and the browser.
37 lines (32 loc) • 879 B
JavaScript
;
var escapeQuoteHelpers = require("./escape-quotes");
var escapeSingleQuotes = escapeQuoteHelpers.bv_;
var escapeDoubleQuotes = escapeQuoteHelpers.n_;
var FLAG_WILL_RERENDER_IN_BROWSER = 1;
// var FLAG_HAS_RENDER_BODY = 2;
module.exports = function dataMarko(out, componentDef, props, key) {
var result = "";
var willNotRerender =
out.b_.v_ ||
componentDef.t_ &&
(componentDef.u_ & FLAG_WILL_RERENDER_IN_BROWSER) === 0;
if (willNotRerender) {
if (props) {
// eslint-disable-next-line no-unused-vars
for (var _ in props) {
result +=
" data-marko='" + escapeSingleQuotes(JSON.stringify(props)) + "'";
break;
}
}
if (key) {
result +=
' data-marko-key="' +
escapeDoubleQuotes(
componentDef.aL_(key) + " " + componentDef.id
) +
'"';
}
}
return result;
};