UNPKG

@lucidcms/core

Version:

The core of the Lucid CMS. It's responsible for spinning up the API and serving the CMS.

2 lines 1.75 kB
import{normalizeHost as e}from"../../../utils/helpers/get-base-url.mjs";const t=t=>{let n=new URL(t.req.url),r=t.get(`config`);return r?.host?.trim()?new URL(`${n.pathname}${n.search}`,e(r.host)):n},n=e=>{try{return t(e).toString().split(`?`)[0]||``}catch{return e.req.url||``}},r=(e,n)=>{let r=[];if(!n.pagination)return r;let{page:i,perPage:a,count:o}=n.pagination,s=a===-1?+(o>0):Math.ceil(o/Number(a));try{let n=t(e);for(let e=0;e<s;e++){let t=new URL(n.toString());e===0?t.searchParams.delete(`page`):t.searchParams.set(`page`,String(e+1)),r.push({active:i===e+1,label:String(e+1),url:t.toString(),page:e+1})}return r}catch(e){return console.error(`Error in buildMetaLinks:`,e),r}},i=(e,n)=>{if(n.pagination)try{let{page:r,perPage:i,count:a}=n.pagination,o=i===-1?+(a>0):Math.ceil(a/Number(i)),s=t(e),c={first:null,last:null,next:null,prev:null},l=new URL(s.toString());l.searchParams.delete(`page`),c.first=l.toString();let u=new URL(s.toString());if(o>0&&r!==o&&u.searchParams.set(`page`,String(o)),c.last=u.toString(),o>0&&r<o){let e=new URL(s.toString());e.searchParams.set(`page`,String(Number(r)+1)),c.next=e.toString()}if(r!==1){let e=new URL(s.toString());e.searchParams.set(`page`,String(Number(r)-1)),c.prev=e.toString()}return c}catch(e){console.error(`Error in buildLinks:`,e);return}},a=(e,t)=>{let a=null;t.pagination&&(a=t.pagination.perPage===-1?+(t.pagination.count>0):Math.ceil(t.pagination.count/Number(t.pagination.perPage)));let o={path:n(e),links:r(e,t),currentPage:t.pagination?.page??null,perPage:t.pagination?.perPage??null,total:t.pagination?.count===void 0?null:Number(t.pagination.count),lastPage:a},s=i(e,t);return{data:t.data||null,meta:o,links:s}};export{a as default}; //# sourceMappingURL=build-response.mjs.map