UNPKG

everything-dev

Version:

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

96 lines (94 loc) 2.99 kB
const require_runtime = require('../_virtual/_rolldown/runtime.cjs'); const require_fastkv = require('../fastkv.cjs'); const require_snapshot = require('./snapshot.cjs'); const require_framework_version = require('./framework-version.cjs'); let node_fs = require("node:fs"); let node_path = require("node:path"); //#region src/cli/status.ts const FRAMEWORK_PACKAGES = ["everything-dev", "every-plugin"]; const CATALOG_TOOL_PACKAGES = [ "@rspack/core", "@rspack/cli", "@rsbuild/core", "@rsbuild/plugin-react", "@module-federation/enhanced", "@module-federation/node", "@module-federation/rsbuild-plugin", "@module-federation/runtime-core", "@module-federation/sdk", "@module-federation/dts-plugin" ]; async function fetchLatestNpmVersion(packageName) { try { const response = await fetch(`https://registry.npmjs.org/${packageName}/latest`, { headers: { Accept: "application/json" }, signal: AbortSignal.timeout(1e4) }); if (!response.ok) return null; return (await response.json()).version; } catch { return null; } } function readInstalledVersion(projectDir, packageName) { return require_framework_version.readInstalledFrameworkVersion(projectDir, packageName); } function checkEnvFile(projectDir) { if ((0, node_fs.existsSync)((0, node_path.join)(projectDir, ".env"))) return "found"; if ((0, node_fs.existsSync)((0, node_path.join)(projectDir, ".env.example"))) return "example-only"; return "missing"; } async function checkParentReachable(extendsRef) { if (!extendsRef?.startsWith("bos://")) return void 0; try { return await require_fastkv.fetchBosConfigFromFastKv(extendsRef) !== null; } catch { return false; } } async function getStatus(projectDir) { const configPath = (0, node_path.join)(projectDir, "bos.config.json"); if (!(0, node_fs.existsSync)(configPath)) return { status: "error", error: "No bos.config.json found in current directory", packages: [], envFile: "missing" }; const config = JSON.parse((0, node_fs.readFileSync)(configPath, "utf-8")); const packages = []; for (const name of FRAMEWORK_PACKAGES) { const installed = readInstalledVersion(projectDir, name); const latest = await fetchLatestNpmVersion(name); packages.push({ name, installed, latest: latest ?? void 0 }); } for (const name of CATALOG_TOOL_PACKAGES) { const installed = readInstalledVersion(projectDir, name); if (!installed) continue; const latest = await fetchLatestNpmVersion(name); packages.push({ name, installed, latest: latest ?? void 0 }); } const snapshot = await require_snapshot.readSnapshot(projectDir); const extendsRef = config.extends; const parentReachable = await checkParentReachable(extendsRef); return { status: "ok", extends: extendsRef, account: config.account, domain: config.domain, packages, lastSync: snapshot?.timestamp, envFile: checkEnvFile(projectDir), parentReachable }; } //#endregion exports.getStatus = getStatus; //# sourceMappingURL=status.cjs.map