UNPKG

serlina

Version:

A progressive React serverside-rendering framework

37 lines (36 loc) 1.89 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const React = require("react"); const serialize = require("serialize-javascript"); exports.default = ({ pageStyles, pageScripts, initialProps = {}, publicPath, body, pageName, inlineCSSString, helmet }) => { const scripts = [...pageScripts]; const main = scripts.pop(); const vendors = scripts.pop(); const otherScripts = scripts; return (React.createElement("html", Object.assign({}, helmet.htmlAttributes.toComponent()), React.createElement("head", null, helmet.title.toComponent(), helmet.meta.toComponent(), helmet.script.toComponent(), helmet.noscript.toComponent(), helmet.style.toComponent(), helmet.link.toComponent(), inlineCSSString ? inlineCSSString.map(str => { return React.createElement("style", { key: str.slice(0, 8), dangerouslySetInnerHTML: { __html: str } }); }) : pageStyles.map(url => { return React.createElement("link", { key: url, rel: 'stylesheet', href: publicPath + url }); }), React.createElement("script", { dangerouslySetInnerHTML: { __html: ` window.__serlina__DATA = {}; window.__serlina__DATA.pageInitialProps = ${serialize(initialProps)}; ` } })), React.createElement("body", Object.assign({}, helmet.bodyAttributes.toComponent()), React.createElement("div", { id: "app", dangerouslySetInnerHTML: { __html: body } }), React.createElement("script", { src: publicPath + vendors }), otherScripts.map(script => { return React.createElement("script", { key: script, src: publicPath + script }); }), React.createElement("script", { src: publicPath + main })))); };