UNPKG

ts-japi

Version:

A highly-modular (typescript-friendly)-framework agnostic library for serializing data to the JSON:API specification

38 lines 1.41 kB
"use strict"; 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