@pact-toolbox/unplugin
Version:
56 lines (54 loc) • 2.31 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"));
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;
}
});