tix-react-ssr
Version:
Tiket.com React Project Scripts
43 lines (35 loc) • 1.5 kB
JavaScript
import serialize from 'serialize-javascript';
import config from 'config';
import { Helmet } from 'react-helmet';
import getClientAssets from '../assets';
export default function end(initState = {}) {
const helmet = Helmet.renderStatic();
const assets = getClientAssets();
const devServer = process.env.DEV_SERVER;
return `</div>
<script type="text/javascript">
window.__INITIAL_STATE__ = ${serialize(initState)};
</script>
<script type="text/javascript">
${!devServer ?
`"serviceWorker" in window.navigator && window.addEventListener("load", function() {
window.navigator.serviceWorker
.register('/assets/service-worker.js')
.then(function(registration) {
console.log('ServiceWorker registration successful with scope: ', registration.scope)
})
.catch(function(ex) {
console.warn(ex)
console.warn('(This warning can be safely ignored outside of the production build.)')
})
})` : '\n'}
</script>
${assets.vendor && assets.vendor.js ? ` <script defer src="${assets.vendor.js}" type="text/javascript"></script>` : ''}
${assets.client && assets.client.js ? `<script defer src="${assets.client.js}" type="text/javascript"></script>` : ''}
<script type="text/javascript">
window.CONFIG = ${serialize(config.globals)}
</script>
${helmet.script.toString()}
</body>
</html>`;
}