UNPKG

@pact-toolbox/unplugin

Version:
56 lines (54 loc) 2.31 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")); const unplugin = require_chunk.__toESM(require("unplugin")); const webpack = require_chunk.__toESM(require("webpack")); //#region src/webpack.ts const unpluginFactory = (options) => { return { name: require_utils.PLUGIN_NAME, enforce: "post", webpack: async (compiler) => { 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; compiler.hooks.done.tapPromise(require_utils.PLUGIN_NAME, async () => { const networkConfig$1 = (0, __pact_toolbox_config.getSerializableNetworkConfig)(toolboxConfig); const define = new webpack.default.DefinePlugin({ "globalThis.__PACT_TOOLBOX_NETWORK_CONFIG__": JSON.stringify(networkConfig$1) }); define.apply(compiler); }); compiler.hooks.afterDone.tap(require_utils.PLUGIN_NAME, async () => { if (compiler.options.mode === "development") { const { network: networkInstance, client: networkClient } = await require_utils.createPactToolboxNetwork({ isServe: true, isTest: false, client, networkConfig }, toolboxConfig, options); network = networkInstance; client = networkClient; } }); compiler.hooks.shutdown.tap(require_utils.PLUGIN_NAME, async () => { const shutdownSpinner = (0, __pact_toolbox_utils.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 = (0, unplugin.createWebpackPlugin)(unpluginFactory); //#endregion Object.defineProperty(exports, 'webpack_default', { enumerable: true, get: function () { return webpack_default; } });