UNPKG

@shopify/create-app

Version:

A CLI tool to create a new Shopify app.

94 lines (89 loc) 3.52 kB
import { fetchNotificationsInBackground } from "../chunk-MF4CX3X6.js"; import { CLI_KIT_VERSION, startAnalytics } from "../chunk-FCIA744E.js"; import "../chunk-25IMI7TH.js"; import { checkForCachedNewVersion, checkForNewVersion, packageManagerFromUserAgent, runAtMinimumInterval } from "../chunk-RYX6V56V.js"; import { currentProcessIsGlobal, inferPackageManagerForGlobalCLI, isPreReleaseVersion, outputContent, outputDebug, outputToken, outputWarn } from "../chunk-WQCCLXI7.js"; import "../chunk-H3GWNOGA.js"; import "../chunk-UMUTXITN.js"; import "../chunk-Y2JP6WFP.js"; import "../chunk-75LV6AQS.js"; import "../chunk-LABBARNJ.js"; import "../chunk-G2ZZKGSV.js"; import { init_cjs_shims } from "../chunk-PKR7KJ6P.js"; // src/hooks/prerun.ts init_cjs_shims(); // ../cli-kit/dist/public/node/hooks/prerun.js init_cjs_shims(); // ../cli-kit/dist/public/node/upgrade.js init_cjs_shims(); function cliInstallCommand() { let isGlobal = currentProcessIsGlobal(), packageManager = packageManagerFromUserAgent(); return packageManager === "unknown" && (packageManager = inferPackageManagerForGlobalCLI()), packageManager === "unknown" && (packageManager = "npm"), packageManager === "yarn" ? `${packageManager} ${isGlobal ? "global " : ""}add @shopify/cli@latest` : `${packageManager} ${packageManager === "pnpm" ? "add" : "install"} ${isGlobal ? "-g " : ""}@shopify/cli@latest`; } function getOutputUpdateCLIReminder(version) { return outputContent`💡 Version ${version} available! Run ${outputToken.genericShellCommand(cliInstallCommand())}`.value; } // ../cli-kit/dist/public/node/hooks/prerun.js var hook = async (options) => { let commandContent = parseCommandContent({ id: options.Command.id, aliases: options.Command.aliases, pluginAlias: options.Command.plugin?.alias }), args = options.argv; await warnOnAvailableUpgrade(), outputDebug(`Running command ${commandContent.command}`), await startAnalytics({ commandContent, args, commandClass: options.Command }), fetchNotificationsInBackground(options.Command.id); }; function parseCommandContent(cmdInfo) { let commandContent = parseCreateCommand(cmdInfo.pluginAlias); return commandContent || (commandContent = parseNormalCommand(cmdInfo.id, cmdInfo.aliases)), commandContent; } function parseNormalCommand(id, aliases) { return { command: id.replace(/:/g, " "), topic: parseTopic(id), alias: findAlias(aliases) }; } function parseCreateCommand(pluginAlias) { if (pluginAlias?.startsWith("@shopify/create-")) return { command: pluginAlias.substring(pluginAlias.indexOf("/") + 1) }; } function parseTopic(cmd) { if (cmd.lastIndexOf(":") !== -1) return cmd.slice(0, cmd.lastIndexOf(":")).replace(/:/g, " "); } function findAlias(aliases) { let existingAlias = aliases.find((alias) => alias.split(":").every((aliasToken) => process.argv.includes(aliasToken))); if (existingAlias) return existingAlias.replace(/:/g, " "); } async function warnOnAvailableUpgrade() { let cliDependency = "@shopify/cli", currentVersion = CLI_KIT_VERSION; isPreReleaseVersion(currentVersion) || (checkForNewVersion(cliDependency, currentVersion, { cacheExpiryInHours: 24 }), await runAtMinimumInterval("warn-on-available-upgrade", { days: 1 }, async () => { let newerVersion = checkForCachedNewVersion(cliDependency, currentVersion); newerVersion && outputWarn(getOutputUpdateCLIReminder(newerVersion)); })); } export { hook as default }; //# sourceMappingURL=prerun.js.map