@lunora/cli
Version:
The Lunora CLI: init, dev, deploy, codegen, run, reset, and migrate commands
2 lines (1 loc) • 1.07 kB
JavaScript
import{spawnSync as t}from"node:child_process";import{LunoraError as m}from"@lunora/errors";import{findPackageManagerSync as o,identifyInitiatingPackageManager as p}from"@visulima/package/package-manager";const c=["pnpm","bun","yarn","npm"],i=new Set(["bun","npm","pnpm","yarn"]),s=n=>i.has(n),u=n=>{try{return t(n,["--version"],{stdio:"ignore",timeout:5e3}).status===0}catch{return!1}},d=(n=u)=>c.filter(a=>n(a)),y=n=>({args:["install"],command:n}),b=n=>{try{return o(n).packageManager}catch{}const a=p();if(a!==void 0){const e=a.name==="cnpm"?"npm":a.name;if(s(e))return e}const[r]=d();if(r!==void 0)return r;throw new m("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.")},k=(n,a,r)=>n==="yarn"?{args:[a,...r],command:"yarn"}:n==="bun"?{args:["x",a,...r],command:"bun"}:n==="npm"?{args:["--",a,...r],command:"npx"}:{args:["exec",a,...r],command:"pnpm"},w=(n,a)=>n==="npm"?`npm run ${a}`:n==="bun"?`bun run ${a}`:`${n} ${a}`;export{k as M,b as P,y as d,w as k,d as t};