@glimmer/runtime
Version:
Minimal runtime needed to render Glimmer templates
37 lines (28 loc) • 2.82 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.createConcatRef = createConcatRef;
var _reference = require("@glimmer/reference");
function createConcatRef(partsRefs) {
return (0, _reference.createComputeRef)(() => {
let parts = new Array();
for (let i = 0; i < partsRefs.length; i++) {
let value = (0, _reference.valueForRef)(partsRefs[i]);
if (value !== null && value !== undefined) {
parts[i] = castToString(value);
}
}
if (parts.length > 0) {
return parts.join('');
}
return null;
});
}
function castToString(value) {
if (typeof value.toString !== 'function') {
return '';
}
return String(value);
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL3J1bnRpbWUvbGliL2NvbXBpbGVkL2V4cHJlc3Npb25zL2NvbmNhdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQ0E7O0FBRU0sU0FBQSxlQUFBLENBQUEsU0FBQSxFQUFnRDtBQUNwRCxTQUFPLGlDQUFpQixNQUFLO0FBQzNCLFFBQUksS0FBSyxHQUFHLElBQVosS0FBWSxFQUFaOztBQUVBLFNBQUssSUFBSSxDQUFDLEdBQVYsQ0FBQSxFQUFnQixDQUFDLEdBQUcsU0FBUyxDQUE3QixNQUFBLEVBQXNDLENBQXRDLEVBQUEsRUFBMkM7QUFDekMsVUFBSSxLQUFLLEdBQUcsNEJBQVksU0FBUyxDQUFqQyxDQUFpQyxDQUFyQixDQUFaOztBQUVBLFVBQUksS0FBSyxLQUFMLElBQUEsSUFBa0IsS0FBSyxLQUEzQixTQUFBLEVBQTJDO0FBQ3pDLFFBQUEsS0FBSyxDQUFMLENBQUssQ0FBTCxHQUFXLFlBQVksQ0FBdkIsS0FBdUIsQ0FBdkI7QUFDRDtBQUNGOztBQUVELFFBQUksS0FBSyxDQUFMLE1BQUEsR0FBSixDQUFBLEVBQXNCO0FBQ3BCLGFBQU8sS0FBSyxDQUFMLElBQUEsQ0FBUCxFQUFPLENBQVA7QUFDRDs7QUFFRCxXQUFBLElBQUE7QUFmRixHQUFPLENBQVA7QUFpQkQ7O0FBRUQsU0FBQSxZQUFBLENBQUEsS0FBQSxFQUFpQztBQUMvQixNQUFJLE9BQU8sS0FBSyxDQUFaLFFBQUEsS0FBSixVQUFBLEVBQTBDO0FBQ3hDLFdBQUEsRUFBQTtBQUNEOztBQUVELFNBQU8sTUFBTSxDQUFiLEtBQWEsQ0FBYjtBQUNEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGljdCwgTWF5YmUgfSBmcm9tICdAZ2xpbW1lci9pbnRlcmZhY2VzJztcbmltcG9ydCB7IFJlZmVyZW5jZSwgdmFsdWVGb3JSZWYsIGNyZWF0ZUNvbXB1dGVSZWYgfSBmcm9tICdAZ2xpbW1lci9yZWZlcmVuY2UnO1xuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlQ29uY2F0UmVmKHBhcnRzUmVmczogUmVmZXJlbmNlW10pIHtcbiAgcmV0dXJuIGNyZWF0ZUNvbXB1dGVSZWYoKCkgPT4ge1xuICAgIGxldCBwYXJ0cyA9IG5ldyBBcnJheTxzdHJpbmc+KCk7XG5cbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHBhcnRzUmVmcy5sZW5ndGg7IGkrKykge1xuICAgICAgbGV0IHZhbHVlID0gdmFsdWVGb3JSZWYocGFydHNSZWZzW2ldKSBhcyBNYXliZTxEaWN0PjtcblxuICAgICAgaWYgKHZhbHVlICE9PSBudWxsICYmIHZhbHVlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgcGFydHNbaV0gPSBjYXN0VG9TdHJpbmcodmFsdWUpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChwYXJ0cy5sZW5ndGggPiAwKSB7XG4gICAgICByZXR1cm4gcGFydHMuam9pbignJyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG51bGw7XG4gIH0pO1xufVxuXG5mdW5jdGlvbiBjYXN0VG9TdHJpbmcodmFsdWU6IERpY3QpIHtcbiAgaWYgKHR5cGVvZiB2YWx1ZS50b1N0cmluZyAhPT0gJ2Z1bmN0aW9uJykge1xuICAgIHJldHVybiAnJztcbiAgfVxuXG4gIHJldHVybiBTdHJpbmcodmFsdWUpO1xufVxuIl0sInNvdXJjZVJvb3QiOiIifQ==