@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.27 kB
JavaScript
import{existsSync as u,rmSync as m}from"node:fs";import{join as a}from"node:path";import{writeLinkedProject as d,LINKED_PROJECT_FILE as o}from"@lunora/config";import{d as i}from"../packem_shared/command-DwC11Cwe.mjs";import{r as k}from"../packem_shared/wrangler-name-Dsk5K1f-.mjs";const s=r=>{try{const{protocol:n}=new URL(r);return n==="http:"||n==="https:"}catch{return!1}},v=(r,n)=>{const e=a(r,o);return u(e)?(m(e),n.success(`link: removed ${o}`),{code:0}):(n.warn(`link: no ${o} to remove`),{code:0})},w=r=>{const n=r.cwd??process.cwd(),{logger:e}=r;if(r.remove)return v(n,e);if(r.url===void 0||r.url==="")return e.error("link requires a deployed Worker URL. Usage: lunora link --url <https://your-worker>"),{code:1};if(!s(r.url))return e.error(`link: invalid --url "${r.url}" — expected an http(s) URL`),{code:1};const c=r.now??(()=>new Date().toISOString()),t={env:r.env,linkedAt:c(),workerName:r.name??k(n),workerUrl:r.url},l=d(n,t);return e.success(`link: ${t.workerName??"(unnamed worker)"} -> ${r.url}`),e.info(`link: wrote ${l}`),t.env!==void 0&&e.info(`link: environment "${t.env}"`),{code:0,link:t}},y=i(({cwd:r,logger:n,options:e})=>w({cwd:r,env:e.env,logger:n,name:e.name,remove:e.remove===!0,url:e.url}));export{y as execute,w as runLinkCommand};