@lucidcms/core
Version:
The core of the Lucid CMS. It's responsible for spinning up the API and serving the CMS.
2 lines • 1.21 kB
JavaScript
import e from"./create-service-context.mjs";import t from"../middleware/validate.mjs";import n from"../openapi/index.mjs";import r from"./build-formatted-query.mjs";import i from"zod";import{describeRoute as a}from"hono-openapi";const o=(e,t)=>e.req.valid(t),s=e=>{let t=e.schema,r=e.openAPI??{},a=n.parameters({params:t?.params,query:t?.query?.string});return{...r,...r.parameters===void 0&&a.length>0?{parameters:a}:{},...r.requestBody===void 0&&t?.body?{requestBody:n.requestBody(t.body)}:{},...r.responses===void 0?{responses:n.responses(t?.response?{schema:i.toJSONSchema(t.response)}:void 0)}:{}}},c=async(e,t)=>{let n=t.schema;return{body:n?.body?o(e,`json`):void 0,params:n?.params?o(e,`param`):void 0,query:n?.query?.formatted?await r(e,n.query.formatted):n?.query?.string?o(e,`query`):void 0}},l=n=>[a(s(n)),...n.middleware??[],...n.schema?.params?[t(`param`,n.schema.params)]:[],...n.schema?.query?.string?[t(`query`,n.schema.query.string)]:[],...n.schema?.body?[t(`json`,n.schema.body)]:[],async t=>n.handler({hono:t,context:e(t),input:await c(t,n)})],u=(e,t)=>{for(let n of t){let t=l(n);e[n.method].bind(e)(n.path,...t)}};export{u as default};
//# sourceMappingURL=register-custom-routes.mjs.map