UNPKG

@mesh-tech/mesh-cli

Version:

CLI for Mesh platform development utilities

34 lines (33 loc) 1.02 kB
import { execFileSync } from "child_process"; export const SCAFFOLD_PACKAGE_LINES = { "@mesh-tech/app-kit": "^1.45.0", "@mesh-tech/esm-bundle": "^0.1.1", }; export const SCAFFOLD_TOOLCHAIN = { "@types/node": "^24.2.1", tsx: "^4.20.4", typescript: "^5.9.2", }; export function isPrerelease(range) { return /[-+]/.test(range.replace(/^\^/, "")); } export function toCaretRange(version) { const trimmed = version.trim(); return /^\d+\.\d+\.\d+(?:[-+].*)?$/.test(trimmed) ? `^${trimmed}` : null; } export function resolvePublishedRange(pkg, cwd) { try { const out = execFileSync("npm", ["view", pkg, "version"], { cwd, encoding: "utf-8", timeout: 15_000, stdio: ["ignore", "pipe", "ignore"], }); const range = toCaretRange(out); if (range && !isPrerelease(range)) return { range, resolved: true }; } catch { } return { range: SCAFFOLD_PACKAGE_LINES[pkg], resolved: false }; }