Encontré un ejemplo en bitbucket de paginar los resultados de una consulta, pero estaba escrito en java script y tengo algunos problemas para declarar los tipos.
y obtener este error en esta línea
const paginación:TPaginación = UserResults.toJSON()
El tipo '{ meta: cualquiera; datos: ObjetoModelo[]; }' no tiene las siguientes propiedades de tipo
***sample code**** async index ({ view, params, request, response }) { const page = params.page || 1 const search = request.input('search') || '' const employees = await Employee.query() .where('name', 'LIKE', '%' + search + '%') .paginate(page, 10) const pagination = employees.toJSON() pagination.route = 'employees.pagination' if(pagination.lastPage < page && page != 1) { response.route(pagination.route, { page: 1 }, null, true) } else { pagination.offset = (pagination.page - 1) * pagination.perPage pagination.search = search return view.render('employees.index', { employees: pagination }) } } } ***my code*** public async searchByName ({request,params, response}: HttpContextContract) { interface TPagination { route: string; lastPage: number; offset:number; search:string; page:number; perPage:number; [key: string]: any; meta: any; data: ModelObject[]; } try { const page = params.page || 1 const search = request.input('search') || '' const usersResults = await User.query() .where('name', 'LIKE', '%' + search + '%') .orWhere('cns','LIKE','%'+ search +'%') .paginate(page, 10) const pagination:TPagination = usersResults.toJSON() pagination.route = 'pagination.users' if(pagination.lastPage < page && page != 1) { response.redirect().toRoute(pagination.route, { page: 1 }) } else { pagination.offset = (pagination.page - 1) * pagination.perPage pagination.search = search } } catch { return response.status(400).json('{"error":"Usuário não encontrado!"}'); } }