core/steps/page.step.ts

core/steps/page.step.ts is a file in Bane's Lab Build Scripts. 28 lines of code and 3 definitions.

import { RECORD_SITEMAP_ROUTE, SECTION_SITEMAP_ROUTE, SOURCE_SITEMAP_ROUTE } from "#configuration/constants/site.constants";
import { prerenderLine, recordPagesLine, sectionPagesLine, sourcePagesLine } from "#configuration/strings/page.strings";
import { defineStep } from "#core/factories/step.factory";
import { ontologyOf } from "#core/guards/site.guard";
import { prerenderSite } from "#core/coordinators/page.coordinator";

const PRERENDER = "prerender";

defineStep({
    cache: null,
    modes: ["build"],
    name: PRERENDER,
    needs: ["ontology", "graph", "icons", "diagrams"],
    phase: "close",
    async run(state) {
        const { catalog, records, routes, sections, sources } = await prerenderSite(
            state.root,
            state.outDir,
            ontologyOf(state, PRERENDER),
        );
        return {
            gives: {},
            line:
                prerenderLine(routes, catalog) +
                sourcePagesLine(sources, SOURCE_SITEMAP_ROUTE) +
                recordPagesLine(records, RECORD_SITEMAP_ROUTE) +
                sectionPagesLine(sections, SECTION_SITEMAP_ROUTE),
        };
    },
});