@pact-toolbox/unplugin
Version:
52 lines (50 loc) • 2.38 kB
JavaScript
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;