@shopify/cli
Version:
A CLI tool to build for the Shopify platform
89 lines (86 loc) • 2.95 kB
JavaScript
import {
getOutputUpdateCLIReminder
} from "../chunk-HRT2J6AZ.js";
import {
startAnalytics
} from "../chunk-HGD26EDV.js";
import {
fetchNotificationsInBackground
} from "../chunk-DNGCAQBF.js";
import "../chunk-HE3BDMSQ.js";
import "../chunk-25IMI7TH.js";
import {
CLI_KIT_VERSION
} from "../chunk-UGX6DGR4.js";
import {
checkForCachedNewVersion,
checkForNewVersion,
runAtMinimumInterval
} from "../chunk-5DXEBIVF.js";
import "../chunk-HMDWNGIV.js";
import {
outputDebug,
outputWarn
} from "../chunk-OAZABGFS.js";
import "../chunk-B5EXYCV3.js";
import "../chunk-75LV6AQS.js";
import "../chunk-57Q6OQG4.js";
import "../chunk-QAKYKTFV.js";
import "../chunk-G5R6YD27.js";
import "../chunk-3I3GQNEW.js";
import "../chunk-G2ZZKGSV.js";
import "../chunk-MP5RLDFN.js";
import "../chunk-XE5EOEBL.js";
import "../chunk-5DBS6QOU.js";
import "../chunk-B3YWYURY.js";
import "../chunk-CDBXAE2F.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();
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;
currentVersion.startsWith("0.0.0") || (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