aboutsummaryrefslogtreecommitdiff
path: root/vnext/server/middleware/renderer.js
diff options
context:
space:
mode:
Diffstat (limited to 'vnext/server/middleware/renderer.js')
-rw-r--r--vnext/server/middleware/renderer.js84
1 files changed, 42 insertions, 42 deletions
diff --git a/vnext/server/middleware/renderer.js b/vnext/server/middleware/renderer.js
index debba758..e7e0324e 100644
--- a/vnext/server/middleware/renderer.js
+++ b/vnext/server/middleware/renderer.js
@@ -1,54 +1,54 @@
-import * as ReactDOMServer from 'react-dom/server';
-import cookie from 'cookie';
-import config from 'config';
+import * as ReactDOMServer from 'react-dom/server'
+import cookie from 'cookie'
+import config from 'config'
// import our main App component
-import App from '../../src/App';
+import App from '../../src/App'
-import { getLinks } from '../sape';
-import { StaticRouter } from 'react-router-dom/server';
-import { VisitorProvider } from '../../src/ui/VisitorContext';
+import { getLinks } from '../sape'
+import { StaticRouter } from 'react-router-dom/server'
+import { VisitorProvider } from '../../src/ui/VisitorContext'
-import path from 'path';
-import fs from 'fs';
+import path from 'path'
+import fs from 'fs'
// convert a Unicode string to a string in which
// each 16-bit unit occupies only one byte
function toBinary(string) {
- const codeUnits = new Uint16Array(string.length);
+ const codeUnits = new Uint16Array(string.length)
for (let i = 0; i < codeUnits.length; i++) {
- codeUnits[i] = string.charCodeAt(i);
+ codeUnits[i] = string.charCodeAt(i)
}
- return Buffer.from(String.fromCharCode(...new Uint8Array(codeUnits.buffer))).toString('base64');
+ return Buffer.from(String.fromCharCode(...new Uint8Array(codeUnits.buffer))).toString('base64')
}
-const STATIC_ROOT = config.get('service.static_root') || path.resolve(__dirname, 'public');
+const STATIC_ROOT = config.get('service.static_root') || path.resolve(__dirname, 'public')
const serverRenderer = async (req, res) => {
// point to the html file created by CRA's build tool
- const filePath = path.resolve(STATIC_ROOT, 'index.html');
+ const filePath = path.resolve(STATIC_ROOT, 'index.html')
// links
- const cookies = cookie.parse(req.headers.cookie || '');
+ const cookies = cookie.parse(req.headers.cookie || '')
- const links = await getLinks(req.originalUrl, cookies['sape_cookie']);
+ const links = await getLinks(req.originalUrl, cookies['sape_cookie'])
fs.readFile(filePath, 'utf8', (err, htmlData) => {
if (err) {
- console.error('err', err);
- return res.status(404).end();
+ console.error('err', err)
+ return res.status(404).end()
}
- const routerContext = {};
+ const routerContext = {}
const props = {
footer: links.join(' ')
- };
+ }
- const marker = '<div id="app">';
- const data = htmlData.split(marker);
- const propsData = `<script>window.__PROPS__="${toBinary(JSON.stringify(props))}";</script>${marker}`;
- let didError = false;
+ const marker = '<div id="app">'
+ const data = htmlData.split(marker)
+ const propsData = `<script>window.__PROPS__="${toBinary(JSON.stringify(props))}";</script>${marker}`
+ let didError = false
const { pipe } = ReactDOMServer.renderToPipeableStream(
<VisitorProvider>
<StaticRouter location={req.baseUrl} context={routerContext}>
@@ -57,33 +57,33 @@ const serverRenderer = async (req, res) => {
</VisitorProvider>
, {
onShellReady() {
- res.statusCode = didError ? 500 : 200;
- res.setHeader('Content-type', 'text/html');
- res.write(data[0]);
- res.write(propsData);
- pipe(res, { end: false });
+ res.statusCode = didError ? 500 : 200
+ res.setHeader('Content-type', 'text/html')
+ res.write(data[0])
+ res.write(propsData)
+ pipe(res, { end: false })
},
onShellError() {
- didError = true;
- res.statusCode = 500;
- res.setHeader('Content-type', 'text/html');
+ didError = true
+ res.statusCode = 500
+ res.setHeader('Content-type', 'text/html')
res.send(
'<h1>Something went wrong :(</h1>'
- );
- res.end();
+ )
+ res.end()
},
onAllReady() {
if (!didError) {
- res.write(data[1]);
+ res.write(data[1])
}
- res.end();
+ res.end()
},
onError(err) {
- didError = true;
- console.log(err);
+ didError = true
+ console.log(err)
}
- });
- });
-};
+ })
+ })
+}
-export default serverRenderer;
+export default serverRenderer