@luban-cli/cli-plugin-service
Version:
A development runtime environment dependency
40 lines • 1.57 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.generateDocument = void 0;
const server_1 = __importDefault(require("react-dom/server"));
const react_helmet_1 = __importDefault(require("react-helmet"));
const ejs_1 = __importDefault(require("ejs"));
const serialize_javascript_1 = __importDefault(require("serialize-javascript"));
/**
* generate html document
* @param template
* @param context
* @param App
* @param injectedScripts
* @param injectedStyles
*/
exports.generateDocument = (template, context, App, injectedScripts, injectedStyles) => {
let document = "";
if (App) {
const content = server_1.default.renderToString(App);
const helmet = react_helmet_1.default.renderStatic();
document = ejs_1.default.render(template, {
CONTENT: content,
__INITIAL_DATA__: serialize_javascript_1.default(context.initProps),
__USE_SSR__: true,
__INITIAL_STATE__: serialize_javascript_1.default(context.initState),
INJECTED_STYLES: injectedStyles,
INJECTED_SCRIPTS: injectedScripts,
link: helmet.link.toString(),
meta: helmet.meta.toString(),
script: helmet.script.toString(),
style: helmet.style.toString(),
title: helmet.title.toString(),
});
}
return document;
};
//# sourceMappingURL=generateDocument.js.map