@botpress/adk-cli
Version:
Command-line interface for the Botpress Agent Development Kit (ADK)
74 lines (71 loc) • 2.03 kB
JavaScript
// @bun
import {
createCliLogger
} from "./chunk-gzwt1qdr.js";
import {
require_semver
} from "./chunk-2a5b6azq.js";
import {
__toESM
} from "./chunk-dhs2bg35.js";
// src/utils/node-version-check.ts
var semver = __toESM(require_semver(), 1);
import { execSync } from "child_process";
var REQUIRED_NODE_VERSION = "22.0.0";
function getCurrentNodeVersion() {
try {
const version = execSync("node -v", { encoding: "utf-8" }).trim();
return version.replace(/^v/, "");
} catch {
return null;
}
}
function checkNodeVersion(silent = false) {
const logger = createCliLogger({ silent });
const currentVersion = getCurrentNodeVersion();
if (!currentVersion) {
logger.error(`
\u2717 Node.js Not Found`);
logger.error(` Node.js is required to run Botpress ADK`);
logger.error(` Minimum required version: ${REQUIRED_NODE_VERSION}
`);
logger.warn(" Please install Node.js:");
logger.info(` https://nodejs.org/
`);
return false;
}
const current = semver.parse(currentVersion);
const required = semver.parse(REQUIRED_NODE_VERSION);
if (!current || !required) {
logger.warn(`\u26A0\uFE0F Could not parse Node.js version: ${currentVersion}`);
return false;
}
if (semver.lt(current, required)) {
logger.error(`
\u2717 Node.js Version Too Old`);
logger.error(` Current version: ${currentVersion}`);
logger.error(` Minimum required: ${REQUIRED_NODE_VERSION}
`);
logger.warn(" Please upgrade Node.js:");
logger.info(` https://nodejs.org/
`);
return false;
}
logger.info(`\u2713 Node.js ${currentVersion}`, "green");
return true;
}
function requireNodeVersion() {
if (!checkNodeVersion()) {
process.exit(1);
}
}
function getNodeVersionInfo() {
const current = getCurrentNodeVersion();
const isSatisfied = current ? semver.gte(current, REQUIRED_NODE_VERSION) : false;
return {
current,
required: REQUIRED_NODE_VERSION,
isSatisfied
};
}
export { checkNodeVersion, requireNodeVersion, getNodeVersionInfo };