zephyr-rspress-plugin
Version:
Rspress plugin for Zephyr
61 lines (60 loc) • 2.79 kB
JavaScript
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