import { CliTree, CliTrees, objectPropertiesToCliTrees, writeCliTree } from '@cirrusct/cli-utils'; import { MrCommandHandler, MrCommandResults, MrPackage } from '@cirrusct/mr-core'; import { ConfigCommandOptions } from './types'; export const handleCommand: MrCommandHandler = async ({ options, session, logger }) => { debugger; const { packages } = session; for (const pkg of packages) { const subTrees: CliTrees = []; // Package props subtree const packageProps = ['version', 'description']; const packageData = {}; for (const prop of packageProps) { if (pkg[prop] && pkg[prop].length > 0) { packageData[prop] = pkg[prop]; } } const pkgTree: CliTree = { name: 'package', children: objectPropertiesToCliTrees(packageData), }; subTrees.push(pkgTree); // Build Config subtree if (options.list) { const config = await pkg.config.value; const depTree: CliTree = { name: 'config', children: objectPropertiesToCliTrees(config), }; subTrees.push(depTree); } const tree: CliTree = { name: pkg.name, children: subTrees, }; writeCliTree(tree, process.stdout); } return { exitCode: 0, }; };