WayrApp Backend & Ecosystem Documentation - v1.0.0
    Preparing search index...

    Variable BasePaginationSchemaConst

    BasePaginationSchema: ZodObject<
        {
            page: ZodEffects<ZodOptional<ZodString>, number, undefined | string>;
            limit: ZodEffects<ZodOptional<ZodString>, number, undefined | string>;
            sortBy: ZodOptional<ZodString>;
            sortOrder: ZodDefault<ZodOptional<ZodEnum<["asc", "desc"]>>>;
        },
        "strip",
        ZodTypeAny,
        { page: number; limit: number; sortBy?: string; sortOrder: "asc"
        | "desc" },
        {
            page?: string;
            limit?: string;
            sortBy?: string;
            sortOrder?: "asc" | "desc";
        },
    > = ...

    Base pagination schema for query parameter transformation

    Foundational schema that handles the transformation of string-based query parameters into properly typed pagination data. This schema serves as the building block for pagination validation across the application, providing consistent parameter parsing and default value assignment for paginated API endpoints.

    The schema automatically transforms string query parameters (as received from HTTP requests) into appropriate numeric types while providing sensible defaults for missing parameters. This transformation is essential since HTTP query parameters are always received as strings but need to be processed as numbers for pagination logic.

    Default values are carefully chosen to provide optimal user experience: page 1 for initial requests, limit 20 for balanced performance and usability, and ascending sort order for predictable result ordering. These defaults ensure that pagination works correctly even when clients don't specify all parameters.

    // Query parameter transformation
    const queryParams = { page: '2', limit: '50', sortBy: 'name', sortOrder: 'desc' };
    const result = BasePaginationSchema.parse(queryParams);
    // Result: { page: 2, limit: 50, sortBy: 'name', sortOrder: 'desc' }
    // Default value assignment
    const emptyQuery = {};
    const result = BasePaginationSchema.parse(emptyQuery);
    // Result: { page: 1, limit: 20, sortOrder: 'asc' }