Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 5 additions & 4 deletions packages/app/src/cli/services/deploy.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,14 +8,15 @@ import {AppLinkedInterface} from '../models/app/app.js'
import {Project} from '../models/project/project.js'
import {updateAppIdentifiers} from '../models/app/identifiers.js'
import {DeveloperPlatformClient} from '../utilities/developer-platform-client.js'
import {formatProjectFollowUpCommand} from '../utilities/project-command.js'
import {Organization, OrganizationApp} from '../models/organization.js'
import {reloadApp} from '../models/app/loader.js'
import {ExtensionRegistration} from '../api/graphql/all_app_extension_registrations.js'
import {getTomls} from '../utilities/app/config/getTomls.js'
import {renderInfo, renderSuccess, renderTasks, renderConfirmationPrompt, isTTY} from '@shopify/cli-kit/node/ui'
import {mkdir} from '@shopify/cli-kit/node/fs'
import {joinPath, dirname} from '@shopify/cli-kit/node/path'
import {outputNewline, outputInfo, formatPackageManagerCommand} from '@shopify/cli-kit/node/output'
import {outputNewline, outputInfo} from '@shopify/cli-kit/node/output'
import {getArrayRejectingUndefined} from '@shopify/cli-kit/common/array'
import {AbortError, AbortSilentError} from '@shopify/cli-kit/node/error'
import type {AlertCustomSection, Task, TokenItem} from '@shopify/cli-kit/node/ui'
Expand Down Expand Up @@ -327,7 +328,7 @@ async function outputCompletionMessage({
body.push(
'• Map extension IDs to other copies of your app by running',
{
command: formatPackageManagerCommand(project.packageManager, 'shopify app deploy'),
command: formatProjectFollowUpCommand(project, 'shopify app deploy'),
},
'for: ',
{
Expand Down Expand Up @@ -378,8 +379,8 @@ async function outputCompletionMessage({
[
'Run',
{
command: formatPackageManagerCommand(
project.packageManager,
command: formatProjectFollowUpCommand(
project,
'shopify app release',
`--version=${uploadExtensionsBundleResult.versionTag}`,
),
Expand Down
5 changes: 3 additions & 2 deletions packages/app/src/cli/services/dev.ts
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@ import {DevSessionStatusManager} from './dev/processes/dev-session/dev-session-s
import {TunnelMode} from './dev/tunnel-mode.js'
import {PortDetail, renderPortWarnings} from './dev/port-warnings.js'
import {DeveloperPlatformClient} from '../utilities/developer-platform-client.js'
import {formatProjectFollowUpCommand} from '../utilities/project-command.js'
import {Web, getAppScopesArray, AppLinkedInterface} from '../models/app/app.js'
import {Project} from '../models/project/project.js'
import {Organization, OrganizationApp, OrganizationStore} from '../models/organization.js'
Expand All @@ -47,7 +48,7 @@ import {getBackendPort} from '@shopify/cli-kit/node/environment'
import {basename} from '@shopify/cli-kit/node/path'
import {renderWarning} from '@shopify/cli-kit/node/ui'
import {reportAnalyticsEvent} from '@shopify/cli-kit/node/analytics'
import {OutputProcess, formatPackageManagerCommand} from '@shopify/cli-kit/node/output'
import {OutputProcess} from '@shopify/cli-kit/node/output'
import {hashString} from '@shopify/cli-kit/node/crypto'
import {AbortError} from '@shopify/cli-kit/node/error'

Expand Down Expand Up @@ -221,7 +222,7 @@ export async function warnIfScopesDifferBeforeDev({
const nextSteps = [
[
'Run',
{command: formatPackageManagerCommand(commandOptions.project.packageManager, 'shopify app deploy')},
{command: formatProjectFollowUpCommand(commandOptions.project, 'shopify app deploy')},
'to push your scopes to the Partner Dashboard',
],
]
Expand Down
13 changes: 6 additions & 7 deletions packages/app/src/cli/services/generate.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ import {
ExtensionFlavorValue,
} from './generate/extension.js'
import {DeveloperPlatformClient} from '../utilities/developer-platform-client.js'
import {formatProjectFollowUpCommand} from '../utilities/project-command.js'
import {AppInterface, AppLinkedInterface} from '../models/app/app.js'
import {Project} from '../models/project/project.js'
import generateExtensionPrompts, {
Expand All @@ -16,12 +17,10 @@ import metadata from '../metadata.js'
import {ExtensionTemplate} from '../models/app/template.js'
import {ExtensionSpecification, RemoteAwareExtensionSpecification} from '../models/extensions/specification.js'
import {OrganizationApp} from '../models/organization.js'
import {PackageManager} from '@shopify/cli-kit/node/node-package-manager'
import {isShopify} from '@shopify/cli-kit/node/context/local'
import {joinPath} from '@shopify/cli-kit/node/path'
import {RenderAlertOptions, renderSuccess} from '@shopify/cli-kit/node/ui'
import {AbortError} from '@shopify/cli-kit/node/error'
import {formatPackageManagerCommand} from '@shopify/cli-kit/node/output'
import {groupBy} from '@shopify/cli-kit/common/collection'

interface GenerateOptions {
Expand Down Expand Up @@ -56,7 +55,7 @@ async function generate(options: GenerateOptions) {
const generateExtensionOptions = buildGenerateOptions(promptAnswers, app, options, developerPlatformClient)
const generatedExtension = await generateExtensionTemplate(generateExtensionOptions)

renderSuccessMessage(generatedExtension, options.project.packageManager)
renderSuccessMessage(generatedExtension, options.project)
}

async function buildPromptOptions(
Expand Down Expand Up @@ -128,11 +127,11 @@ function buildGenerateOptions(
}
}

function renderSuccessMessage(extension: GeneratedExtension, packageManager: PackageManager) {
function renderSuccessMessage(extension: GeneratedExtension, project: Project) {
const formattedSuccessfulMessage = formatSuccessfulRunMessage(
extension.extensionTemplate,
extension.directory,
packageManager,
project,
)
renderSuccess(formattedSuccessfulMessage)
}
Expand All @@ -153,7 +152,7 @@ function validateExtensionFlavor(extensionTemplate?: ExtensionTemplate, flavor?:
function formatSuccessfulRunMessage(
extensionTemplate: ExtensionTemplate,
extensionDirectory: string,
depndencyManager: PackageManager,
project: Project,
): RenderAlertOptions {
const options: RenderAlertOptions = {
headline: ['Your extension was created in', {filePath: extensionDirectory}, {char: '.'}],
Expand All @@ -164,7 +163,7 @@ function formatSuccessfulRunMessage(
if (extensionTemplate.type !== 'function') {
options.nextSteps!.push([
'To preview this extension along with the rest of the project, run',
{command: formatPackageManagerCommand(depndencyManager, 'shopify app dev')},
{command: formatProjectFollowUpCommand(project, 'shopify app dev')},
])
}

Expand Down
10 changes: 3 additions & 7 deletions packages/app/src/cli/services/info.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import {outputEnv} from './app/env/show.js'
import {DeveloperPlatformClient} from '../utilities/developer-platform-client.js'
import {formatProjectFollowUpCommand} from '../utilities/project-command.js'
import {AppLinkedInterface, getAppScopes} from '../models/app/app.js'
import {Project} from '../models/project/project.js'
import {configurationFileNames} from '../constants.js'
Expand All @@ -8,12 +9,7 @@ import {Organization, OrganizationApp} from '../models/organization.js'
import {isServiceAccount, isUserAccount} from '@shopify/cli-kit/node/session'
import {platformAndArch} from '@shopify/cli-kit/node/os'
import {basename, relativePath} from '@shopify/cli-kit/node/path'
import {
OutputMessage,
formatPackageManagerCommand,
outputContent,
shouldDisplayColors,
} from '@shopify/cli-kit/node/output'
import {OutputMessage, outputContent, shouldDisplayColors} from '@shopify/cli-kit/node/output'
import {AlertCustomSection, InlineToken} from '@shopify/cli-kit/node/ui'
import {CLI_KIT_VERSION} from '@shopify/cli-kit/common/version'

Expand Down Expand Up @@ -172,7 +168,7 @@ class AppInfo {
{
body: [
'💡 To change these, run',
{command: formatPackageManagerCommand(this.project.packageManager, 'shopify app config link')},
{command: formatProjectFollowUpCommand(this.project, 'shopify app config link')},
],
},
]
Expand Down
16 changes: 16 additions & 0 deletions packages/app/src/cli/utilities/project-command.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
import {Project} from '../models/project/project.js'
import {formatPackageManagerCommand} from '@shopify/cli-kit/node/output'

/**
* Formats a follow-up command for the current project.
*
* Display-only paths should use this helper instead of branching on the
* project's package manager directly.
*/
export function formatProjectFollowUpCommand(
project: Pick<Project, 'packageManager'>,
command: string,
...args: string[]
) {
return formatPackageManagerCommand(project.packageManager, command, ...args)
}
Loading