@glimmer/runtime
Version:
Minimal runtime needed to render Glimmer templates
153 lines (129 loc) • 13.4 kB
JavaScript
;
var _reference = require("@glimmer/reference");
var _util = require("@glimmer/util");
var _opcodes = require("../../opcodes");
var _normalize = require("../../dom/normalize");
var _text = _interopRequireDefault(require("../../vm/content/text"));
var _vm = require("./vm");
var _manager = require("@glimmer/manager");
var _env = require("@glimmer/env");
var _curriedValue = require("../../curried-value");
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function toContentType(value) {
if ((0, _normalize.shouldCoerce)(value)) {
return 2
/* String */
;
} else if ((0, _curriedValue.isCurriedType)(value, 0
/* Component */
) || (0, _manager.hasInternalComponentManager)(value)) {
return 0
/* Component */
;
} else if ((0, _curriedValue.isCurriedType)(value, 1
/* Helper */
) || (0, _manager.hasInternalHelperManager)(value)) {
return 1
/* Helper */
;
} else if ((0, _normalize.isSafeString)(value)) {
return 4
/* SafeString */
;
} else if ((0, _normalize.isFragment)(value)) {
return 5
/* Fragment */
;
} else if ((0, _normalize.isNode)(value)) {
return 6
/* Node */
;
} else {
return 2
/* String */
;
}
}
function toDynamicContentType(value) {
if (!(0, _util.isObject)(value)) {
return 2
/* String */
;
}
if ((0, _curriedValue.isCurriedType)(value, 0
/* Component */
) || (0, _manager.hasInternalComponentManager)(value)) {
return 0
/* Component */
;
} else {
if (_env.DEBUG && !(0, _curriedValue.isCurriedType)(value, 1
/* Helper */
) && !(0, _manager.hasInternalHelperManager)(value)) {
throw new Error(`Attempted use a dynamic value as a component or helper, but that value did not have an associated component or helper manager. The value was: ${value}`);
}
return 1
/* Helper */
;
}
}
_opcodes.APPEND_OPCODES.add(76
/* ContentType */
, vm => {
let reference = vm.stack.peek();
vm.stack.push(toContentType((0, _reference.valueForRef)(reference)));
if (!(0, _reference.isConstRef)(reference)) {
vm.updateWith(new _vm.AssertFilter(reference, toContentType));
}
});
_opcodes.APPEND_OPCODES.add(106
/* DynamicContentType */
, vm => {
let reference = vm.stack.peek();
vm.stack.push(toDynamicContentType((0, _reference.valueForRef)(reference)));
if (!(0, _reference.isConstRef)(reference)) {
vm.updateWith(new _vm.AssertFilter(reference, toDynamicContentType));
}
});
_opcodes.APPEND_OPCODES.add(43
/* AppendHTML */
, vm => {
let reference = vm.stack.pop();
let rawValue = (0, _reference.valueForRef)(reference);
let value = (0, _normalize.isEmpty)(rawValue) ? '' : String(rawValue);
vm.elements().appendDynamicHTML(value);
});
_opcodes.APPEND_OPCODES.add(44
/* AppendSafeHTML */
, vm => {
let reference = vm.stack.pop();
let rawValue = (0, _reference.valueForRef)(reference).toHTML();
let value = (0, _normalize.isEmpty)(rawValue) ? '' : rawValue;
vm.elements().appendDynamicHTML(value);
});
_opcodes.APPEND_OPCODES.add(47
/* AppendText */
, vm => {
let reference = vm.stack.pop();
let rawValue = (0, _reference.valueForRef)(reference);
let value = (0, _normalize.isEmpty)(rawValue) ? '' : String(rawValue);
let node = vm.elements().appendDynamicText(value);
if (!(0, _reference.isConstRef)(reference)) {
vm.updateWith(new _text.default(node, reference, value));
}
});
_opcodes.APPEND_OPCODES.add(45
/* AppendDocumentFragment */
, vm => {
let reference = vm.stack.pop();
let value = (0, _reference.valueForRef)(reference);
vm.elements().appendDynamicFragment(value);
});
_opcodes.APPEND_OPCODES.add(46
/* AppendNode */
, vm => {
let reference = vm.stack.pop();
let value = (0, _reference.valueForRef)(reference);
vm.elements().appendDynamicNode(value);
});
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL3J1bnRpbWUvbGliL2NvbXBpbGVkL29wY29kZXMvY29udGVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBOztBQVFBOztBQUVBOztBQUVBOztBQUNBOztBQUVBOztBQUNBOztBQUNBOztBQUNBOzs7O0FBRUEsU0FBQSxhQUFBLENBQUEsS0FBQSxFQUFxQztBQUNuQyxNQUFJLDZCQUFKLEtBQUksQ0FBSixFQUF5QjtBQUN2QixXQUFBO0FBQUE7QUFBQTtBQURGLEdBQUEsTUFFTyxJQUNMLGlDQUFhLEtBQWIsRUFBbUI7QUFBQTtBQUFuQixPQUNBLDBDQUZLLEtBRUwsQ0FGSyxFQUdMO0FBQ0EsV0FBQTtBQUFBO0FBQUE7QUFKSyxHQUFBLE1BS0EsSUFDTCxpQ0FBYSxLQUFiLEVBQW1CO0FBQUE7QUFBbkIsT0FDQSx1Q0FGSyxLQUVMLENBRkssRUFHTDtBQUNBLFdBQUE7QUFBQTtBQUFBO0FBSkssR0FBQSxNQUtBLElBQUksNkJBQUosS0FBSSxDQUFKLEVBQXlCO0FBQzlCLFdBQUE7QUFBQTtBQUFBO0FBREssR0FBQSxNQUVBLElBQUksMkJBQUosS0FBSSxDQUFKLEVBQXVCO0FBQzVCLFdBQUE7QUFBQTtBQUFBO0FBREssR0FBQSxNQUVBLElBQUksdUJBQUosS0FBSSxDQUFKLEVBQW1CO0FBQ3hCLFdBQUE7QUFBQTtBQUFBO0FBREssR0FBQSxNQUVBO0FBQ0wsYUFBQTtBQUFBO0FBQUE7QUFDRDtBQUNGOztBQUVELFNBQUEsb0JBQUEsQ0FBQSxLQUFBLEVBQTRDO0FBQzFDLE1BQUksQ0FBQyxvQkFBTCxLQUFLLENBQUwsRUFBc0I7QUFDcEIsV0FBQTtBQUFBO0FBQUE7QUFDRDs7QUFFRCxNQUFJLGlDQUFhLEtBQWIsRUFBbUI7QUFBQTtBQUFuQixPQUErQywwQ0FBbkQsS0FBbUQsQ0FBbkQsRUFBaUc7QUFDL0YsV0FBQTtBQUFBO0FBQUE7QUFERixHQUFBLE1BRU87QUFDTCxR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LEtBQUssR0FBUyw0QkFBbEIsU0FBa0IsQ0FBbEI7QUFFQSxFQUFBLEVBQUUsQ0FBRixRQUFBLEdBQUEscUJBQUEsQ0FBQSxLQUFBO0FBTEYsQ0FBQTs7QUFRQSx3QkFBQSxHQUFBLENBQWtCO0FBQUE7QUFBbEIsRUFBbUMsRUFBRCxJQUFPO0FBQ3ZDLE1BQUksU0FBUyxHQUFTLEVBQUUsQ0FBRixLQUFBLENBQXRCLEdBQXNCLEVBQXRCO0FBRUEsTUFBSSxLQUFLLEdBQVMsNEJBQWxCLFNBQWtCLENBQWxCO0FBRUEsRUFBQSxFQUFFLENBQUYsUUFBQSxHQUFBLGlCQUFBLENBQUEsS0FBQTtBQUxGLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpc0NvbnN0UmVmLCB2YWx1ZUZvclJlZiB9IGZyb20gJ0BnbGltbWVyL3JlZmVyZW5jZSc7XG5pbXBvcnQge1xuICBjaGVjayxcbiAgQ2hlY2tTdHJpbmcsXG4gIENoZWNrU2FmZVN0cmluZyxcbiAgQ2hlY2tOb2RlLFxuICBDaGVja0RvY3VtZW50RnJhZ21lbnQsXG59IGZyb20gJ0BnbGltbWVyL2RlYnVnJztcbmltcG9ydCB7IGlzT2JqZWN0IH0gZnJvbSAnQGdsaW1tZXIvdXRpbCc7XG5cbmltcG9ydCB7IEFQUEVORF9PUENPREVTIH0gZnJvbSAnLi4vLi4vb3Bjb2Rlcyc7XG5pbXBvcnQgeyBDaGVja1JlZmVyZW5jZSB9IGZyb20gJy4vLWRlYnVnLXN0cmlwJztcbmltcG9ydCB7IGlzRW1wdHksIGlzU2FmZVN0cmluZywgaXNGcmFnbWVudCwgaXNOb2RlLCBzaG91bGRDb2VyY2UgfSBmcm9tICcuLi8uLi9kb20vbm9ybWFsaXplJztcbmltcG9ydCBEeW5hbWljVGV4dENvbnRlbnQgZnJvbSAnLi4vLi4vdm0vY29udGVudC90ZXh0JztcbmltcG9ydCB7IENvbnRlbnRUeXBlLCBDdXJyaWVkVHlwZSwgT3AgfSBmcm9tICdAZ2xpbW1lci9pbnRlcmZhY2VzJztcbmltcG9ydCB7IEFzc2VydEZpbHRlciB9IGZyb20gJy4vdm0nO1xuaW1wb3J0IHsgaGFzSW50ZXJuYWxDb21wb25lbnRNYW5hZ2VyLCBoYXNJbnRlcm5hbEhlbHBlck1hbmFnZXIgfSBmcm9tICdAZ2xpbW1lci9tYW5hZ2VyJztcbmltcG9ydCB7IERFQlVHIH0gZnJvbSAnQGdsaW1tZXIvZW52JztcbmltcG9ydCB7IGlzQ3VycmllZFR5cGUgfSBmcm9tICcuLi8uLi9jdXJyaWVkLXZhbHVlJztcblxuZnVuY3Rpb24gdG9Db250ZW50VHlwZSh2YWx1ZTogdW5rbm93bikge1xuICBpZiAoc2hvdWxkQ29lcmNlKHZhbHVlKSkge1xuICAgIHJldHVybiBDb250ZW50VHlwZS5TdHJpbmc7XG4gIH0gZWxzZSBpZiAoXG4gICAgaXNDdXJyaWVkVHlwZSh2YWx1ZSwgQ3VycmllZFR5cGUuQ29tcG9uZW50KSB8fFxuICAgIGhhc0ludGVybmFsQ29tcG9uZW50TWFuYWdlcih2YWx1ZSBhcyBvYmplY3QpXG4gICkge1xuICAgIHJldHVybiBDb250ZW50VHlwZS5Db21wb25lbnQ7XG4gIH0gZWxzZSBpZiAoXG4gICAgaXNDdXJyaWVkVHlwZSh2YWx1ZSwgQ3VycmllZFR5cGUuSGVscGVyKSB8fFxuICAgIGhhc0ludGVybmFsSGVscGVyTWFuYWdlcih2YWx1ZSBhcyBvYmplY3QpXG4gICkge1xuICAgIHJldHVybiBDb250ZW50VHlwZS5IZWxwZXI7XG4gIH0gZWxzZSBpZiAoaXNTYWZlU3RyaW5nKHZhbHVlKSkge1xuICAgIHJldHVybiBDb250ZW50VHlwZS5TYWZlU3RyaW5nO1xuICB9IGVsc2UgaWYgKGlzRnJhZ21lbnQodmFsdWUpKSB7XG4gICAgcmV0dXJuIENvbnRlbnRUeXBlLkZyYWdtZW50O1xuICB9IGVsc2UgaWYgKGlzTm9kZSh2YWx1ZSkpIHtcbiAgICByZXR1cm4gQ29udGVudFR5cGUuTm9kZTtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gQ29udGVudFR5cGUuU3RyaW5nO1xuICB9XG59XG5cbmZ1bmN0aW9uIHRvRHluYW1pY0NvbnRlbnRUeXBlKHZhbHVlOiB1bmtub3duKSB7XG4gIGlmICghaXNPYmplY3QodmFsdWUpKSB7XG4gICAgcmV0dXJuIENvbnRlbnRUeXBlLlN0cmluZztcbiAgfVxuXG4gIGlmIChpc0N1cnJpZWRUeXBlKHZhbHVlLCBDdXJyaWVkVHlwZS5Db21wb25lbnQpIHx8IGhhc0ludGVybmFsQ29tcG9uZW50TWFuYWdlcih2YWx1ZSBhcyBvYmplY3QpKSB7XG4gICAgcmV0dXJuIENvbnRlbnRUeXBlLkNvbXBvbmVudDtcbiAgfSBlbHNlIHtcbiAgICBpZiAoXG4gICAgICBERUJVRyAmJlxuICAgICAgIWlzQ3VycmllZFR5cGUodmFsdWUsIEN1cnJpZWRUeXBlLkhlbHBlcikgJiZcbiAgICAgICFoYXNJbnRlcm5hbEhlbHBlck1hbmFnZXIodmFsdWUgYXMgb2JqZWN0KVxuICAgICkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgQXR0ZW1wdGVkIHVzZSBhIGR5bmFtaWMgdmFsdWUgYXMgYSBjb21wb25lbnQgb3IgaGVscGVyLCBidXQgdGhhdCB2YWx1ZSBkaWQgbm90IGhhdmUgYW4gYXNzb2NpYXRlZCBjb21wb25lbnQgb3IgaGVscGVyIG1hbmFnZXIuIFRoZSB2YWx1ZSB3YXM6ICR7dmFsdWV9YFxuICAgICAgKTtcbiAgICB9XG5cbiAgICByZXR1cm4gQ29udGVudFR5cGUuSGVscGVyO1xuICB9XG59XG5cbkFQUEVORF9PUENPREVTLmFkZChPcC5Db250ZW50VHlwZSwgKHZtKSA9PiB7XG4gIGxldCByZWZlcmVuY2UgPSBjaGVjayh2bS5zdGFjay5wZWVrKCksIENoZWNrUmVmZXJlbmNlKTtcblxuICB2bS5zdGFjay5wdXNoKHRvQ29udGVudFR5cGUodmFsdWVGb3JSZWYocmVmZXJlbmNlKSkpO1xuXG4gIGlmICghaXNDb25zdFJlZihyZWZlcmVuY2UpKSB7XG4gICAgdm0udXBkYXRlV2l0aChuZXcgQXNzZXJ0RmlsdGVyKHJlZmVyZW5jZSwgdG9Db250ZW50VHlwZSkpO1xuICB9XG59KTtcblxuQVBQRU5EX09QQ09ERVMuYWRkKE9wLkR5bmFtaWNDb250ZW50VHlwZSwgKHZtKSA9PiB7XG4gIGxldCByZWZlcmVuY2UgPSBjaGVjayh2bS5zdGFjay5wZWVrKCksIENoZWNrUmVmZXJlbmNlKTtcblxuICB2bS5zdGFjay5wdXNoKHRvRHluYW1pY0NvbnRlbnRUeXBlKHZhbHVlRm9yUmVmKHJlZmVyZW5jZSkpKTtcblxuICBpZiAoIWlzQ29uc3RSZWYocmVmZXJlbmNlKSkge1xuICAgIHZtLnVwZGF0ZVdpdGgobmV3IEFzc2VydEZpbHRlcihyZWZlcmVuY2UsIHRvRHluYW1pY0NvbnRlbnRUeXBlKSk7XG4gIH1cbn0pO1xuXG5BUFBFTkRfT1BDT0RFUy5hZGQoT3AuQXBwZW5kSFRNTCwgKHZtKSA9PiB7XG4gIGxldCByZWZlcmVuY2UgPSBjaGVjayh2bS5zdGFjay5wb3AoKSwgQ2hlY2tSZWZlcmVuY2UpO1xuXG4gIGxldCByYXdWYWx1ZSA9IHZhbHVlRm9yUmVmKHJlZmVyZW5jZSk7XG4gIGxldCB2YWx1ZSA9IGlzRW1wdHkocmF3VmFsdWUpID8gJycgOiBTdHJpbmcocmF3VmFsdWUpO1xuXG4gIHZtLmVsZW1lbnRzKCkuYXBwZW5kRHluYW1pY0hUTUwodmFsdWUpO1xufSk7XG5cbkFQUEVORF9PUENPREVTLmFkZChPcC5BcHBlbmRTYWZlSFRNTCwgKHZtKSA9PiB7XG4gIGxldCByZWZlcmVuY2UgPSBjaGVjayh2bS5zdGFjay5wb3AoKSwgQ2hlY2tSZWZlcmVuY2UpO1xuXG4gIGxldCByYXdWYWx1ZSA9IGNoZWNrKHZhbHVlRm9yUmVmKHJlZmVyZW5jZSksIENoZWNrU2FmZVN0cmluZykudG9IVE1MKCk7XG4gIGxldCB2YWx1ZSA9IGlzRW1wdHkocmF3VmFsdWUpID8gJycgOiBjaGVjayhyYXdWYWx1ZSwgQ2hlY2tTdHJpbmcpO1xuXG4gIHZtLmVsZW1lbnRzKCkuYXBwZW5kRHluYW1pY0hUTUwodmFsdWUpO1xufSk7XG5cbkFQUEVORF9PUENPREVTLmFkZChPcC5BcHBlbmRUZXh0LCAodm0pID0+IHtcbiAgbGV0IHJlZmVyZW5jZSA9IGNoZWNrKHZtLnN0YWNrLnBvcCgpLCBDaGVja1JlZmVyZW5jZSk7XG5cbiAgbGV0IHJhd1ZhbHVlID0gdmFsdWVGb3JSZWYocmVmZXJlbmNlKTtcbiAgbGV0IHZhbHVlID0gaXNFbXB0eShyYXdWYWx1ZSkgPyAnJyA6IFN0cmluZyhyYXdWYWx1ZSk7XG5cbiAgbGV0IG5vZGUgPSB2bS5lbGVtZW50cygpLmFwcGVuZER5bmFtaWNUZXh0KHZhbHVlKTtcblxuICBpZiAoIWlzQ29uc3RSZWYocmVmZXJlbmNlKSkge1xuICAgIHZtLnVwZGF0ZVdpdGgobmV3IER5bmFtaWNUZXh0Q29udGVudChub2RlLCByZWZlcmVuY2UsIHZhbHVlKSk7XG4gIH1cbn0pO1xuXG5BUFBFTkRfT1BDT0RFUy5hZGQoT3AuQXBwZW5kRG9jdW1lbnRGcmFnbWVudCwgKHZtKSA9PiB7XG4gIGxldCByZWZlcmVuY2UgPSBjaGVjayh2bS5zdGFjay5wb3AoKSwgQ2hlY2tSZWZlcmVuY2UpO1xuXG4gIGxldCB2YWx1ZSA9IGNoZWNrKHZhbHVlRm9yUmVmKHJlZmVyZW5jZSksIENoZWNrRG9jdW1lbnRGcmFnbWVudCk7XG5cbiAgdm0uZWxlbWVudHMoKS5hcHBlbmREeW5hbWljRnJhZ21lbnQodmFsdWUpO1xufSk7XG5cbkFQUEVORF9PUENPREVTLmFkZChPcC5BcHBlbmROb2RlLCAodm0pID0+IHtcbiAgbGV0IHJlZmVyZW5jZSA9IGNoZWNrKHZtLnN0YWNrLnBvcCgpLCBDaGVja1JlZmVyZW5jZSk7XG5cbiAgbGV0IHZhbHVlID0gY2hlY2sodmFsdWVGb3JSZWYocmVmZXJlbmNlKSwgQ2hlY2tOb2RlKTtcblxuICB2bS5lbGVtZW50cygpLmFwcGVuZER5bmFtaWNOb2RlKHZhbHVlKTtcbn0pO1xuIl0sInNvdXJjZVJvb3QiOiIifQ==