UNPKG

@pact-toolbox/unplugin

Version:
51 lines (49 loc) 1.91 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"; import { createWebpackPlugin } from "unplugin"; import webpack from "webpack"; //#region src/webpack.ts const unpluginFactory = (options) => { return { name: PLUGIN_NAME, enforce: "post", webpack: async (compiler) => { const toolboxConfig = await resolveConfig(); const networkConfig = getNetworkConfig(toolboxConfig); let client = new PactToolboxClient(toolboxConfig); let network = null; compiler.hooks.done.tapPromise(PLUGIN_NAME, async () => { const networkConfig$1 = getSerializableNetworkConfig(toolboxConfig); const define = new webpack.DefinePlugin({ "globalThis.__PACT_TOOLBOX_NETWORK_CONFIG__": JSON.stringify(networkConfig$1) }); define.apply(compiler); }); compiler.hooks.afterDone.tap(PLUGIN_NAME, async () => { if (compiler.options.mode === "development") { const { network: networkInstance, client: networkClient } = await createPactToolboxNetwork({ isServe: true, isTest: false, client, networkConfig }, toolboxConfig, options); network = networkInstance; client = networkClient; } }); compiler.hooks.shutdown.tap(PLUGIN_NAME, async () => { const shutdownSpinner = spinner({ indicator: "timer" }); if (network) try { shutdownSpinner.start("Shutting down network..."); await Promise.race([network.stop(), new Promise((resolve) => setTimeout(resolve, 1e4))]); } finally { shutdownSpinner.stop("Network stopped!"); } }); } }; }; var webpack_default = createWebpackPlugin(unpluginFactory); //#endregion export { webpack_default }; //# sourceMappingURL=webpack-DmorBFG2.js.map