generator-wxnode-boilerplate
Version:
Yeoman generator for wxnode boilerplate
33 lines (30 loc) • 957 B
text/typescript
import path from 'path';
import fs from 'fs';
import {getReadyPromise, getStaticHtml} from './render-server';
const htmlPath = path.resolve(process.cwd() , './dist/index.html');
let tplPromise: Promise<string>;
const isProd = process.env.NODE_ENV === 'production';
const isDebugServer = process.env.DEBUG === 'server';
export function getClientTpl() {
if (isProd || isDebugServer) {
if (!tplPromise) {
tplPromise = new Promise((resolve, reject) => {
fs.readFile(htmlPath, (err, data) => {
if (err) reject(err);
resolve(data + '');
});
});
}
return tplPromise;
} else {
return getReadyPromise().then(() => {
return getStaticHtml();
});
}
}
export function clientRender(ctx) {
return getClientTpl().then((tpl) => {
ctx.set('Content-Type', 'text/html');
ctx.body = tpl;
});
}