Skip to content

Commit 68d4128

Browse files
committed
using tabular format for the non json case
1 parent e80eaf5 commit 68d4128

File tree

1 file changed

+51
-6
lines changed
  • packages/app/src/cli/commands/app/function

1 file changed

+51
-6
lines changed

packages/app/src/cli/commands/app/function/info.ts

Lines changed: 51 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,8 @@ import {localAppContext} from '../../../services/app-context.js'
44
import {appFlags} from '../../../flags.js'
55
import AppUnlinkedCommand, {AppUnlinkedCommandOutput} from '../../../utilities/app-unlinked-command.js'
66
import {globalFlags, jsonFlag} from '@shopify/cli-kit/node/cli'
7-
import {outputResult} from '@shopify/cli-kit/node/output'
7+
import {outputContent, outputResult, outputToken} from '@shopify/cli-kit/node/output'
8+
import {renderInfo} from '@shopify/cli-kit/node/ui'
89

910
export default class FunctionInfo extends AppUnlinkedCommand {
1011
static summary = 'Get information about the function.'
@@ -30,7 +31,7 @@ export default class FunctionInfo extends AppUnlinkedCommand {
3031
const functionRunner = functionRunnerBinary()
3132
await downloadBinary(functionRunner)
3233

33-
const targeting: {[key: string]: {input_query?: string; export?: string}} = {}
34+
const targeting: {[key: string]: {inputQueryPath?: string; export?: string}} = {}
3435
ourFunction?.configuration.targeting?.forEach((target) => {
3536
if (target.target) {
3637
targeting[target.target] = {
@@ -62,10 +63,54 @@ export default class FunctionInfo extends AppUnlinkedCommand {
6263
),
6364
)
6465
} else {
65-
outputResult(`functionRunnerPath: ${functionRunner.path}`)
66-
outputResult(`targeting: ${JSON.stringify(targeting, null, 2)}`)
67-
outputResult(`schemaPath: ${schemaPath}`)
68-
outputResult(`wasmPath: ${ourFunction.outputPath}`)
66+
const sections: {title: string; body: {list: {items: string[]}}}[] = [
67+
{
68+
title: 'FUNCTION RUNNER',
69+
body: {
70+
list: {
71+
items: [outputContent`Path: ${outputToken.path(functionRunner.path)}`.value],
72+
},
73+
},
74+
},
75+
{
76+
title: 'FUNCTION BUILD',
77+
body: {
78+
list: {
79+
items: [
80+
outputContent`Schema Path: ${outputToken.path(schemaPath ?? 'N/A')}`.value,
81+
outputContent`WASM Path: ${outputToken.path(ourFunction.outputPath)}`.value,
82+
],
83+
},
84+
},
85+
},
86+
]
87+
88+
if (Object.keys(targeting).length > 0) {
89+
const targetingItems = Object.entries(targeting).map(([target, config]) => {
90+
const parts = [outputContent`${outputToken.cyan(target)}`.value]
91+
if (config.inputQueryPath) {
92+
parts.push(outputContent` Input Query Path: ${outputToken.path(config.inputQueryPath)}`.value)
93+
}
94+
if (config.export) {
95+
parts.push(outputContent` Export: ${config.export}`.value)
96+
}
97+
return parts.join('\n')
98+
})
99+
100+
sections.push({
101+
title: 'TARGETING',
102+
body: {
103+
list: {
104+
items: targetingItems,
105+
},
106+
},
107+
})
108+
}
109+
110+
renderInfo({
111+
headline: 'FUNCTION INFORMATION.',
112+
customSections: sections,
113+
})
69114
}
70115

71116
return {app}

0 commit comments

Comments
 (0)