UNPKG

everything-dev

Version:

A consolidated product package for building Module Federation apps with oRPC APIs.

38 lines (36 loc) • 1.76 kB
const require_theme = require('../utils/theme.cjs'); const require_status = require('../services/status.cjs'); //#region src/cli/status.ts /** Outdated-framework warning, printed after the command's status probe. */ async function warnIfOutdated(client, command) { if (![ "dev", "build", "start" ].includes(command)) return; try { const status = await client.status(); if (status.status === "error" || !status.packages) return; const frameworkPackages = ["everything-dev", "every-plugin"]; const linked = status.packages.filter((p) => p.isLinked); const outdated = status.packages.filter((p) => !p.isLinked && p.installed && p.latest && require_status.compareSemver(p.installed, p.latest) < 0 && frameworkPackages.includes(p.name)); if (linked.length > 0) for (const pkg of linked) console.log(require_theme.colors.dim(` ${pkg.name} is linked locally (v${pkg.installed})`)); if (outdated.length === 0) return; const warn = (line) => { if (command === "dev" || command === "start") process.stderr.write(`${line}\n`); else console.log(line); }; warn(""); warn(require_theme.colors.yellow(` ! Outdated packages detected:`)); for (const pkg of outdated) warn(require_theme.colors.dim(` ${pkg.name} ${pkg.installed} → ${pkg.latest}`)); warn(require_theme.colors.dim(` Run ${require_theme.colors.cyan("bos upgrade")} to update packages and sync template files.`)); warn(""); } catch {} } //#endregion exports.compareSemver = require_status.compareSemver; exports.getStatus = require_status.getStatus; exports.pickDistTagVersion = require_status.pickDistTagVersion; exports.resolveUpdateDistTag = require_status.resolveUpdateDistTag; exports.warnIfOutdated = warnIfOutdated; //# sourceMappingURL=status.cjs.map