UNPKG

@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) 3.04 kB
import{existsSync as m}from"node:fs";import{join as d}from"node:path";import{runCodegen as h}from"@lunora/codegen";import{r as w}from"../packem_shared/api-spec-BENwiyUa.mjs";import{c as u}from"../packem_shared/codegen-error-DJN6pTH5.mjs";import{i as y}from"../packem_shared/command-0l-ZPhIX.mjs";import{i as v}from"../packem_shared/deploy-target-Dvr9vxpR.mjs";import{M as S,l as $}from"../packem_shared/detect-package-manager-DXDstphE.mjs";import{p as j}from"../packem_shared/health-probe-CiFgh1hn.mjs";import{i as k,t as P,d as U,s as D}from"../packem_shared/output-format-Cv3aLqhP.mjs";import{R as x}from"../packem_shared/schema-drift-gate-d12lMICD.mjs";import{defaultSpawner as E}from"../packem_shared/createRecordingSpawner-SKs4R1fc.mjs";import{validateWranglerProject as R}from"@lunora/config/cloudflare";const b=async(r,e)=>{if(!m(d(r,"tsconfig.json")))return{warning:"no tsconfig.json found — skipping TypeScript type-check"};const o=S($(r),"tsc",["--noEmit","-p","tsconfig.json"]),n=await e({args:o.args,command:o.command,cwd:r});return n.code===0?{}:{error:`type errors: tsc --noEmit exited ${String(n.code)}`}},C=async(r,e)=>{if(r.healthUrl===void 0||r.healthUrl==="")return;const o=await j({baseUrl:r.healthUrl,fetchImpl:r.healthFetch});if(o.error===void 0){e.success(`verify: health probe ok (${o.url})`);return}return o.error},A=(r,e,o,n)=>{if(e.length===0&&o.length===0)return r.success("verify: project is valid"),{code:0,errors:[],warnings:[],wranglerPath:n};if(o.length>0){r.warn("verify: warnings:");for(const a of o)r.warn(` - ${a}`)}if(e.length>0){r.error("verify: errors:");for(const a of e){r.error(` - ${a}`);const i=u(a);i!==void 0&&r.error(i)}return{code:1,errors:e,warnings:o,wranglerPath:n}}return r.success("verify: project is valid (with warnings)"),{code:0,errors:[],warnings:o,wranglerPath:n}},F=async r=>{const e=r.cwd??process.cwd(),o=D(r.format,r.logger),n=k("verify",r.format);if(n!==void 0)return r.logger.error(n),{code:1,error:n,errors:[],warnings:[],wranglerPath:void 0};const a=R({projectRoot:e}),i=[...a.report.errors],f=[...a.report.warnings];try{const t=v(e,r.target);if(t.target===void 0){const c=t.error??"unknown deploy target";return o.error(c),{code:1,error:c,errors:[c],warnings:[],wranglerPath:void 0}}const s=h({apiSpec:r.apiSpec,dryRun:!0,projectRoot:e,target:t.target}),g=x({allowDrift:r.allowSchemaDrift===!0,codegen:s,command:"verify",logger:o,readOnly:!0});g.blocked&&i.push(g.reason)}catch(t){const s=t instanceof Error?t.message:String(t);i.push(`codegen failed: ${s}`)}if(r.typecheck!==!1){const t=await b(e,r.spawner??E);t.error!==void 0&&i.push(t.error),t.warning!==void 0&&f.push(t.warning)}const l=await C(r,o);l!==void 0&&i.push(l);const p=A(o,i,f,a.wranglerPath);return P(r.format)&&U(p),p},L=y(async({cwd:r,logger:e,options:o})=>({code:(await F({allowSchemaDrift:o.allowSchemaDrift===!0,apiSpec:w(o.apiSpec),cwd:r,format:o.format,healthUrl:o.healthUrl,logger:e,target:o.target,typecheck:o.typecheck===!1?!1:void 0})).code}));export{L as execute,F as runVerifyCommand};