Skip to content

Commit

Permalink
add better warnings for missing flags and changed output for list
Browse files Browse the repository at this point in the history
  • Loading branch information
EvilGenius13 committed Jan 30, 2025
1 parent a7b48fd commit c6205cf
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 7 deletions.
8 changes: 6 additions & 2 deletions packages/theme/src/cli/services/list.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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) {
Expand All @@ -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))
Expand All @@ -53,4 +56,5 @@ export async function list(options: Options, adminSession: AdminSession) {
})

renderTable({rows: themes, columns})
outputInfo('\n')
}
12 changes: 7 additions & 5 deletions packages/theme/src/cli/utilities/theme-command.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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]

Expand All @@ -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
}
Expand Down

0 comments on commit c6205cf

Please sign in to comment.