mongoose-paginate-v2
Advanced tools
Comparing version 1.3.4 to 1.3.51
@@ -0,0 +0,0 @@ --- |
@@ -0,0 +0,0 @@ --- |
@@ -0,0 +0,0 @@ # Contributor Covenant Code of Conduct |
{ | ||
"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
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
412592
13
4721
267
1