UNPKG

@pact-toolbox/unplugin

Version:
46 lines (44 loc) 1.86 kB
const require_chunk = require('./chunk-CUT6urMc.cjs'); const require_utils = require('./utils-DOhsgEZO.cjs'); const __pact_toolbox_config = require_chunk.__toESM(require("@pact-toolbox/config")); const __pact_toolbox_runtime = require_chunk.__toESM(require("@pact-toolbox/runtime")); const __pact_toolbox_utils = require_chunk.__toESM(require("@pact-toolbox/utils")); //#region src/rsbuild.ts const pluginPactToolbox = (options) => ({ name: require_utils.PLUGIN_NAME, async setup(api) { const toolboxConfig = await (0, __pact_toolbox_config.resolveConfig)(); const networkConfig = (0, __pact_toolbox_config.getNetworkConfig)(toolboxConfig); let client = new __pact_toolbox_runtime.PactToolboxClient(toolboxConfig); let network = null; api.onCloseDevServer(async () => { if (network) { const shutdownSpinner = (0, __pact_toolbox_utils.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 = (0, __pact_toolbox_config.getSerializableNetworkConfig)(toolboxConfig); config.source.define["globalThis.__PACT_TOOLBOX_NETWORK_CONFIG__"] = JSON.stringify(networkConfig$1); }); api.onAfterStartDevServer(async () => { const { network: networkInstance, client: networkClient } = await require_utils.createPactToolboxNetwork({ client, networkConfig, isServe: true, isTest: false }, toolboxConfig, options); network = networkInstance; client = networkClient; }); } }); //#endregion exports.pluginPactToolbox = pluginPactToolbox;