Function: pageSchema()
function pageSchema<T>(itemSchema): ZodObject<{
content: ZodArray<T, "many">;
empty: ZodOptional<ZodBoolean>;
first: ZodOptional<ZodBoolean>;
last: ZodOptional<ZodBoolean>;
number: ZodOptional<ZodNumber>;
numberOfElements: ZodOptional<ZodNumber>;
pageable: ZodOptional<ZodObject<{
offset: ZodOptional<ZodNumber>;
pageNumber: ZodOptional<ZodNumber>;
pageSize: ZodOptional<ZodNumber>;
paged: ZodOptional<ZodBoolean>;
unpaged: ZodOptional<ZodBoolean>;
sort: ZodOptional<ZodObject<{
empty: ZodOptional<ZodBoolean>;
sorted: ZodOptional<ZodBoolean>;
unsorted: ZodOptional<ZodBoolean>;
}, "passthrough", ZodTypeAny, objectOutputType<{
empty: ZodOptional<ZodBoolean>;
sorted: ZodOptional<ZodBoolean>;
unsorted: ZodOptional<ZodBoolean>;
}, ZodTypeAny, "passthrough">, objectInputType<{
empty: ZodOptional<ZodBoolean>;
sorted: ZodOptional<ZodBoolean>;
unsorted: ZodOptional<ZodBoolean>;
}, ZodTypeAny, "passthrough">>>;
}, "passthrough", ZodTypeAny, objectOutputType<{
offset: ZodOptional<ZodNumber>;
pageNumber: ZodOptional<ZodNumber>;
pageSize: ZodOptional<ZodNumber>;
paged: ZodOptional<ZodBoolean>;
unpaged: ZodOptional<ZodBoolean>;
sort: ZodOptional<ZodObject<{
empty: ZodOptional<ZodBoolean>;
sorted: ZodOptional<ZodBoolean>;
unsorted: ZodOptional<ZodBoolean>;
}, "passthrough", ZodTypeAny, objectOutputType<{
empty: ZodOptional<...>;
sorted: ZodOptional<...>;
unsorted: ZodOptional<...>;
}, ZodTypeAny, "passthrough">, objectInputType<{
empty: ZodOptional<...>;
sorted: ZodOptional<...>;
unsorted: ZodOptional<...>;
}, ZodTypeAny, "passthrough">>>;
}, ZodTypeAny, "passthrough">, objectInputType<{
offset: ZodOptional<ZodNumber>;
pageNumber: ZodOptional<ZodNumber>;
pageSize: ZodOptional<ZodNumber>;
paged: ZodOptional<ZodBoolean>;
unpaged: ZodOptional<ZodBoolean>;
sort: ZodOptional<ZodObject<{
empty: ZodOptional<ZodBoolean>;
sorted: ZodOptional<ZodBoolean>;
unsorted: ZodOptional<ZodBoolean>;
}, "passthrough", ZodTypeAny, objectOutputType<{
empty: ZodOptional<...>;
sorted: ZodOptional<...>;
unsorted: ZodOptional<...>;
}, ZodTypeAny, "passthrough">, objectInputType<{
empty: ZodOptional<...>;
sorted: ZodOptional<...>;
unsorted: ZodOptional<...>;
}, ZodTypeAny, "passthrough">>>;
}, ZodTypeAny, "passthrough">>>;
size: ZodOptional<ZodNumber>;
sort: ZodOptional<ZodObject<{
empty: ZodOptional<ZodBoolean>;
sorted: ZodOptional<ZodBoolean>;
unsorted: ZodOptional<ZodBoolean>;
}, "passthrough", ZodTypeAny, objectOutputType<{
empty: ZodOptional<ZodBoolean>;
sorted: ZodOptional<ZodBoolean>;
unsorted: ZodOptional<ZodBoolean>;
}, ZodTypeAny, "passthrough">, objectInputType<{
empty: ZodOptional<ZodBoolean>;
sorted: ZodOptional<ZodBoolean>;
unsorted: ZodOptional<ZodBoolean>;
}, ZodTypeAny, "passthrough">>>;
totalElements: ZodOptional<ZodNumber>;
totalPages: ZodOptional<ZodNumber>;
}, "passthrough", ZodTypeAny, objectOutputType<{
content: ZodArray<T, "many">;
empty: ZodOptional<ZodBoolean>;
first: ZodOptional<ZodBoolean>;
last: ZodOptional<ZodBoolean>;
number: ZodOptional<ZodNumber>;
numberOfElements: ZodOptional<ZodNumber>;
pageable: ZodOptional<ZodObject<{
offset: ZodOptional<ZodNumber>;
pageNumber: ZodOptional<ZodNumber>;
pageSize: ZodOptional<ZodNumber>;
paged: ZodOptional<ZodBoolean>;
unpaged: ZodOptional<ZodBoolean>;
sort: ZodOptional<ZodObject<{
empty: ZodOptional<ZodBoolean>;
sorted: ZodOptional<ZodBoolean>;
unsorted: ZodOptional<ZodBoolean>;
}, "passthrough", ZodTypeAny, objectOutputType<{
empty: ZodOptional<...>;
sorted: ZodOptional<...>;
unsorted: ZodOptional<...>;
}, ZodTypeAny, "passthrough">, objectInputType<{
empty: ZodOptional<...>;
sorted: ZodOptional<...>;
unsorted: ZodOptional<...>;
}, ZodTypeAny, "passthrough">>>;
}, "passthrough", ZodTypeAny, objectOutputType<{
offset: ZodOptional<ZodNumber>;
pageNumber: ZodOptional<ZodNumber>;
pageSize: ZodOptional<ZodNumber>;
paged: ZodOptional<ZodBoolean>;
unpaged: ZodOptional<ZodBoolean>;
sort: ZodOptional<ZodObject<{
empty: ZodOptional<...>;
sorted: ZodOptional<...>;
unsorted: ZodOptional<...>;
}, "passthrough", ZodTypeAny, objectOutputType<{
empty: ...;
sorted: ...;
unsorted: ...;
}, ZodTypeAny, "passthrough">, objectInputType<{
empty: ...;
sorted: ...;
unsorted: ...;
}, ZodTypeAny, "passthrough">>>;
}, ZodTypeAny, "passthrough">, objectInputType<{
offset: ZodOptional<ZodNumber>;
pageNumber: ZodOptional<ZodNumber>;
pageSize: ZodOptional<ZodNumber>;
paged: ZodOptional<ZodBoolean>;
unpaged: ZodOptional<ZodBoolean>;
sort: ZodOptional<ZodObject<{
empty: ZodOptional<...>;
sorted: ZodOptional<...>;
unsorted: ZodOptional<...>;
}, "passthrough", ZodTypeAny, objectOutputType<{
empty: ...;
sorted: ...;
unsorted: ...;
}, ZodTypeAny, "passthrough">, objectInputType<{
empty: ...;
sorted: ...;
unsorted: ...;
}, ZodTypeAny, "passthrough">>>;
}, ZodTypeAny, "passthrough">>>;
size: ZodOptional<ZodNumber>;
sort: ZodOptional<ZodObject<{
empty: ZodOptional<ZodBoolean>;
sorted: ZodOptional<ZodBoolean>;
unsorted: ZodOptional<ZodBoolean>;
}, "passthrough", ZodTypeAny, objectOutputType<{
empty: ZodOptional<ZodBoolean>;
sorted: ZodOptional<ZodBoolean>;
unsorted: ZodOptional<ZodBoolean>;
}, ZodTypeAny, "passthrough">, objectInputType<{
empty: ZodOptional<ZodBoolean>;
sorted: ZodOptional<ZodBoolean>;
unsorted: ZodOptional<ZodBoolean>;
}, ZodTypeAny, "passthrough">>>;
totalElements: ZodOptional<ZodNumber>;
totalPages: ZodOptional<ZodNumber>;
}, ZodTypeAny, "passthrough">, objectInputType<{
content: ZodArray<T, "many">;
empty: ZodOptional<ZodBoolean>;
first: ZodOptional<ZodBoolean>;
last: ZodOptional<ZodBoolean>;
number: ZodOptional<ZodNumber>;
numberOfElements: ZodOptional<ZodNumber>;
pageable: ZodOptional<ZodObject<{
offset: ZodOptional<ZodNumber>;
pageNumber: ZodOptional<ZodNumber>;
pageSize: ZodOptional<ZodNumber>;
paged: ZodOptional<ZodBoolean>;
unpaged: ZodOptional<ZodBoolean>;
sort: ZodOptional<ZodObject<{
empty: ZodOptional<ZodBoolean>;
sorted: ZodOptional<ZodBoolean>;
unsorted: ZodOptional<ZodBoolean>;
}, "passthrough", ZodTypeAny, objectOutputType<{
empty: ZodOptional<...>;
sorted: ZodOptional<...>;
unsorted: ZodOptional<...>;
}, ZodTypeAny, "passthrough">, objectInputType<{
empty: ZodOptional<...>;
sorted: ZodOptional<...>;
unsorted: ZodOptional<...>;
}, ZodTypeAny, "passthrough">>>;
}, "passthrough", ZodTypeAny, objectOutputType<{
offset: ZodOptional<ZodNumber>;
pageNumber: ZodOptional<ZodNumber>;
pageSize: ZodOptional<ZodNumber>;
paged: ZodOptional<ZodBoolean>;
unpaged: ZodOptional<ZodBoolean>;
sort: ZodOptional<ZodObject<{
empty: ZodOptional<...>;
sorted: ZodOptional<...>;
unsorted: ZodOptional<...>;
}, "passthrough", ZodTypeAny, objectOutputType<{
empty: ...;
sorted: ...;
unsorted: ...;
}, ZodTypeAny, "passthrough">, objectInputType<{
empty: ...;
sorted: ...;
unsorted: ...;
}, ZodTypeAny, "passthrough">>>;
}, ZodTypeAny, "passthrough">, objectInputType<{
offset: ZodOptional<ZodNumber>;
pageNumber: ZodOptional<ZodNumber>;
pageSize: ZodOptional<ZodNumber>;
paged: ZodOptional<ZodBoolean>;
unpaged: ZodOptional<ZodBoolean>;
sort: ZodOptional<ZodObject<{
empty: ZodOptional<...>;
sorted: ZodOptional<...>;
unsorted: ZodOptional<...>;
}, "passthrough", ZodTypeAny, objectOutputType<{
empty: ...;
sorted: ...;
unsorted: ...;
}, ZodTypeAny, "passthrough">, objectInputType<{
empty: ...;
sorted: ...;
unsorted: ...;
}, ZodTypeAny, "passthrough">>>;
}, ZodTypeAny, "passthrough">>>;
size: ZodOptional<ZodNumber>;
sort: ZodOptional<ZodObject<{
empty: ZodOptional<ZodBoolean>;
sorted: ZodOptional<ZodBoolean>;
unsorted: ZodOptional<ZodBoolean>;
}, "passthrough", ZodTypeAny, objectOutputType<{
empty: ZodOptional<ZodBoolean>;
sorted: ZodOptional<ZodBoolean>;
unsorted: ZodOptional<ZodBoolean>;
}, ZodTypeAny, "passthrough">, objectInputType<{
empty: ZodOptional<ZodBoolean>;
sorted: ZodOptional<ZodBoolean>;
unsorted: ZodOptional<ZodBoolean>;
}, ZodTypeAny, "passthrough">>>;
totalElements: ZodOptional<ZodNumber>;
totalPages: ZodOptional<ZodNumber>;
}, ZodTypeAny, "passthrough">>;
Defined in: src/models/dlp-page.ts:51
Spring-style Page<T> envelope factory. Every DLP /v2/api/* list endpoint
wraps its results in this shape (content[] + pagination metadata).
Returns a Zod schema parametrized on the inner item shape.
Type Parameters
| Type Parameter |
|---|
T extends ZodTypeAny |
Parameters
| Parameter | Type |
|---|---|
itemSchema | T |
Returns
ZodObject<{
content: ZodArray<T, "many">;
empty: ZodOptional<ZodBoolean>;
first: ZodOptional<ZodBoolean>;
last: ZodOptional<ZodBoolean>;
number: ZodOptional<ZodNumber>;
numberOfElements: ZodOptional<ZodNumber>;
pageable: ZodOptional<ZodObject<{
offset: ZodOptional<ZodNumber>;
pageNumber: ZodOptional<ZodNumber>;
pageSize: ZodOptional<ZodNumber>;
paged: ZodOptional<ZodBoolean>;
unpaged: ZodOptional<ZodBoolean>;
sort: ZodOptional<ZodObject<{
empty: ZodOptional<ZodBoolean>;
sorted: ZodOptional<ZodBoolean>;
unsorted: ZodOptional<ZodBoolean>;
}, "passthrough", ZodTypeAny, objectOutputType<{
empty: ZodOptional<ZodBoolean>;
sorted: ZodOptional<ZodBoolean>;
unsorted: ZodOptional<ZodBoolean>;
}, ZodTypeAny, "passthrough">, objectInputType<{
empty: ZodOptional<ZodBoolean>;
sorted: ZodOptional<ZodBoolean>;
unsorted: ZodOptional<ZodBoolean>;
}, ZodTypeAny, "passthrough">>>;
}, "passthrough", ZodTypeAny, objectOutputType<{
offset: ZodOptional<ZodNumber>;
pageNumber: ZodOptional<ZodNumber>;
pageSize: ZodOptional<ZodNumber>;
paged: ZodOptional<ZodBoolean>;
unpaged: ZodOptional<ZodBoolean>;
sort: ZodOptional<ZodObject<{
empty: ZodOptional<ZodBoolean>;
sorted: ZodOptional<ZodBoolean>;
unsorted: ZodOptional<ZodBoolean>;
}, "passthrough", ZodTypeAny, objectOutputType<{
empty: ZodOptional<...>;
sorted: ZodOptional<...>;
unsorted: ZodOptional<...>;
}, ZodTypeAny, "passthrough">, objectInputType<{
empty: ZodOptional<...>;
sorted: ZodOptional<...>;
unsorted: ZodOptional<...>;
}, ZodTypeAny, "passthrough">>>;
}, ZodTypeAny, "passthrough">, objectInputType<{
offset: ZodOptional<ZodNumber>;
pageNumber: ZodOptional<ZodNumber>;
pageSize: ZodOptional<ZodNumber>;
paged: ZodOptional<ZodBoolean>;
unpaged: ZodOptional<ZodBoolean>;
sort: ZodOptional<ZodObject<{
empty: ZodOptional<ZodBoolean>;
sorted: ZodOptional<ZodBoolean>;
unsorted: ZodOptional<ZodBoolean>;
}, "passthrough", ZodTypeAny, objectOutputType<{
empty: ZodOptional<...>;
sorted: ZodOptional<...>;
unsorted: ZodOptional<...>;
}, ZodTypeAny, "passthrough">, objectInputType<{
empty: ZodOptional<...>;
sorted: ZodOptional<...>;
unsorted: ZodOptional<...>;
}, ZodTypeAny, "passthrough">>>;
}, ZodTypeAny, "passthrough">>>;
size: ZodOptional<ZodNumber>;
sort: ZodOptional<ZodObject<{
empty: ZodOptional<ZodBoolean>;
sorted: ZodOptional<ZodBoolean>;
unsorted: ZodOptional<ZodBoolean>;
}, "passthrough", ZodTypeAny, objectOutputType<{
empty: ZodOptional<ZodBoolean>;
sorted: ZodOptional<ZodBoolean>;
unsorted: ZodOptional<ZodBoolean>;
}, ZodTypeAny, "passthrough">, objectInputType<{
empty: ZodOptional<ZodBoolean>;
sorted: ZodOptional<ZodBoolean>;
unsorted: ZodOptional<ZodBoolean>;
}, ZodTypeAny, "passthrough">>>;
totalElements: ZodOptional<ZodNumber>;
totalPages: ZodOptional<ZodNumber>;
}, "passthrough", ZodTypeAny, objectOutputType<{
content: ZodArray<T, "many">;
empty: ZodOptional<ZodBoolean>;
first: ZodOptional<ZodBoolean>;
last: ZodOptional<ZodBoolean>;
number: ZodOptional<ZodNumber>;
numberOfElements: ZodOptional<ZodNumber>;
pageable: ZodOptional<ZodObject<{
offset: ZodOptional<ZodNumber>;
pageNumber: ZodOptional<ZodNumber>;
pageSize: ZodOptional<ZodNumber>;
paged: ZodOptional<ZodBoolean>;
unpaged: ZodOptional<ZodBoolean>;
sort: ZodOptional<ZodObject<{
empty: ZodOptional<ZodBoolean>;
sorted: ZodOptional<ZodBoolean>;
unsorted: ZodOptional<ZodBoolean>;
}, "passthrough", ZodTypeAny, objectOutputType<{
empty: ZodOptional<...>;
sorted: ZodOptional<...>;
unsorted: ZodOptional<...>;
}, ZodTypeAny, "passthrough">, objectInputType<{
empty: ZodOptional<...>;
sorted: ZodOptional<...>;
unsorted: ZodOptional<...>;
}, ZodTypeAny, "passthrough">>>;
}, "passthrough", ZodTypeAny, objectOutputType<{
offset: ZodOptional<ZodNumber>;
pageNumber: ZodOptional<ZodNumber>;
pageSize: ZodOptional<ZodNumber>;
paged: ZodOptional<ZodBoolean>;
unpaged: ZodOptional<ZodBoolean>;
sort: ZodOptional<ZodObject<{
empty: ZodOptional<...>;
sorted: ZodOptional<...>;
unsorted: ZodOptional<...>;
}, "passthrough", ZodTypeAny, objectOutputType<{
empty: ...;
sorted: ...;
unsorted: ...;
}, ZodTypeAny, "passthrough">, objectInputType<{
empty: ...;
sorted: ...;
unsorted: ...;
}, ZodTypeAny, "passthrough">>>;
}, ZodTypeAny, "passthrough">, objectInputType<{
offset: ZodOptional<ZodNumber>;
pageNumber: ZodOptional<ZodNumber>;
pageSize: ZodOptional<ZodNumber>;
paged: ZodOptional<ZodBoolean>;
unpaged: ZodOptional<ZodBoolean>;
sort: ZodOptional<ZodObject<{
empty: ZodOptional<...>;
sorted: ZodOptional<...>;
unsorted: ZodOptional<...>;
}, "passthrough", ZodTypeAny, objectOutputType<{
empty: ...;
sorted: ...;
unsorted: ...;
}, ZodTypeAny, "passthrough">, objectInputType<{
empty: ...;
sorted: ...;
unsorted: ...;
}, ZodTypeAny, "passthrough">>>;
}, ZodTypeAny, "passthrough">>>;
size: ZodOptional<ZodNumber>;
sort: ZodOptional<ZodObject<{
empty: ZodOptional<ZodBoolean>;
sorted: ZodOptional<ZodBoolean>;
unsorted: ZodOptional<ZodBoolean>;
}, "passthrough", ZodTypeAny, objectOutputType<{
empty: ZodOptional<ZodBoolean>;
sorted: ZodOptional<ZodBoolean>;
unsorted: ZodOptional<ZodBoolean>;
}, ZodTypeAny, "passthrough">, objectInputType<{
empty: ZodOptional<ZodBoolean>;
sorted: ZodOptional<ZodBoolean>;
unsorted: ZodOptional<ZodBoolean>;
}, ZodTypeAny, "passthrough">>>;
totalElements: ZodOptional<ZodNumber>;
totalPages: ZodOptional<ZodNumber>;
}, ZodTypeAny, "passthrough">, objectInputType<{
content: ZodArray<T, "many">;
empty: ZodOptional<ZodBoolean>;
first: ZodOptional<ZodBoolean>;
last: ZodOptional<ZodBoolean>;
number: ZodOptional<ZodNumber>;
numberOfElements: ZodOptional<ZodNumber>;
pageable: ZodOptional<ZodObject<{
offset: ZodOptional<ZodNumber>;
pageNumber: ZodOptional<ZodNumber>;
pageSize: ZodOptional<ZodNumber>;
paged: ZodOptional<ZodBoolean>;
unpaged: ZodOptional<ZodBoolean>;
sort: ZodOptional<ZodObject<{
empty: ZodOptional<ZodBoolean>;
sorted: ZodOptional<ZodBoolean>;
unsorted: ZodOptional<ZodBoolean>;
}, "passthrough", ZodTypeAny, objectOutputType<{
empty: ZodOptional<...>;
sorted: ZodOptional<...>;
unsorted: ZodOptional<...>;
}, ZodTypeAny, "passthrough">, objectInputType<{
empty: ZodOptional<...>;
sorted: ZodOptional<...>;
unsorted: ZodOptional<...>;
}, ZodTypeAny, "passthrough">>>;
}, "passthrough", ZodTypeAny, objectOutputType<{
offset: ZodOptional<ZodNumber>;
pageNumber: ZodOptional<ZodNumber>;
pageSize: ZodOptional<ZodNumber>;
paged: ZodOptional<ZodBoolean>;
unpaged: ZodOptional<ZodBoolean>;
sort: ZodOptional<ZodObject<{
empty: ZodOptional<...>;
sorted: ZodOptional<...>;
unsorted: ZodOptional<...>;
}, "passthrough", ZodTypeAny, objectOutputType<{
empty: ...;
sorted: ...;
unsorted: ...;
}, ZodTypeAny, "passthrough">, objectInputType<{
empty: ...;
sorted: ...;
unsorted: ...;
}, ZodTypeAny, "passthrough">>>;
}, ZodTypeAny, "passthrough">, objectInputType<{
offset: ZodOptional<ZodNumber>;
pageNumber: ZodOptional<ZodNumber>;
pageSize: ZodOptional<ZodNumber>;
paged: ZodOptional<ZodBoolean>;
unpaged: ZodOptional<ZodBoolean>;
sort: ZodOptional<ZodObject<{
empty: ZodOptional<...>;
sorted: ZodOptional<...>;
unsorted: ZodOptional<...>;
}, "passthrough", ZodTypeAny, objectOutputType<{
empty: ...;
sorted: ...;
unsorted: ...;
}, ZodTypeAny, "passthrough">, objectInputType<{
empty: ...;
sorted: ...;
unsorted: ...;
}, ZodTypeAny, "passthrough">>>;
}, ZodTypeAny, "passthrough">>>;
size: ZodOptional<ZodNumber>;
sort: ZodOptional<ZodObject<{
empty: ZodOptional<ZodBoolean>;
sorted: ZodOptional<ZodBoolean>;
unsorted: ZodOptional<ZodBoolean>;
}, "passthrough", ZodTypeAny, objectOutputType<{
empty: ZodOptional<ZodBoolean>;
sorted: ZodOptional<ZodBoolean>;
unsorted: ZodOptional<ZodBoolean>;
}, ZodTypeAny, "passthrough">, objectInputType<{
empty: ZodOptional<ZodBoolean>;
sorted: ZodOptional<ZodBoolean>;
unsorted: ZodOptional<ZodBoolean>;
}, ZodTypeAny, "passthrough">>>;
totalElements: ZodOptional<ZodNumber>;
totalPages: ZodOptional<ZodNumber>;
}, ZodTypeAny, "passthrough">>
Example
import { z } from 'zod';
import { pageSchema } from '@cdot65/prisma-airs-sdk';
const DataProfilePage = pageSchema(z.object({ id: z.string(), name: z.string() }));
const page = DataProfilePage.parse(apiResponse);
// page =>
// { content: [{ id: 'dp-1', name: 'SSN' }],
// number: 0, size: 20, totalElements: 1, totalPages: 1, first: true, last: true }