Skip to content

Commit 4ed4724

Browse files
committed
Use Project follow-up command helper for display-only paths
1 parent 63d40f8 commit 4ed4724

File tree

5 files changed

+33
-24
lines changed

5 files changed

+33
-24
lines changed

packages/app/src/cli/services/deploy.ts

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,14 +8,15 @@ import {AppLinkedInterface} from '../models/app/app.js'
88
import {Project} from '../models/project/project.js'
99
import {updateAppIdentifiers} from '../models/app/identifiers.js'
1010
import {DeveloperPlatformClient} from '../utilities/developer-platform-client.js'
11+
import {formatProjectFollowUpCommand} from '../utilities/project-command.js'
1112
import {Organization, OrganizationApp} from '../models/organization.js'
1213
import {reloadApp} from '../models/app/loader.js'
1314
import {ExtensionRegistration} from '../api/graphql/all_app_extension_registrations.js'
1415
import {getTomls} from '../utilities/app/config/getTomls.js'
1516
import {renderInfo, renderSuccess, renderTasks, renderConfirmationPrompt, isTTY} from '@shopify/cli-kit/node/ui'
1617
import {mkdir} from '@shopify/cli-kit/node/fs'
1718
import {joinPath, dirname} from '@shopify/cli-kit/node/path'
18-
import {outputNewline, outputInfo, formatPackageManagerCommand} from '@shopify/cli-kit/node/output'
19+
import {outputNewline, outputInfo} from '@shopify/cli-kit/node/output'
1920
import {getArrayRejectingUndefined} from '@shopify/cli-kit/common/array'
2021
import {AbortError, AbortSilentError} from '@shopify/cli-kit/node/error'
2122
import type {AlertCustomSection, Task, TokenItem} from '@shopify/cli-kit/node/ui'
@@ -327,7 +328,7 @@ async function outputCompletionMessage({
327328
body.push(
328329
'• Map extension IDs to other copies of your app by running',
329330
{
330-
command: formatPackageManagerCommand(project.packageManager, 'shopify app deploy'),
331+
command: formatProjectFollowUpCommand(project, 'shopify app deploy'),
331332
},
332333
'for: ',
333334
{
@@ -378,8 +379,8 @@ async function outputCompletionMessage({
378379
[
379380
'Run',
380381
{
381-
command: formatPackageManagerCommand(
382-
project.packageManager,
382+
command: formatProjectFollowUpCommand(
383+
project,
383384
'shopify app release',
384385
`--version=${uploadExtensionsBundleResult.versionTag}`,
385386
),

packages/app/src/cli/services/dev.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ import {DevSessionStatusManager} from './dev/processes/dev-session/dev-session-s
2828
import {TunnelMode} from './dev/tunnel-mode.js'
2929
import {PortDetail, renderPortWarnings} from './dev/port-warnings.js'
3030
import {DeveloperPlatformClient} from '../utilities/developer-platform-client.js'
31+
import {formatProjectFollowUpCommand} from '../utilities/project-command.js'
3132
import {Web, getAppScopesArray, AppLinkedInterface} from '../models/app/app.js'
3233
import {Project} from '../models/project/project.js'
3334
import {Organization, OrganizationApp, OrganizationStore} from '../models/organization.js'
@@ -47,7 +48,7 @@ import {getBackendPort} from '@shopify/cli-kit/node/environment'
4748
import {basename} from '@shopify/cli-kit/node/path'
4849
import {renderWarning} from '@shopify/cli-kit/node/ui'
4950
import {reportAnalyticsEvent} from '@shopify/cli-kit/node/analytics'
50-
import {OutputProcess, formatPackageManagerCommand} from '@shopify/cli-kit/node/output'
51+
import {OutputProcess} from '@shopify/cli-kit/node/output'
5152
import {hashString} from '@shopify/cli-kit/node/crypto'
5253
import {AbortError} from '@shopify/cli-kit/node/error'
5354

@@ -221,7 +222,7 @@ export async function warnIfScopesDifferBeforeDev({
221222
const nextSteps = [
222223
[
223224
'Run',
224-
{command: formatPackageManagerCommand(commandOptions.project.packageManager, 'shopify app deploy')},
225+
{command: formatProjectFollowUpCommand(commandOptions.project, 'shopify app deploy')},
225226
'to push your scopes to the Partner Dashboard',
226227
],
227228
]

packages/app/src/cli/services/generate.ts

Lines changed: 6 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import {
66
ExtensionFlavorValue,
77
} from './generate/extension.js'
88
import {DeveloperPlatformClient} from '../utilities/developer-platform-client.js'
9+
import {formatProjectFollowUpCommand} from '../utilities/project-command.js'
910
import {AppInterface, AppLinkedInterface} from '../models/app/app.js'
1011
import {Project} from '../models/project/project.js'
1112
import generateExtensionPrompts, {
@@ -16,12 +17,10 @@ import metadata from '../metadata.js'
1617
import {ExtensionTemplate} from '../models/app/template.js'
1718
import {ExtensionSpecification, RemoteAwareExtensionSpecification} from '../models/extensions/specification.js'
1819
import {OrganizationApp} from '../models/organization.js'
19-
import {PackageManager} from '@shopify/cli-kit/node/node-package-manager'
2020
import {isShopify} from '@shopify/cli-kit/node/context/local'
2121
import {joinPath} from '@shopify/cli-kit/node/path'
2222
import {RenderAlertOptions, renderSuccess} from '@shopify/cli-kit/node/ui'
2323
import {AbortError} from '@shopify/cli-kit/node/error'
24-
import {formatPackageManagerCommand} from '@shopify/cli-kit/node/output'
2524
import {groupBy} from '@shopify/cli-kit/common/collection'
2625

2726
interface GenerateOptions {
@@ -56,7 +55,7 @@ async function generate(options: GenerateOptions) {
5655
const generateExtensionOptions = buildGenerateOptions(promptAnswers, app, options, developerPlatformClient)
5756
const generatedExtension = await generateExtensionTemplate(generateExtensionOptions)
5857

59-
renderSuccessMessage(generatedExtension, options.project.packageManager)
58+
renderSuccessMessage(generatedExtension, options.project)
6059
}
6160

6261
async function buildPromptOptions(
@@ -128,12 +127,8 @@ function buildGenerateOptions(
128127
}
129128
}
130129

131-
function renderSuccessMessage(extension: GeneratedExtension, packageManager: PackageManager) {
132-
const formattedSuccessfulMessage = formatSuccessfulRunMessage(
133-
extension.extensionTemplate,
134-
extension.directory,
135-
packageManager,
136-
)
130+
function renderSuccessMessage(extension: GeneratedExtension, project: Project) {
131+
const formattedSuccessfulMessage = formatSuccessfulRunMessage(extension.extensionTemplate, extension.directory, project)
137132
renderSuccess(formattedSuccessfulMessage)
138133
}
139134

@@ -153,7 +148,7 @@ function validateExtensionFlavor(extensionTemplate?: ExtensionTemplate, flavor?:
153148
function formatSuccessfulRunMessage(
154149
extensionTemplate: ExtensionTemplate,
155150
extensionDirectory: string,
156-
depndencyManager: PackageManager,
151+
project: Project,
157152
): RenderAlertOptions {
158153
const options: RenderAlertOptions = {
159154
headline: ['Your extension was created in', {filePath: extensionDirectory}, {char: '.'}],
@@ -164,7 +159,7 @@ function formatSuccessfulRunMessage(
164159
if (extensionTemplate.type !== 'function') {
165160
options.nextSteps!.push([
166161
'To preview this extension along with the rest of the project, run',
167-
{command: formatPackageManagerCommand(depndencyManager, 'shopify app dev')},
162+
{command: formatProjectFollowUpCommand(project, 'shopify app dev')},
168163
])
169164
}
170165

packages/app/src/cli/services/info.ts

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import {outputEnv} from './app/env/show.js'
22
import {DeveloperPlatformClient} from '../utilities/developer-platform-client.js'
3+
import {formatProjectFollowUpCommand} from '../utilities/project-command.js'
34
import {AppLinkedInterface, getAppScopes} from '../models/app/app.js'
45
import {Project} from '../models/project/project.js'
56
import {configurationFileNames} from '../constants.js'
@@ -8,12 +9,7 @@ import {Organization, OrganizationApp} from '../models/organization.js'
89
import {isServiceAccount, isUserAccount} from '@shopify/cli-kit/node/session'
910
import {platformAndArch} from '@shopify/cli-kit/node/os'
1011
import {basename, relativePath} from '@shopify/cli-kit/node/path'
11-
import {
12-
OutputMessage,
13-
formatPackageManagerCommand,
14-
outputContent,
15-
shouldDisplayColors,
16-
} from '@shopify/cli-kit/node/output'
12+
import {OutputMessage, outputContent, shouldDisplayColors} from '@shopify/cli-kit/node/output'
1713
import {AlertCustomSection, InlineToken} from '@shopify/cli-kit/node/ui'
1814
import {CLI_KIT_VERSION} from '@shopify/cli-kit/common/version'
1915

@@ -172,7 +168,7 @@ class AppInfo {
172168
{
173169
body: [
174170
'💡 To change these, run',
175-
{command: formatPackageManagerCommand(this.project.packageManager, 'shopify app config link')},
171+
{command: formatProjectFollowUpCommand(this.project, 'shopify app config link')},
176172
],
177173
},
178174
]
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
import {Project} from '../models/project/project.js'
2+
import {formatPackageManagerCommand} from '@shopify/cli-kit/node/output'
3+
4+
/**
5+
* Formats a follow-up command for the current project.
6+
*
7+
* Display-only paths should use this helper instead of branching on the
8+
* project's package manager directly.
9+
*/
10+
export function formatProjectFollowUpCommand(
11+
project: Pick<Project, 'packageManager'>,
12+
command: string,
13+
...args: string[]
14+
) {
15+
return formatPackageManagerCommand(project.packageManager, command, ...args)
16+
}

0 commit comments

Comments
 (0)