UNPKG

zephyr-rspress-plugin

Version:

Rspress plugin for Zephyr

61 lines (60 loc) • 2.79 kB
import "node:module"; import { resolve } from "node:path"; import { assertZephyrBuildTarget } from "zephyr-edge-contract"; import { ZephyrEngine, handleGlobalError, ze_log } from "zephyr-agent"; import { setupZeDeploy } from "./internal/assets/setupZeDeploy.mjs"; import { rewriteRspressModuleFederationAssets } from "./internal/assets/rewriteRspressModuleFederationAssets.mjs"; import { showFiles } from "./internal/files/showFiles.mjs"; import { walkFiles } from "./internal/files/walkFiles.mjs"; import { trackAfterBuildHooks } from "./internal/lifecycle/afterBuildHooks.mjs"; const zephyrRspressSSGPlugin = (config, options)=>{ if (options?.target !== void 0) assertZephyrBuildTarget(options.target, 'zephyrRspressSSGPlugin({ target })'); const { zephyr_engine_defer, zephyr_defer_create } = ZephyrEngine.defer_create(); const root = resolve(config.root ?? ''); let waitForAfterBuildHooks = async ()=>{}; zephyr_defer_create({ builder: 'rspack', context: root, ...options?.target === void 0 ? {} : { target: options.target } }); return { name: 'zephyr-rspress-plugin-ssg', beforeBuild (buildConfig = config) { waitForAfterBuildHooks = trackAfterBuildHooks(buildConfig.plugins ?? []); }, async afterBuild (buildConfig = config) { try { await waitForAfterBuildHooks(buildConfig); const outDir = resolve(buildConfig.outDir ?? './doc_build'); const files = await walkFiles(outDir, '', options?.target); if (0 === files.length) { ze_log.upload('No files found in output directory.'); const zephyr_engine = await zephyr_engine_defer; if (zephyr_engine.hasActiveBuild) zephyr_engine.build_failed(); return; } if (options?.target !== 'tap-app') await rewriteRspressModuleFederationAssets(outDir, files); await showFiles(outDir, files); await setupZeDeploy({ deferEngine: zephyr_engine_defer, outDir, files, hooks: options?.hooks, ...options?.mfConfig === void 0 ? {} : { mfConfig: options.mfConfig } }); } catch (error) { try { const zephyr_engine = await zephyr_engine_defer; if (zephyr_engine.hasActiveBuild) zephyr_engine.build_failed(); } catch {} handleGlobalError(error); } } }; }; export { zephyrRspressSSGPlugin }; //# sourceMappingURL=zephyrRspressSSGPlugin.mjs.map