UNPKG

@pact-toolbox/unplugin

Version:
46 lines (44 loc) 1.64 kB
import { PLUGIN_NAME, createPactToolboxNetwork } from "./utils-caVmxe1_.js"; import { getNetworkConfig, getSerializableNetworkConfig, resolveConfig } from "@pact-toolbox/config"; import { PactToolboxClient } from "@pact-toolbox/runtime"; import { spinner } from "@pact-toolbox/utils"; //#region src/rsbuild.ts const pluginPactToolbox = (options) => ({ name: PLUGIN_NAME, async setup(api) { const toolboxConfig = await resolveConfig(); const networkConfig = getNetworkConfig(toolboxConfig); let client = new PactToolboxClient(toolboxConfig); let network = null; api.onCloseDevServer(async () => { if (network) { const shutdownSpinner = spinner({ indicator: "timer" }); try { shutdownSpinner.start("Shutting down network..."); await Promise.race([network?.stop(), new Promise((resolve) => setTimeout(resolve, 1e4))]); } finally { shutdownSpinner.stop("Network stopped!"); } } }); api.modifyRsbuildConfig((config) => { if (!config.source) config.source = {}; if (!config.source.define) config.source.define = {}; const networkConfig$1 = getSerializableNetworkConfig(toolboxConfig); config.source.define["globalThis.__PACT_TOOLBOX_NETWORK_CONFIG__"] = JSON.stringify(networkConfig$1); }); api.onAfterStartDevServer(async () => { const { network: networkInstance, client: networkClient } = await createPactToolboxNetwork({ client, networkConfig, isServe: true, isTest: false }, toolboxConfig, options); network = networkInstance; client = networkClient; }); } }); //#endregion export { pluginPactToolbox }; //# sourceMappingURL=rsbuild.js.map