paginatorjs

0.0.2 • Public • Published

Paginator

Pagination facade for node

install via npm npm install --save paginatorjs

Create a paginator object.

paginator = require('paginator')({
    get: function (start, numberOfResults, done, error) {
        if(start > 8) {
            error({
                message: 'test getPage error'
            });
        }
        else {
            done(_.range(8).splice(start, numberOfResults));
        }
    },
    count: function (done, error) {
        if(throwCountError) {
            error({
                message: 'test getNumberOfPages error'
            });
        }
        else {
            done(8);
        }
    },
    //only necessary if only using "getAll" method,
    //if not using "getAll" then "all" is not necessary
    all: function (start, numberOfResults, done, error) {
        if(start > 8 || throwCountError) {
            error({ message: 'test all error' });
        }
        else {
            done({
                results: _.range(8).splice(start, numberOfResults),
                count: 8
            });
        }
    },
    resultsPerPage: 3
});

promise getPage(pageNumber, successCallback, errorCallback)

paginator.getPage(
    1,
    function (results) {
        test.deepEqual(results, [0, 1, 2]);
    },
    function (err) {
        test.deepEqual(err, { message: 'test getPage error' });
    }
);

promise getNumberOfPages(successCallback, errorCallback)

paginator.getNumberOfPages(
    function (numberOfPages) {
        test.deepEqual(numberOfPages, 3);
    },
    function (err) {
        test.deepEqual(err, { message: 'test getNumberOfPages error' });
    }
);

promise getAll(pageNumber, successCallback, errorCallback)

paginator.getAll(
    1,
    function (results) {
        test.deepEqual(results, { results: [0, 1, 2], numberOfPages: 3 });
    },
    function (err) {
        test.deepEqual(err, { message: 'test all error' });
    }
);

All methods can alternatively be used with Q promises

paginator.getPage(1)
.then(function (results) {
    test.deepEqual(results, [0, 1, 2]);
})
.catch(function (err) {
    test.deepEqual(err, { message: 'test getPage error' });
});

Readme

Keywords

none

Package Sidebar

Install

npm i paginatorjs

Weekly Downloads

6

Version

0.0.2

License

MIT

Last publish

Collaborators

  • dubfriend