@lunora/cli
Version:
The Lunora CLI: init, dev, deploy, codegen, migrate, seed, doctor, insights, logs, registry, and the rest of the project commands
2 lines (1 loc) • 1.31 kB
JavaScript
import{spawnSync as o}from"node:child_process";import{LunoraError as s}from"@lunora/errors";import{findPackageManagerSync as i,identifyInitiatingPackageManager as c}from"@visulima/package/package-manager";const e=["pnpm","bun","yarn","npm"],u=new Set(e),d=n=>u.has(n),m=n=>{try{return o(n,["--version"],{stdio:"ignore",timeout:5e3}).status===0}catch{return!1}},p=(n=m)=>e.filter(r=>n(r)),A=n=>({args:["install"],command:n}),b=(n,r,t={})=>{const a=t.dev===!0;return n==="npm"?{args:["install",...a?["--save-dev"]:[],...r],command:"npm"}:n==="bun"?{args:["add",...a?["-d"]:[],...r],command:"bun"}:{args:["add",...a?["-D"]:[],...r],command:n}},y=n=>{try{return i(n).packageManager}catch{}const r=c();if(r!==void 0){const a=r.name==="cnpm"?"npm":r.name;if(d(a))return a}const[t]=p();if(t!==void 0)return t;throw new s("INTERNAL","Could not detect a package manager: no lock file or `packageManager` field was found, and none (pnpm, bun, yarn, npm) is installed on PATH.")},M=(n,r,t)=>n==="yarn"?{args:[r,...t],command:"yarn"}:n==="bun"?{args:["x",r,...t],command:"bun"}:n==="npm"?{args:["--",r,...t],command:"npx"}:{args:["exec",r,...t],command:"pnpm"},E=(n,r)=>({args:["run",r],command:n}),v=(n,r)=>n==="npm"?`npm run ${r}`:n==="bun"?`bun run ${r}`:`${n} ${r}`;export{v as a,b,p as c,y as d,M as e,A as i,E as r};