37 lines
1 KiB
TypeScript
37 lines
1 KiB
TypeScript
import { promises as fs } from "graceful-fs";
|
|
|
|
import ErrorTypes from "../utils/errorTypes";
|
|
import Logger from "../logger";
|
|
import * as Resources from "../utils/resources";
|
|
import { Request, Response } from "express";
|
|
|
|
const indexHtml = __dirname + "/../../client/index.html";
|
|
|
|
export function render(req: Request, res: Response): void {
|
|
const data = Resources.getData(req);
|
|
|
|
fs.readFile(indexHtml, "utf8")
|
|
.then((body) =>
|
|
Resources.successHtml(
|
|
res,
|
|
body.replace(
|
|
/<body/,
|
|
"<script>window.__nodeToken = '" +
|
|
data.token +
|
|
"';</script><body"
|
|
)
|
|
)
|
|
)
|
|
.catch((err) => {
|
|
Logger.tag("frontend").error(
|
|
"Could not read file: ",
|
|
indexHtml,
|
|
err
|
|
);
|
|
return Resources.error(res, {
|
|
data: "Internal error.",
|
|
type: ErrorTypes.internalError,
|
|
});
|
|
});
|
|
}
|