1import chalk from 'chalk'; 2 3import logger from '../../Logger'; 4import { Task } from '../../TasksRunner'; 5import { printPackagesToPromote } from '../helpers'; 6import { CommandOptions, Parcel, TaskArgs } from '../types'; 7import { findPackagesToPromote } from './findPackagesToPromote'; 8import { prepareParcels } from './prepareParcels'; 9 10const { yellow } = chalk; 11 12/** 13 * Lists packages that can be promoted to given tag. 14 */ 15export const listPackagesToPromote = new Task<TaskArgs>( 16 { 17 name: 'listPackagesToPromote', 18 dependsOn: [prepareParcels, findPackagesToPromote], 19 }, 20 async (parcels: Parcel[], options: CommandOptions): Promise<void | symbol> => { 21 if (parcels.length === 0) { 22 logger.success(`\n✅ No packages to promote.\n`); 23 return Task.STOP; 24 } 25 26 logger.info(`\n Packages to promote to ${yellow.bold(options.tag)}:`); 27 printPackagesToPromote(parcels); 28 } 29); 30