@pact-toolbox/unplugin
Version:
46 lines (44 loc) • 1.86 kB
JavaScript
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;