Skip to main content

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

ParameterType
itemSchemaT

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 }