UNPKG

@glimmer/runtime

Version:

Minimal runtime needed to render Glimmer templates

45 lines (40 loc) 5.29 kB
export function normalizeStringValue(value) { if (isEmpty(value)) { return ''; } return String(value); } export 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); } export function shouldCoerce(value) { return isString(value) || isEmpty(value) || typeof value === 'boolean' || typeof value === 'number'; } export function isEmpty(value) { return value === null || value === undefined || typeof value.toString !== 'function'; } export function isSafeString(value) { return typeof value === 'object' && value !== null && typeof value.toHTML === 'function'; } export function isNode(value) { return typeof value === 'object' && value !== null && typeof value.nodeType === 'number'; } export function isFragment(value) { return isNode(value) && value.nodeType === 11; } export function isString(value) { return typeof value === 'string'; } //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL3J1bnRpbWUvbGliL2RvbS9ub3JtYWxpemUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBV0EsT0FBTSxTQUFBLG9CQUFBLENBQUEsS0FBQSxFQUE2QztBQUNqRCxNQUFJLE9BQU8sQ0FBWCxLQUFXLENBQVgsRUFBb0I7QUFDbEIsV0FBQSxFQUFBO0FBQ0Q7O0FBQ0QsU0FBTyxNQUFNLENBQWIsS0FBYSxDQUFiO0FBQ0Q7QUFFRCxPQUFNLFNBQUEscUJBQUEsQ0FBQSxLQUFBLEVBQThDO0FBQ2xELE1BQUksT0FBTyxDQUFYLEtBQVcsQ0FBWCxFQUFvQjtBQUNsQixXQUFBLEVBQUE7QUFDRDs7QUFDRCxNQUFJLFFBQVEsQ0FBWixLQUFZLENBQVosRUFBcUI7QUFDbkIsV0FBQSxLQUFBO0FBQ0Q7O0FBQ0QsTUFBSSxZQUFZLENBQWhCLEtBQWdCLENBQWhCLEVBQXlCO0FBQ3ZCLFdBQU8sS0FBSyxDQUFaLE1BQU8sRUFBUDtBQUNEOztBQUNELE1BQUksTUFBTSxDQUFWLEtBQVUsQ0FBVixFQUFtQjtBQUNqQixXQUFBLEtBQUE7QUFDRDs7QUFDRCxTQUFPLE1BQU0sQ0FBYixLQUFhLENBQWI7QUFDRDtBQUVELE9BQU0sU0FBQSxZQUFBLENBQUEsS0FBQSxFQUNVO0FBRWQsU0FDRSxRQUFRLENBQVIsS0FBUSxDQUFSLElBQW1CLE9BQU8sQ0FBMUIsS0FBMEIsQ0FBMUIsSUFBcUMsT0FBQSxLQUFBLEtBQXJDLFNBQUEsSUFBbUUsT0FBQSxLQUFBLEtBRHJFLFFBQUE7QUFHRDtBQUVELE9BQU0sU0FBQSxPQUFBLENBQUEsS0FBQSxFQUFnQztBQUNwQyxTQUFPLEtBQUssS0FBTCxJQUFBLElBQWtCLEtBQUssS0FBdkIsU0FBQSxJQUF5QyxPQUFRLEtBQWMsQ0FBdEIsUUFBQSxLQUFoRCxVQUFBO0FBQ0Q7QUFFRCxPQUFNLFNBQUEsWUFBQSxDQUFBLEtBQUEsRUFBcUM7QUFDekMsU0FBTyxPQUFBLEtBQUEsS0FBQSxRQUFBLElBQTZCLEtBQUssS0FBbEMsSUFBQSxJQUErQyxPQUFRLEtBQWEsQ0FBckIsTUFBQSxLQUF0RCxVQUFBO0FBQ0Q7QUFFRCxPQUFNLFNBQUEsTUFBQSxDQUFBLEtBQUEsRUFBK0I7QUFDbkMsU0FBTyxPQUFBLEtBQUEsS0FBQSxRQUFBLElBQTZCLEtBQUssS0FBbEMsSUFBQSxJQUErQyxPQUFRLEtBQWEsQ0FBckIsUUFBQSxLQUF0RCxRQUFBO0FBQ0Q7QUFFRCxPQUFNLFNBQUEsVUFBQSxDQUFBLEtBQUEsRUFBbUM7QUFDdkMsU0FBTyxNQUFNLENBQU4sS0FBTSxDQUFOLElBQWlCLEtBQUssQ0FBTCxRQUFBLEtBQXhCLEVBQUE7QUFDRDtBQUVELE9BQU0sU0FBQSxRQUFBLENBQUEsS0FBQSxFQUFpQztBQUNyQyxTQUFPLE9BQUEsS0FBQSxLQUFQLFFBQUE7QUFDRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpY3QgfSBmcm9tICdAZ2xpbW1lci9pbnRlcmZhY2VzJztcbmltcG9ydCB7IFNpbXBsZU5vZGUsIFNpbXBsZURvY3VtZW50RnJhZ21lbnQgfSBmcm9tICdAc2ltcGxlLWRvbS9pbnRlcmZhY2UnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFNhZmVTdHJpbmcge1xuICB0b0hUTUwoKTogc3RyaW5nO1xufVxuXG5leHBvcnQgdHlwZSBJbnNlcnRpb24gPSBDYXV0aW91c0luc2VydGlvbiB8IFRydXN0aW5nSW5zZXJ0aW9uO1xuZXhwb3J0IHR5cGUgQ2F1dGlvdXNJbnNlcnRpb24gPSBzdHJpbmcgfCBTYWZlU3RyaW5nIHwgU2ltcGxlTm9kZTtcbmV4cG9ydCB0eXBlIFRydXN0aW5nSW5zZXJ0aW9uID0gc3RyaW5nIHwgU2ltcGxlTm9kZTtcblxuZXhwb3J0IGZ1bmN0aW9uIG5vcm1hbGl6ZVN0cmluZ1ZhbHVlKHZhbHVlOiB1bmtub3duKTogc3RyaW5nIHtcbiAgaWYgKGlzRW1wdHkodmFsdWUpKSB7XG4gICAgcmV0dXJuICcnO1xuICB9XG4gIHJldHVybiBTdHJpbmcodmFsdWUpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbm9ybWFsaXplVHJ1c3RlZFZhbHVlKHZhbHVlOiB1bmtub3duKTogVHJ1c3RpbmdJbnNlcnRpb24ge1xuICBpZiAoaXNFbXB0eSh2YWx1ZSkpIHtcbiAgICByZXR1cm4gJyc7XG4gIH1cbiAgaWYgKGlzU3RyaW5nKHZhbHVlKSkge1xuICAgIHJldHVybiB2YWx1ZTtcbiAgfVxuICBpZiAoaXNTYWZlU3RyaW5nKHZhbHVlKSkge1xuICAgIHJldHVybiB2YWx1ZS50b0hUTUwoKTtcbiAgfVxuICBpZiAoaXNOb2RlKHZhbHVlKSkge1xuICAgIHJldHVybiB2YWx1ZTtcbiAgfVxuICByZXR1cm4gU3RyaW5nKHZhbHVlKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNob3VsZENvZXJjZShcbiAgdmFsdWU6IHVua25vd25cbik6IHZhbHVlIGlzIHN0cmluZyB8IG51bWJlciB8IGJvb2xlYW4gfCBudWxsIHwgdW5kZWZpbmVkIHtcbiAgcmV0dXJuIChcbiAgICBpc1N0cmluZyh2YWx1ZSkgfHwgaXNFbXB0eSh2YWx1ZSkgfHwgdHlwZW9mIHZhbHVlID09PSAnYm9vbGVhbicgfHwgdHlwZW9mIHZhbHVlID09PSAnbnVtYmVyJ1xuICApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNFbXB0eSh2YWx1ZTogdW5rbm93bik6IGJvb2xlYW4ge1xuICByZXR1cm4gdmFsdWUgPT09IG51bGwgfHwgdmFsdWUgPT09IHVuZGVmaW5lZCB8fCB0eXBlb2YgKHZhbHVlIGFzIERpY3QpLnRvU3RyaW5nICE9PSAnZnVuY3Rpb24nO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNTYWZlU3RyaW5nKHZhbHVlOiB1bmtub3duKTogdmFsdWUgaXMgU2FmZVN0cmluZyB7XG4gIHJldHVybiB0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnICYmIHZhbHVlICE9PSBudWxsICYmIHR5cGVvZiAodmFsdWUgYXMgYW55KS50b0hUTUwgPT09ICdmdW5jdGlvbic7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc05vZGUodmFsdWU6IHVua25vd24pOiB2YWx1ZSBpcyBTaW1wbGVOb2RlIHtcbiAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcgJiYgdmFsdWUgIT09IG51bGwgJiYgdHlwZW9mICh2YWx1ZSBhcyBhbnkpLm5vZGVUeXBlID09PSAnbnVtYmVyJztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzRnJhZ21lbnQodmFsdWU6IHVua25vd24pOiB2YWx1ZSBpcyBTaW1wbGVEb2N1bWVudEZyYWdtZW50IHtcbiAgcmV0dXJuIGlzTm9kZSh2YWx1ZSkgJiYgdmFsdWUubm9kZVR5cGUgPT09IDExO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNTdHJpbmcodmFsdWU6IHVua25vd24pOiB2YWx1ZSBpcyBzdHJpbmcge1xuICByZXR1cm4gdHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJztcbn1cbiJdLCJzb3VyY2VSb290IjoiIn0=