trigger.dev
Version:
A Command-Line Interface for Trigger.dev (v3) projects
82 lines • 3.21 kB
JavaScript
import chalk from "chalk";
import { getLatestVersion } from "fast-npm-meta";
import { VERSION } from "../version.js";
import { chalkGrey, chalkRun, chalkTask, chalkWorker, logo } from "./cliOutput.js";
import { logger } from "./logger.js";
import { spinner } from "./windows.js";
export async function printInitialBanner(performUpdateCheck = true) {
const text = `\n${logo()} ${chalkGrey(`(${VERSION})`)}\n`;
logger.info(text);
let maybeNewVersion;
if (performUpdateCheck) {
const $spinner = spinner();
$spinner.start("Checking for updates");
maybeNewVersion = await updateCheck();
// Log a slightly more noticeable message if this is a major bump
if (maybeNewVersion !== undefined) {
$spinner.stop(`Update available ${chalk.green(maybeNewVersion)}`);
const currentMajor = parseInt(VERSION.split(".")[0]);
const newMajor = parseInt(maybeNewVersion.split(".")[0]);
logger.debug(`updateCheck: ${VERSION} -> ${maybeNewVersion}`);
if (newMajor > currentMajor) {
logger.warn(`Please update to the latest version of \`trigger.dev\` to prevent critical errors.
Run \`npm install --save-dev trigger.dev@${newMajor}\` to update to the latest version.
After installation, run Trigger.dev with \`npx trigger.dev\`.`);
}
else {
}
}
else {
$spinner.stop("On latest version");
}
}
}
export async function printStandloneInitialBanner(performUpdateCheck = true) {
if (performUpdateCheck) {
const maybeNewVersion = await updateCheck();
// Log a slightly more noticeable message if this is a major bump
if (maybeNewVersion !== undefined) {
logger.log(`\n${logo()} ${chalkGrey(`(${VERSION} -> ${chalk.green(maybeNewVersion)})`)}`);
}
else {
logger.log(`\n${logo()} ${chalkGrey(`(${VERSION})`)}`);
}
}
else {
logger.log(`\n${logo()} ${chalkGrey(`(${VERSION})`)}`);
}
logger.log(`${chalkGrey("-".repeat(54))}`);
}
export function printDevBanner(printTopBorder = true) {
if (printTopBorder) {
logger.log(chalkGrey("-".repeat(54)));
}
logger.log(`${chalkGrey("Key:")} ${chalkWorker("Version")} ${chalkGrey("|")} ${chalkTask("Task")} ${chalkGrey("|")} ${chalkRun("Run")}`);
logger.log(chalkGrey("-".repeat(54)));
}
async function doUpdateCheck() {
try {
// default cache for update check is 1 day
const meta = await getLatestVersion("trigger.dev@latest", { force: true });
if (!meta.version) {
return;
}
const compareVersions = (a, b) => a.localeCompare(b, "en-US", { numeric: true });
const comparison = compareVersions(VERSION, meta.version);
if (comparison === -1) {
return meta.version;
}
return;
}
catch (err) {
// ignore error
logger.debug(err);
return;
}
}
//only do this once while the cli is running
let updateCheckPromise;
export function updateCheck() {
return (updateCheckPromise ??= doUpdateCheck());
}
//# sourceMappingURL=initialBanner.js.map