"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.renderPage = void 0; const path_1 = __importDefault(require("path")); const fs_extra_1 = __importDefault(require("fs-extra")); const config_1 = require("../config"); const escape = require('escape-html'); async function renderPage(config, page, // foo.md result, appChunk, cssChunk, pageToHashMap, hashMapStirng) { const { createApp } = require(path_1.default.join(config.tempDir, `_assets/app.js`)); const { app, router } = createApp(); const routePath = `/${page.replace(/\.md$/, '')}`; const siteData = config_1.resolveSiteDataByRoute(config.site, routePath); router.go(routePath); // lazy require server-renderer for production build const content = await require('@vue/server-renderer').renderToString(app); const pageName = page.replace(/\//g, '_'); // server build doesn't need hash const pageServerJsFileName = pageName + '.js'; // for any initial page load, we only need the lean version of the page js // since the static content is already on the page! const pageHash = pageToHashMap[pageName]; const pageClientJsFileName = pageName + `.` + pageHash + '.lean.js'; // resolve page data so we can render head tags const { __pageData } = require(path_1.default.join(config.tempDir, `_assets`, pageServerJsFileName)); const pageData = JSON.parse(__pageData); const assetPath = `${siteData.base}_assets/`; const preloadLinks = [ // resolve imports for index.js + page.md.js and inject script tags for // them as well so we fetch everything as early as possible without having // to wait for entry chunks to parse ...resolvePageImports(config, page, result, appChunk), pageClientJsFileName, appChunk.fileName ] .map((file) => { return ``; }) .join('\n '); const html = `