UNPKG

@iexec/iapp

Version:

A CLI to guide you through the process of building an iExec iApp

53 lines 2.01 kB
import { ethers } from 'ethers'; import { askForWallet } from '../cli-helpers/askForWallet.js'; import { getIExec } from '../utils/iexec.js'; import { getSpinner } from '../cli-helpers/spinner.js'; import * as color from '../cli-helpers/color.js'; import { handleCliError } from '../cli-helpers/handleCliError.js'; import { readIAppConfig } from '../utils/iAppConfigFile.js'; import { goToProjectRoot } from '../cli-helpers/goToProjectRoot.js'; import { resolveChainConfig } from '../cli-helpers/resolveChainConfig.js'; export async function debug({ taskId, chain, }) { const spinner = getSpinner(); try { if (!ethers.isHexString(taskId, 32)) { throw Error('Invalid task ID'); } await goToProjectRoot({ spinner }); const { defaultChain } = await readIAppConfig(); const chainConfig = resolveChainConfig({ chain, defaultChain, spinner, }); const signer = await askForWallet({ spinner }); const iexec = getIExec({ ...chainConfig, signer, }); spinner.start('Fetching logs from worker...'); const logsArray = await iexec.task.fetchLogs(taskId); logsArray.forEach(({ worker: workerName, stdout, stderr }) => { spinner.log(color.worker(`\nWorker: ${workerName}`)); if (stdout) { spinner.log(color.emphasis.bold('\n[STDOUT]')); spinner.log(stdout); } else { spinner.log(color.comment('\n[STDOUT] No output')); } if (stderr) { spinner.log(color.error.bold('\n[STDERR]')); spinner.log(stderr); } else { spinner.log(color.comment('\n[STDERR] No output')); } }); spinner.succeed('Task logs retrieved successfully.'); } catch (error) { handleCliError({ spinner, error }); } } //# sourceMappingURL=debug.js.map