diff --git a/packages/theme/src/cli/services/list.ts b/packages/theme/src/cli/services/list.ts index b7d5351382..c22aa2458d 100644 --- a/packages/theme/src/cli/services/list.ts +++ b/packages/theme/src/cli/services/list.ts @@ -5,13 +5,14 @@ import {Filter, FilterProps, filterThemes} from '../utilities/theme-selector/fil import {renderTable} from '@shopify/cli-kit/node/ui' import {AdminSession} from '@shopify/cli-kit/node/session' import {getHostTheme} from '@shopify/cli-kit/node/themes/conf' -import {outputInfo} from '@shopify/cli-kit/node/output' +import {outputContent, outputInfo, outputToken} from '@shopify/cli-kit/node/output' interface Options { role?: Role name?: string id?: number json: boolean + environment?: string } export async function list(options: Options, adminSession: AdminSession) { @@ -31,7 +32,9 @@ export async function list(options: Options, adminSession: AdminSession) { storeThemes = filterThemes(store, storeThemes, filter) } - outputInfo(`Store: ${store}`) + if (options.environment) { + outputInfo(outputContent`${outputToken.italic(`Store: ${store} Environment: ${options.environment}`)}\n`) + } if (options.json) { return outputInfo(JSON.stringify(storeThemes, null, 2)) @@ -53,4 +56,5 @@ export async function list(options: Options, adminSession: AdminSession) { }) renderTable({rows: themes, columns}) + outputInfo('\n') } diff --git a/packages/theme/src/cli/utilities/theme-command.ts b/packages/theme/src/cli/utilities/theme-command.ts index 15e7a682e4..9274167f8d 100644 --- a/packages/theme/src/cli/utilities/theme-command.ts +++ b/packages/theme/src/cli/utilities/theme-command.ts @@ -80,7 +80,7 @@ export default abstract class ThemeCommand extends Command { environment: [environment], } - if (!this.validConfig(environmentConfig as FlagValues, requiredFlags)) return + if (!this.validConfig(environmentConfig as FlagValues, requiredFlags, environment)) return const session = sessions[environment] @@ -99,18 +99,20 @@ export default abstract class ThemeCommand extends Command { return ensureAuthenticatedThemes(ensureThemeStore({store}), password) } - private validConfig(environmentConfig: FlagValues, requiredFlags: string[]): boolean { + private validConfig(environmentConfig: FlagValues, requiredFlags: string[], environmentName: string): boolean { if (!environmentConfig) { renderWarning({body: 'Environment configuration is empty.'}) return false } - - const required = ['store', 'password', ...requiredFlags] + const required = [...requiredFlags] const missingFlags = required.filter((flag) => !environmentConfig[flag]) if (missingFlags.length > 0) { renderWarning({ - body: ['Missing required flags in environment configuration:', {list: {items: missingFlags}}], + body: [ + `Missing required flags in environment configuration${environmentName ? ` for ${environmentName}` : ''}:`, + {list: {items: missingFlags}}, + ], }) return false }