import { createError, destroyCircular } from '@cirrusct/core-node'; import { Logger } from '@cirrusct/logging'; import { MonoRepoPackage, MonoRepo } from '@cirrusct/mr-core'; import { BuildConfig } from '@cirrusct/mr-build'; import { MrCommandHandler } from '@cirrusct/mr-command'; import { MrDeployOptions, ResolvedDeploymentConfig } from './types'; import { DeploymentConfigResolver } from './DeployConfigResolver'; import { DeployTemplateContext } from './DeployTemplateContext'; import { getPackagesWithDeployments, getResolvedConfigs } from './config'; import * as prettyjson from 'prettyjson'; export const handleShowConfigCommand: MrCommandHandler = async ({ logger, packages, options = {}, cwd, monoRepo, }): Promise => { try { const pattern = options.deployment || '*'; const resolvedConfigs = await getResolvedConfigs(pattern, options, monoRepo); await showConfig(resolvedConfigs, logger); } catch (e) { throw createError(`ShowConfig Failed`, e); } }; const showConfig = async (resolvedConfig: ResolvedDeploymentConfig | ResolvedDeploymentConfig[], logger: Logger) => { const deploymentConfigs = Array.isArray(resolvedConfig) ? resolvedConfig : [resolvedConfig]; for (const config of deploymentConfigs) { const context = new DeployTemplateContext(config); logger.info({ name: config.name, package: context.mrPackage.name, output: context.output, }); const skinnyModel = { name: config.name, dashedName: context.model.deploymentNameDashed, properties: context.model.properties, }; //console.log(`${config.name} Model:`); //const model = destroyCircular(context.model); console.log(prettyjson.render(skinnyModel)); } };