@glimmer/runtime
Version:
Minimal runtime needed to render Glimmer templates
66 lines (52 loc) • 5.59 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.normalizeStringValue = normalizeStringValue;
exports.normalizeTrustedValue = normalizeTrustedValue;
exports.shouldCoerce = shouldCoerce;
exports.isEmpty = isEmpty;
exports.isSafeString = isSafeString;
exports.isNode = isNode;
exports.isFragment = isFragment;
exports.isString = isString;
function normalizeStringValue(value) {
if (isEmpty(value)) {
return '';
}
return String(value);
}
function normalizeTrustedValue(value) {
if (isEmpty(value)) {
return '';
}
if (isString(value)) {
return value;
}
if (isSafeString(value)) {
return value.toHTML();
}
if (isNode(value)) {
return value;
}
return String(value);
}
function shouldCoerce(value) {
return isString(value) || isEmpty(value) || typeof value === 'boolean' || typeof value === 'number';
}
function isEmpty(value) {
return value === null || value === undefined || typeof value.toString !== 'function';
}
function isSafeString(value) {
return typeof value === 'object' && value !== null && typeof value.toHTML === 'function';
}
function isNode(value) {
return typeof value === 'object' && value !== null && typeof value.nodeType === 'number';
}
function isFragment(value) {
return isNode(value) && value.nodeType === 11;
}
function isString(value) {
return typeof value === 'string';
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL3J1bnRpbWUvbGliL2RvbS9ub3JtYWxpemUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7QUFXTSxTQUFBLG9CQUFBLENBQUEsS0FBQSxFQUE2QztBQUNqRCxNQUFJLE9BQU8sQ0FBWCxLQUFXLENBQVgsRUFBb0I7QUFDbEIsV0FBQSxFQUFBO0FBQ0Q7O0FBQ0QsU0FBTyxNQUFNLENBQWIsS0FBYSxDQUFiO0FBQ0Q7O0FBRUssU0FBQSxxQkFBQSxDQUFBLEtBQUEsRUFBOEM7QUFDbEQsTUFBSSxPQUFPLENBQVgsS0FBVyxDQUFYLEVBQW9CO0FBQ2xCLFdBQUEsRUFBQTtBQUNEOztBQUNELE1BQUksUUFBUSxDQUFaLEtBQVksQ0FBWixFQUFxQjtBQUNuQixXQUFBLEtBQUE7QUFDRDs7QUFDRCxNQUFJLFlBQVksQ0FBaEIsS0FBZ0IsQ0FBaEIsRUFBeUI7QUFDdkIsV0FBTyxLQUFLLENBQVosTUFBTyxFQUFQO0FBQ0Q7O0FBQ0QsTUFBSSxNQUFNLENBQVYsS0FBVSxDQUFWLEVBQW1CO0FBQ2pCLFdBQUEsS0FBQTtBQUNEOztBQUNELFNBQU8sTUFBTSxDQUFiLEtBQWEsQ0FBYjtBQUNEOztBQUVLLFNBQUEsWUFBQSxDQUFBLEtBQUEsRUFDVTtBQUVkLFNBQ0UsUUFBUSxDQUFSLEtBQVEsQ0FBUixJQUFtQixPQUFPLENBQTFCLEtBQTBCLENBQTFCLElBQXFDLE9BQUEsS0FBQSxLQUFyQyxTQUFBLElBQW1FLE9BQUEsS0FBQSxLQURyRSxRQUFBO0FBR0Q7O0FBRUssU0FBQSxPQUFBLENBQUEsS0FBQSxFQUFnQztBQUNwQyxTQUFPLEtBQUssS0FBTCxJQUFBLElBQWtCLEtBQUssS0FBdkIsU0FBQSxJQUF5QyxPQUFRLEtBQWMsQ0FBdEIsUUFBQSxLQUFoRCxVQUFBO0FBQ0Q7O0FBRUssU0FBQSxZQUFBLENBQUEsS0FBQSxFQUFxQztBQUN6QyxTQUFPLE9BQUEsS0FBQSxLQUFBLFFBQUEsSUFBNkIsS0FBSyxLQUFsQyxJQUFBLElBQStDLE9BQVEsS0FBYSxDQUFyQixNQUFBLEtBQXRELFVBQUE7QUFDRDs7QUFFSyxTQUFBLE1BQUEsQ0FBQSxLQUFBLEVBQStCO0FBQ25DLFNBQU8sT0FBQSxLQUFBLEtBQUEsUUFBQSxJQUE2QixLQUFLLEtBQWxDLElBQUEsSUFBK0MsT0FBUSxLQUFhLENBQXJCLFFBQUEsS0FBdEQsUUFBQTtBQUNEOztBQUVLLFNBQUEsVUFBQSxDQUFBLEtBQUEsRUFBbUM7QUFDdkMsU0FBTyxNQUFNLENBQU4sS0FBTSxDQUFOLElBQWlCLEtBQUssQ0FBTCxRQUFBLEtBQXhCLEVBQUE7QUFDRDs7QUFFSyxTQUFBLFFBQUEsQ0FBQSxLQUFBLEVBQWlDO0FBQ3JDLFNBQU8sT0FBQSxLQUFBLEtBQVAsUUFBQTtBQUNEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGljdCB9IGZyb20gJ0BnbGltbWVyL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgU2ltcGxlTm9kZSwgU2ltcGxlRG9jdW1lbnRGcmFnbWVudCB9IGZyb20gJ0BzaW1wbGUtZG9tL2ludGVyZmFjZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2FmZVN0cmluZyB7XG4gIHRvSFRNTCgpOiBzdHJpbmc7XG59XG5cbmV4cG9ydCB0eXBlIEluc2VydGlvbiA9IENhdXRpb3VzSW5zZXJ0aW9uIHwgVHJ1c3RpbmdJbnNlcnRpb247XG5leHBvcnQgdHlwZSBDYXV0aW91c0luc2VydGlvbiA9IHN0cmluZyB8IFNhZmVTdHJpbmcgfCBTaW1wbGVOb2RlO1xuZXhwb3J0IHR5cGUgVHJ1c3RpbmdJbnNlcnRpb24gPSBzdHJpbmcgfCBTaW1wbGVOb2RlO1xuXG5leHBvcnQgZnVuY3Rpb24gbm9ybWFsaXplU3RyaW5nVmFsdWUodmFsdWU6IHVua25vd24pOiBzdHJpbmcge1xuICBpZiAoaXNFbXB0eSh2YWx1ZSkpIHtcbiAgICByZXR1cm4gJyc7XG4gIH1cbiAgcmV0dXJuIFN0cmluZyh2YWx1ZSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBub3JtYWxpemVUcnVzdGVkVmFsdWUodmFsdWU6IHVua25vd24pOiBUcnVzdGluZ0luc2VydGlvbiB7XG4gIGlmIChpc0VtcHR5KHZhbHVlKSkge1xuICAgIHJldHVybiAnJztcbiAgfVxuICBpZiAoaXNTdHJpbmcodmFsdWUpKSB7XG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG4gIGlmIChpc1NhZmVTdHJpbmcodmFsdWUpKSB7XG4gICAgcmV0dXJuIHZhbHVlLnRvSFRNTCgpO1xuICB9XG4gIGlmIChpc05vZGUodmFsdWUpKSB7XG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG4gIHJldHVybiBTdHJpbmcodmFsdWUpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc2hvdWxkQ29lcmNlKFxuICB2YWx1ZTogdW5rbm93blxuKTogdmFsdWUgaXMgc3RyaW5nIHwgbnVtYmVyIHwgYm9vbGVhbiB8IG51bGwgfCB1bmRlZmluZWQge1xuICByZXR1cm4gKFxuICAgIGlzU3RyaW5nKHZhbHVlKSB8fCBpc0VtcHR5KHZhbHVlKSB8fCB0eXBlb2YgdmFsdWUgPT09ICdib29sZWFuJyB8fCB0eXBlb2YgdmFsdWUgPT09ICdudW1iZXInXG4gICk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0VtcHR5KHZhbHVlOiB1bmtub3duKTogYm9vbGVhbiB7XG4gIHJldHVybiB2YWx1ZSA9PT0gbnVsbCB8fCB2YWx1ZSA9PT0gdW5kZWZpbmVkIHx8IHR5cGVvZiAodmFsdWUgYXMgRGljdCkudG9TdHJpbmcgIT09ICdmdW5jdGlvbic7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1NhZmVTdHJpbmcodmFsdWU6IHVua25vd24pOiB2YWx1ZSBpcyBTYWZlU3RyaW5nIHtcbiAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcgJiYgdmFsdWUgIT09IG51bGwgJiYgdHlwZW9mICh2YWx1ZSBhcyBhbnkpLnRvSFRNTCA9PT0gJ2Z1bmN0aW9uJztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzTm9kZSh2YWx1ZTogdW5rbm93bik6IHZhbHVlIGlzIFNpbXBsZU5vZGUge1xuICByZXR1cm4gdHlwZW9mIHZhbHVlID09PSAnb2JqZWN0JyAmJiB2YWx1ZSAhPT0gbnVsbCAmJiB0eXBlb2YgKHZhbHVlIGFzIGFueSkubm9kZVR5cGUgPT09ICdudW1iZXInO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNGcmFnbWVudCh2YWx1ZTogdW5rbm93bik6IHZhbHVlIGlzIFNpbXBsZURvY3VtZW50RnJhZ21lbnQge1xuICByZXR1cm4gaXNOb2RlKHZhbHVlKSAmJiB2YWx1ZS5ub2RlVHlwZSA9PT0gMTE7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1N0cmluZyh2YWx1ZTogdW5rbm93bik6IHZhbHVlIGlzIHN0cmluZyB7XG4gIHJldHVybiB0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnO1xufVxuIl0sInNvdXJjZVJvb3QiOiIifQ==