Code Explainers

Code explainers tagged #pagination

go
package handlers
 
import (
	"net/http"

Validating query params with Gin binding tags

validation struct-tags pagination
Intermediate 8 steps
typescript
interface PaginationParams {
  totalItems: number;
  pageSize: number;
  currentPage: number;

Building safe pagination metadata in TypeScript

pagination input-validation pure-functions
Intermediate 7 steps
javascript
const express = require('express');
const router = express.Router();
const db = require('../db');
 

Building a paginated articles endpoint in Express

pagination input-validation async-await
Intermediate 8 steps
python
from datetime import date
from enum import Enum
from typing import Annotated
 

Reusable query params with Pydantic in FastAPI

query-parameters validation pagination
Intermediate 8 steps
javascript
import { useState, useCallback, useEffect } from 'react';
 
function usePaginatedProducts(pageSize = 20) {
  const [items, setItems] = useState([]);

Cursor-based infinite scroll with a React hook

custom-hooks pagination async-fetching
Intermediate 8 steps
java
@RestController
@RequestMapping("/api/products")
@RequiredArgsConstructor
public class ProductSearchController {

Binding paged search filters in Spring

data-binding validation pagination
Intermediate 7 steps
javascript
import Link from "next/link";
import { prisma } from "@/lib/prisma";
 
const PAGE_SIZE = 20;

A searchable, paginated table as a Next.js Server Component

server-components pagination search
Intermediate 6 steps
java
package com.example.shop.repository;
 
import com.example.shop.domain.Order;
import com.example.shop.domain.OrderStatus;

Deriving JPA queries from method names in Spring

query derivation repositories pagination
Intermediate 8 steps
javascript
const express = require('express');
const { z } = require('zod');
const router = express.Router();
 

Validating query params with Zod in Express

validation schema-parsing query-building
Intermediate 9 steps
python
from dataclasses import dataclass
from typing import Optional
 
from sqlalchemy import select, func

Building a pagination helper with SQLAlchemy

pagination dataclass computed-properties
Intermediate 8 steps
python
from datetime import timedelta
 
from django.contrib.sessions.models import Session
from django.core.management.base import BaseCommand

A batched session-cleanup command in Django

management-command batch-processing database-cleanup
Intermediate 7 steps
php
final class UserActivityStream
{
    public function __construct(
        private readonly \PDO $db,

Streaming user activity with PHP generators

generators pagination lazy-evaluation
Intermediate 8 steps
javascript
export function buildPaginationUrl(baseUrl, { page, perPage, filters = {}, sort } = {}) {
  const url = new URL(baseUrl);
  const params = url.searchParams;
 

Building and parsing pagination URLs

url-parsing query-string pagination
Intermediate 8 steps
ruby
module Api
  module V2
    class ArticlesController < Api::BaseController
      before_action :set_article, only: %i[show update destroy]

Building a versioned JSON API controller in Rails

rest-api serialization pagination
Intermediate 10 steps
ruby
class ArticlesController < ApplicationController
  DEFAULT_LIMIT = 25
  MAX_LIMIT = 100
 

Cursor-based pagination in a Rails controller

pagination cursor query-building
Intermediate 7 steps
php
<?php
 
namespace App\Http\Controllers;
 

Streaming a large CSV export in Laravel

streaming csv-export memory-efficiency
Intermediate 9 steps
typescript
interface Page<T> {
  items: T[];
  nextCursor: string | null;
}

Streaming cursor pagination with async generators

async-generators pagination generics
Intermediate 8 steps
php
<?php
 
namespace App\Http\Controllers;
 

Building a filtered product index in Laravel

query-builder validation conditional-queries
Intermediate 9 steps