oc-template-react
Version:
30 lines (29 loc) • 1.19 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 props = options.model.component.props;
const url = options.model.component.src;
const key = options.key;
const componentKey = options.model.component.key;
const extractor = (key, context) => context.oc.reactComponents[key].component;
const getJsFromUrl = (0, get_js_from_url_1.default)({
model: options.model,
key,
componentKey,
url,
globals,
extractor,
});
const CachedApp = await (0, try_get_cached_1.default)(`${componentName}Component`, componentKey, getJsFromUrl);
const componentHtml = renderer(CachedApp, props);
const html = options.template(Object.assign({}, options.model, {
__html: componentHtml,
}));
return html;
}