Skip to main content
zerotal

Documentation


Documentation / @zerotal/core / http / ResourceCollection

Class: ResourceCollection

Defined in: http/Resource.ts:128

Paginated API resource collection — wraps a PaginateResult into the standard { data, meta, links } envelope.

Examples

// In a controller:
const posts = await Post.query().paginate(15, page);
ctx.json(ResourceCollection.of(PostResource, posts));
// → {
//     data: [...],
//     meta: { current_page, last_page, total, per_page, from, to },
//     links: { first, prev, next, last }
//   }
// With a base URL for fully-qualified pagination links:
ctx.json(ResourceCollection.of(PostResource, posts, '/api/posts'));

Constructors

Constructor

new ResourceCollection(): ResourceCollection

Returns

ResourceCollection

Methods

of()

static of<T, R>(ResourceClass, paginated, baseUrl?, query?): Record<string, unknown>

Defined in: http/Resource.ts:137

Transform a paginated result set using the given Resource class.

Type Parameters

T

T

R

R extends Resource<T>

Parameters

ResourceClass

(item) => R

The Resource subclass to transform each item.

paginated

PaginatedData<T>

A PaginateResult (or any object matching PaginatedData).

baseUrl?

string = ""

Optional base URL; used to build links.* href strings.

query?

Record<string, string> = {}

Extra query params merged into every pagination link.

Returns

Record<string, unknown>