@shopify/create-app
Version:
A CLI tool to create a new Shopify app.
94 lines (89 loc) • 3.52 kB
JavaScript
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