@estarlincito/utils
Version:
A collection of utility functions designed to simplify and speed up development tasks in JavaScript and TypeScript projects.
2 lines (1 loc) • 1.06 kB
JavaScript
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("zod"),n=require("./num.cjs"),p=t.z.object({query:t.z.string(),stop:t.z.boolean()}),c=()=>t.z.object({data:t.z.array(t.z.any()),end:t.z.number(),length:t.z.number(),next:p,prev:p,start:t.z.number()}).transform(e=>({...e,data:e.data})),l=(e,u=[])=>{const{length:s}=u,m=c(),i=m.parse({data:[],end:n.num("0"),length:n.num("0"),next:{query:"#",stop:!0},prev:{query:"#",stop:!0},start:n.num("0")});if(!e||isNaN(parseInt(e)))return m.parse({data:u.slice(n.num("0"),n.num("6")),end:Math.min(n.num("6"),u.length),length:s,next:{query:"?page=2",stop:u.length<n.num("6")},prev:{query:"#",stop:!0},start:n.num("1")});const r=typeof e=="number"?e:parseInt(e,n.num("10"));if(r<=n.num("0"))return i;const a=(r-n.num("1"))*n.num("6"),o=Math.min(a+n.num("6"),s);return a>=o?i:m.parse({data:u.slice(a,o),end:o,length:s,next:{query:`?page=${r+n.num("1")}`,stop:o===s},prev:{query:r>n.num("1")?`?page=${r-n.num("1")}`:"#",stop:r<=n.num("1")},start:a+n.num("1")})};exports.pagination=l;