New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

mongoose-paginate-v2

Package Overview
Dependencies
Maintainers
1
Versions
62
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

mongoose-paginate-v2 - npm Package Compare versions

Comparing version 1.3.4 to 1.3.51

.github/workflows/npmpublish.yml

0

.github/ISSUE_TEMPLATE/bug_report.md

@@ -0,0 +0,0 @@ ---

@@ -0,0 +0,0 @@ # Contributor Covenant Code of Conduct

5

package.json
{
"name": "mongoose-paginate-v2",
"version": "1.3.4",
"version": "1.3.51",
"description": "A cursor based custom pagination library for Mongoose with customizable labels.",

@@ -9,4 +9,3 @@ "main": "dist/index.js",

"test": "./node_modules/.bin/mocha tests/*.js -R spec --ui bdd --timeout 9999999",
"build": "babel src -d dist",
"prepublish": "npm run test"
"build": "babel src -d dist"
},

@@ -13,0 +12,0 @@ "repository": {

@@ -126,2 +126,4 @@ ![Banner](static/banner.jpg)

* prevPage
* hasNextPage
* hasPrevPage
* totalPages

@@ -128,0 +130,0 @@ * pagingCounter

@@ -153,2 +153,3 @@ /**

meta.offset = offset;
page = Math.ceil((offset + 1) / limit);
}

@@ -195,2 +196,13 @@

if (limit == 0) {
meta[labelLimit] = 0;
meta[labelTotalPages] = null;
meta[labelPage] = null;
meta[labelPagingCounter] = null;
meta[labelPrevPage] = null;
meta[labelNextPage] = null;
meta[labelHasPrevPage] = false;
meta[labelHasNextPage] = false;
}
if (labelMeta) {

@@ -221,2 +233,2 @@ result = {

module.exports.paginate = paginate;
module.exports.paginate = paginate;

@@ -90,153 +90,210 @@ 'use strict';

describe('paginates', function () {
it('with limit and page', function () {
var query = {
title: {
$in: [/Book #1/i]
}
};
it('with page and limit', function () {
var query = {
title: {
$in: [/Book/i]
}
};
var options = {
limit: 0,
sort: {
_id: 1
},
collation: {
locale: 'en',
strength: 2
},
lean: true
};
var options = {
limit: 10,
page: 5,
lean: true
};
return Book.paginate(query, options).then((result) => {
expect(result.docs).to.have.length(0);
expect(result.totalDocs).to.equal(12);
expect(result.limit).to.equal(0);
expect(result.page).to.equal(1);
expect(result.pagingCounter).to.equal(1);
expect(result.hasPrevPage).to.equal(false);
expect(result.hasNextPage).to.equal(false);
expect(result.prevPage).to.equal(null);
expect(result.nextPage).to.equal(null);
expect(result.totalPages).to.equal(null);
});
return Book.paginate(query, options).then((result) => {
expect(result.docs).to.have.length(10);
expect(result.totalDocs).to.equal(100);
expect(result.limit).to.equal(10);
expect(result.page).to.equal(5);
expect(result.pagingCounter).to.equal(41);
expect(result.hasPrevPage).to.equal(true);
expect(result.hasNextPage).to.equal(true);
expect(result.prevPage).to.equal(4);
expect(result.nextPage).to.equal(6);
expect(result.totalPages).to.equal(10);
});
});
/*
it('with $where condition', function () {
var query = {
'$where': 'this.price < 100'
};
it('with offset and limit (not page)', function () {
var query = {
title: {
$in: [/Book/i]
}
};
var options = {
sort: {
price: -1
},
page: 2
};
var options = {
limit: 10,
offset: 98,
sort: {
_id: 1
},
lean: true
};
return Book.paginate(query, options).then((result) => {
expect(result.docs).to.have.length(6);
expect(result.docs[0].title).to.equal('Book #6');
expect(result.totalDocs).to.equal(16);
expect(result.limit).to.equal(10);
expect(result.page).to.equal(2);
expect(result.pagingCounter).to.equal(11);
expect(result.hasPrevPage).to.equal(true);
expect(result.hasNextPage).to.equal(false);
expect(result.prevPage).to.equal(1);
expect(result.nextPage).to.equal(null);
expect(result.totalPages).to.equal(2);
});
return Book.paginate(query, options).then((result) => {
expect(result.docs).to.have.length(2);
expect(result.totalDocs).to.equal(100);
expect(result.limit).to.equal(10);
expect(result.page).to.equal(10);
expect(result.pagingCounter).to.equal(91);
expect(result.hasPrevPage).to.equal(true);
expect(result.hasNextPage).to.equal(false);
expect(result.prevPage).to.equal(9);
expect(result.nextPage).to.equal(null);
expect(result.totalPages).to.equal(10);
});
*/
});
it('with empty custom labels', function () {
var query = {
title: {
$in: [/Book/i]
}
};
it('with limit=0 (metadata only)', function () {
var query = {
title: {
$in: [/Book #1/i]
}
};
const myCustomLabels = {
nextPage: false,
prevPage: '',
};
var options = {
limit: 0,
sort: {
_id: 1
},
collation: {
locale: 'en',
strength: 2
},
lean: true
};
var options = {
sort: {
_id: 1
},
limit: 10,
page: 5,
select: {
title: 1,
price: 1
},
customLabels: myCustomLabels
};
return Book.paginate(query, options).then((result) => {
return Book.paginate(query, options).then((result) => {
expect(result.docs).to.have.length(10);
expect(result.docs[0].title).to.equal('Book #41');
expect(result.totalDocs).to.equal(100);
expect(result.limit).to.equal(10);
expect(result.page).to.equal(5);
expect(result.pagingCounter).to.equal(41);
expect(result.hasPrevPage).to.equal(true);
expect(result.hasNextPage).to.equal(true);
expect(result.totalPages).to.equal(10);
expect(result.prevPage).to.equal(undefined);
expect(result.nextPage).to.equal(undefined);
});
expect(result.docs).to.have.length(0);
expect(result.totalDocs).to.equal(12);
expect(result.limit).to.equal(0);
expect(result.page).to.equal(null);
expect(result.pagingCounter).to.equal(null);
expect(result.hasPrevPage).to.equal(false);
expect(result.hasNextPage).to.equal(false);
expect(result.prevPage).to.equal(null);
expect(result.nextPage).to.equal(null);
expect(result.totalPages).to.equal(null);
});
});
it('with custom labels', function () {
var query = {
title: {
$in: [/Book/i]
}
};
/*
it('with $where condition', function () {
var query = {
'$where': 'this.price < 100'
};
const myCustomLabels = {
totalDocs: 'itemCount',
docs: 'itemsList',
limit: 'perPage',
page: 'currentPage',
nextPage: 'next',
prevPage: 'prev',
totalPages: 'pageCount',
pagingCounter: 'pageCounter',
hasPrevPage: 'hasPrevious',
hasNextPage: 'hasNext'
};
var options = {
sort: {
price: -1
},
page: 2
};
var options = {
sort: {
_id: 1
},
limit: 10,
page: 5,
select: {
title: 1,
price: 1
},
customLabels: myCustomLabels
};
return Book.paginate(query, options).then((result) => {
expect(result.itemsList).to.have.length(10);
expect(result.itemsList[0].title).to.equal('Book #41');
expect(result.itemCount).to.equal(100);
expect(result.perPage).to.equal(10);
expect(result.currentPage).to.equal(5);
expect(result.pageCounter).to.equal(41);
expect(result.hasPrevious).to.equal(true);
expect(result.hasNext).to.equal(true);
expect(result.prev).to.equal(4);
expect(result.next).to.equal(6);
expect(result.pageCount).to.equal(10);
});
return Book.paginate(query, options).then((result) => {
expect(result.docs).to.have.length(6);
expect(result.docs[0].title).to.equal('Book #6');
expect(result.totalDocs).to.equal(16);
expect(result.limit).to.equal(10);
expect(result.page).to.equal(2);
expect(result.pagingCounter).to.equal(11);
expect(result.hasPrevPage).to.equal(true);
expect(result.hasNextPage).to.equal(false);
expect(result.prevPage).to.equal(1);
expect(result.nextPage).to.equal(null);
expect(result.totalPages).to.equal(2);
});
});
*/
it('with empty custom labels', function () {
var query = {
title: {
$in: [/Book/i]
}
};
const myCustomLabels = {
nextPage: false,
prevPage: '',
};
var options = {
sort: {
_id: 1
},
limit: 10,
page: 5,
select: {
title: 1,
price: 1
},
customLabels: myCustomLabels
};
return Book.paginate(query, options).then((result) => {
expect(result.docs).to.have.length(10);
expect(result.docs[0].title).to.equal('Book #41');
expect(result.totalDocs).to.equal(100);
expect(result.limit).to.equal(10);
expect(result.page).to.equal(5);
expect(result.pagingCounter).to.equal(41);
expect(result.hasPrevPage).to.equal(true);
expect(result.hasNextPage).to.equal(true);
expect(result.totalPages).to.equal(10);
expect(result.prevPage).to.equal(undefined);
expect(result.nextPage).to.equal(undefined);
});
});
it('with custom labels', function () {
var query = {
title: {
$in: [/Book/i]
}
};
const myCustomLabels = {
totalDocs: 'itemCount',
docs: 'itemsList',
limit: 'perPage',
page: 'currentPage',
nextPage: 'next',
prevPage: 'prev',
totalPages: 'pageCount',
pagingCounter: 'pageCounter',
hasPrevPage: 'hasPrevious',
hasNextPage: 'hasNext'
};
var options = {
sort: {
_id: 1
},
limit: 10,
page: 5,
select: {
title: 1,
price: 1
},
customLabels: myCustomLabels
};
return Book.paginate(query, options).then((result) => {
expect(result.itemsList).to.have.length(10);
expect(result.itemsList[0].title).to.equal('Book #41');
expect(result.itemCount).to.equal(100);
expect(result.perPage).to.equal(10);
expect(result.currentPage).to.equal(5);
expect(result.pageCounter).to.equal(41);
expect(result.hasPrevious).to.equal(true);
expect(result.hasNext).to.equal(true);
expect(result.prev).to.equal(4);
expect(result.next).to.equal(6);
expect(result.pageCount).to.equal(10);
});
});
it('with custom Meta label', function () {

@@ -343,2 +400,2 @@ var query = {

});
});

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc