ts-japi
Version:
A highly-modular (typescript-friendly)-framework agnostic library for serializing data to the JSON:API specification
38 lines • 1.41 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const link_model_1 = __importDefault(require("../models/link.model"));
/**
* The {@link Paginator} class is used to construct [pagination links](https://jsonapi.org/format/#fetching-pagination).
*
* Example:
* ```typescript
* [[include:paginator.example.ts]]
* ```
*/
class Paginator {
/** @internal Generates pagination links. */
paginate;
/**
* Creates a {@link Paginator}.
*
* @param paginate - A function to generate pagination links from data.
*/
constructor(paginate) {
this.paginate = (data) => {
const links = paginate(data);
if (!links)
return;
return {
first: typeof links.first === 'string' ? new link_model_1.default(links.first) : links.first,
last: typeof links.last === 'string' ? new link_model_1.default(links.last) : links.last,
prev: typeof links.prev === 'string' ? new link_model_1.default(links.prev) : links.prev,
next: typeof links.next === 'string' ? new link_model_1.default(links.next) : links.next,
};
};
}
}
exports.default = Paginator;
//# sourceMappingURL=paginator.js.map