bunext/dist/functions/bundler/init-pages.js

45 lines
1.5 KiB
JavaScript

import grabDirNames from "../../utils/grab-dir-names";
import isDevelopment from "../../utils/is-development";
import grabAllPages from "../../utils/grab-all-pages";
import { log } from "../../utils/log";
import grabPageBundledReactComponent from "../server/web-pages/grab-page-bundled-react-component";
import grabTsxStringModule from "../server/web-pages/grab-tsx-string-module";
const {} = grabDirNames();
export default async function initPages(params) {
const buildStart = performance.now();
const dev = isDevelopment();
const pages = grabAllPages({
exclude_api: true,
});
if (params?.log_time) {
log.build(`Compiling SSR for ${pages.length} pages ...`);
}
const tsx_map = [];
try {
for (let i = 0; i < pages.length; i++) {
const page = pages[i];
if (params?.target_page_file &&
page.local_path !== params.target_page_file) {
continue;
}
const { tsx } = (await grabPageBundledReactComponent({
file_path: page.local_path,
return_tsx_only: true,
})) || {};
if (!tsx) {
continue;
}
tsx_map.push({
tsx,
page_file_path: page.local_path,
});
}
await grabTsxStringModule({ tsx_map });
}
catch (error) { }
const elapsed = (performance.now() - buildStart).toFixed(0);
if (params?.log_time) {
log.success(`[SSR Compiled] in ${elapsed}ms`);
}
}