UNPKG

@patchworkdev/pdk

Version:

Patchwork Development Kit

60 lines (59 loc) 2.57 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.status = status; const config_1 = require("../common/helpers/config"); const lockFile_1 = __importDefault(require("../common/helpers/lockFile")); const text_1 = require("../common/helpers/text"); const docker_1 = require("../dev/services/docker"); async function status(configPath) { const patchworkConfig = await (0, config_1.importPatchworkConfig)(configPath); if (!patchworkConfig) { console.error('Error loading Patchwork config'); return; } const lockFileManager = new lockFile_1.default(configPath); const dockerService = new docker_1.DockerService(configPath); const networks = {}; for (const [networkName, network] of Object.entries(patchworkConfig.networks ?? [])) { networks[networkName] = { name: network.chain.name, id: network.chain.id, rpc: network.rpc, }; } const deployments = {}; for (const [contractName, contract] of Object.entries(patchworkConfig.contracts ?? {})) { if (typeof contract !== 'string') { for (const [networkKey, network] of Object.entries(patchworkConfig.networks ?? [])) { const deployment = lockFileManager.getLatestDeploymentForContract((0, text_1.pascalCase)(contract.name), networkKey); if (!deployments[networkKey]) { deployments[networkKey] = {}; } if (deployment) { deployments[networkKey][contractName] = deployment.address; } else { deployments[networkKey][contractName] = '-'; } } } } const containers = await dockerService.getContainerStatus((0, text_1.dockerProjectName)(patchworkConfig.name)); const containerTable = {}; containers.map((container) => { containerTable[container.id] = { name: container.name, privatePort: container.privatePort?.toString() ?? '-', publicPort: container.publicPort?.toString() ?? '-', }; }); console.log('***************networks****************'); console.table(networks); console.log('***************deployments****************'); console.table(deployments); console.log('***************containers****************'); console.table(containerTable); }