UNPKG

@pact-toolbox/unplugin

Version:
52 lines (50 loc) 2.38 kB
Object.defineProperty(exports, '__esModule', { value: true }); const require_chunk = require('./chunk-CUT6urMc.cjs'); const require_utils = require('./utils-DOhsgEZO.cjs'); const require_pactToJS = require('./pactToJS-CT_lR0T8.cjs'); require('./transformer-DuLNO5yt.cjs'); require('./api-DGJOSVKZ.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/loader.ts const cache = { resolvedConfig: void 0, client: void 0 }; const transformPactToJS = require_pactToJS.createPactToJSTransformer({ debug: process.env.DEBUG === "true" || process.env.DEBUG === "1" || process.env.NODE_ENV === "development" }); async function transformAndDeploy(id, src) { if (!cache.resolvedConfig) cache.resolvedConfig = await (0, __pact_toolbox_config.resolveConfig)(); if (!cache.client) cache.client = new __pact_toolbox_runtime.PactToolboxClient(cache.resolvedConfig); const { code, types, modules } = transformPactToJS(src); try { const client = cache.client; const isDeployed = modules.length > 0 ? (await Promise.all(modules.map((m) => client?.isContractDeployed(m.path)))).every(Boolean) : false; await (0, __pact_toolbox_utils.writeFile)(`${id}.d.ts`, types); const networkConfig = (0, __pact_toolbox_config.getNetworkConfig)(cache.resolvedConfig); if ((0, __pact_toolbox_config.isLocalNetwork)(networkConfig)) { __pact_toolbox_utils.logger.start(`[pactLoader] Deploying contract ${id} to ${networkConfig.name}`); await client.deployCode(src, { build: { upgrade: isDeployed, init: !isDeployed } }); __pact_toolbox_utils.logger.success(`[pactLoader] Successfully deployed contract ${id} to ${networkConfig.name}`); } return code; } catch (error) { require_utils.prettyPrintError(`[pactLoader] Failed to deploy contract ${id}`, error); return code; } } function pactLoader(contents) { this.cacheable && this.cacheable(); const callback = this.async(); const id = this.resourcePath.replace(this.rootContext, ""); transformAndDeploy(id, contents).then((code) => { callback(null, code); }).catch(callback); } var loader_default = pactLoader; //#endregion exports.default = loader_default; exports.pactLoader = pactLoader;