oc-template-es6
Version:
OC template based on ES6 template literals
28 lines (27 loc) • 1.07 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.ssr = ssr;
const get_js_from_url_1 = __importDefault(require("./get-js-from-url"));
const try_get_cached_1 = __importDefault(require("./try-get-cached"));
async function ssr({ globals, componentName, options, renderer, }) {
const url = options.model.component.src;
const key = options.key;
const componentKey = options.model.component.key;
const extractor = (key, context) => context.oc._element.innerHTML;
const getJsFromUrl = (0, get_js_from_url_1.default)({
model: options.model,
key,
componentKey,
url,
globals,
extractor,
});
const cachedHtml = await (0, try_get_cached_1.default)(`${componentName}Component`, componentKey, getJsFromUrl);
const html = options.template(Object.assign({}, options.model, {
__html: cachedHtml,
}));
return html;
}