Source: lib/paginator.js

/*jshint laxcomma:true, smarttabs: true, node:true, esnext: true */
'use strict';
/**
 * @module tastypie/lib/paginator
 * @author Eric Satterwhite
 * @requires util
 * @requires module:class
 * @requires module:class/options
 * @requires module:class/parent
 * @requires mout/lang/kindOf
 * @since 0.1.0

 **/

exports.local = function page(prefix, limit = 25, offset = 0, objects = [], total = null, max = 1000, property = 'data'){

    const next = offset + limit;
    const prev = offset - limit;
    const count = objects.length;

    return {
      meta: {
         next: (next < count) ? `${prefix}?limit=${limit}&offset=${next}` : null
       , previous: prev < 0 ? null : `${prefix}?limit=${limit}&offset=${prev}` 
       , count
       , limit
       , offset
      }
      ,  [property]: objects.slice(offset, limit < 0 ? count : offset + limit )
    };
};

exports.remote = function page(prefix, limit = 25, offset = 0, objects = [], total = 0, max = 1000, property = 'data'){
    const next     = offset + limit;
    const prev     = offset - limit;

    return {
      meta: {
         next: (next < total) ? `${prefix}?limit=${limit}&offset=${next}` : null
       , previous: prev < 0 ? null : `${prefix}?limit=${limit}&offset=${prev}` 
       , count: objects.length
      }
      ,  [property]: objects
    };
};