mongo-cursor-pagination
Advanced tools
Comparing version
function _asyncToGenerator(fn) { return function () { var gen = fn.apply(this, arguments); return new Promise(function (resolve, reject) { function step(key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { return Promise.resolve(value).then(function (value) { step("next", value); }, function (err) { step("throw", err); }); } } return step("next"); }); }; } | ||
var _ = require('underscore'); | ||
var objectPath = require('object-path'); | ||
var config = require('./config'); | ||
@@ -150,13 +151,15 @@ var bsonUrlEncoding = require('./utils/bsonUrlEncoding'); | ||
if (response.previous) { | ||
var previousPaginatedField = objectPath.get(response.previous, params.paginatedField); | ||
if (shouldSecondarySortOnId) { | ||
response.previous = bsonUrlEncoding.encode([response.previous[params.paginatedField], response.previous._id]); | ||
response.previous = bsonUrlEncoding.encode([previousPaginatedField, response.previous._id]); | ||
} else { | ||
response.previous = bsonUrlEncoding.encode(response.previous[params.paginatedField]); | ||
response.previous = bsonUrlEncoding.encode(previousPaginatedField); | ||
} | ||
} | ||
if (response.next) { | ||
var nextPaginatedField = objectPath.get(response.next, params.paginatedField); | ||
if (shouldSecondarySortOnId) { | ||
response.next = bsonUrlEncoding.encode([response.next[params.paginatedField], response.next._id]); | ||
response.next = bsonUrlEncoding.encode([nextPaginatedField, response.next._id]); | ||
} else { | ||
response.next = bsonUrlEncoding.encode(response.next[params.paginatedField]); | ||
response.next = bsonUrlEncoding.encode(nextPaginatedField); | ||
} | ||
@@ -163,0 +166,0 @@ } |
{ | ||
"name": "mongo-cursor-pagination", | ||
"version": "6.0.0", | ||
"version": "6.0.1", | ||
"description": "Make it easy to return cursor-paginated results from a Mongo collection", | ||
@@ -15,2 +15,3 @@ "main": "index.js", | ||
"babelBuild": "babel src -d dist/node", | ||
"babelWatch": "babel --watch src -d dist/node", | ||
"prepublish": "yarn run babelBuild" | ||
@@ -40,2 +41,3 @@ }, | ||
"mongodb-extended-json": "^1.7.1", | ||
"object-path": "^0.11.4", | ||
"semver": "^5.4.1", | ||
@@ -42,0 +44,0 @@ "underscore": "^1.8.3" |
@@ -63,6 +63,6 @@ # mongo-cursor-pagination | ||
```js | ||
var mongoist = require('mongoist'); | ||
var MongoPaging = require('mongo-cursor-pagination'); | ||
const mongoist = require('mongoist'); | ||
const MongoPaging = require('mongo-cursor-pagination'); | ||
var db = mongoist('mongodb://localhost:27017/mydb'); | ||
const db = mongoist('mongodb://localhost:27017/mydb'); | ||
@@ -80,4 +80,4 @@ async function findExample() { | ||
// Query the first page. | ||
var result = await MongoPaging.find(db.collection('myobjects'), { | ||
// Query the first page. | ||
let result = await MongoPaging.find(db.collection('myobjects'), { | ||
limit: 2 | ||
@@ -140,6 +140,6 @@ }); | ||
```js | ||
var mongoist = require('mongoist'); | ||
var MongoPaging = require('mongo-cursor-pagination'); | ||
const mongoist = require('mongoist'); | ||
const MongoPaging = require('mongo-cursor-pagination'); | ||
var db = mongoist('mongodb://localhost:27017/mydb'); | ||
const db = mongoist('mongodb://localhost:27017/mydb'); | ||
@@ -160,3 +160,3 @@ async function searchExample() { | ||
// Query the first page. | ||
var result = await MongoPaging.search(db.collection('myobjects'), 'dogs', { | ||
let result = await MongoPaging.search(db.collection('myobjects'), 'dogs', { | ||
fields: { | ||
@@ -200,3 +200,3 @@ mytext: 1 | ||
try { | ||
var result = await MongoPaging.find(db.collection('myobjects'), { | ||
const result = await MongoPaging.find(db.collection('myobjects'), { | ||
query: { | ||
@@ -226,3 +226,3 @@ userId: req.user._id | ||
try { | ||
var result = await MongoPaging.findWithReq(req, db.collection('myobjects'), { | ||
const result = await MongoPaging.findWithReq(req, db.collection('myobjects'), { | ||
query: { | ||
@@ -255,3 +255,3 @@ userId: req.user._id | ||
``` | ||
```js | ||
MongoPaging.find(db.people, { | ||
@@ -270,3 +270,3 @@ query: { | ||
``` | ||
```js | ||
db.people.ensureIndex({ | ||
@@ -285,2 +285,4 @@ name: 1, | ||
* 6.0.1 Fix issue where calling `find` with a paginated field that has dot notation e.g. `start.dateTime` produces an invalid `next` token. | ||
* 6.0.0 Breaking API change: `mongo-cursor-pagination` requires a Promise enabled mongodb instance from `mongoist` and returns Promises from `find`, `findWithReq`, and `search` rather than handling callbacks. *Note: Although the library now uses `async/await`, it is still useable in node >= 6.9.0.* | ||
@@ -287,0 +289,0 @@ |
var _ = require('underscore'); | ||
var objectPath = require('object-path'); | ||
var config = require('./config'); | ||
@@ -149,13 +150,15 @@ var bsonUrlEncoding = require('./utils/bsonUrlEncoding'); | ||
if (response.previous) { | ||
var previousPaginatedField = objectPath.get(response.previous, params.paginatedField); | ||
if (shouldSecondarySortOnId) { | ||
response.previous = bsonUrlEncoding.encode([response.previous[params.paginatedField], response.previous._id]); | ||
response.previous = bsonUrlEncoding.encode([previousPaginatedField, response.previous._id]); | ||
} else { | ||
response.previous = bsonUrlEncoding.encode(response.previous[params.paginatedField]); | ||
response.previous = bsonUrlEncoding.encode(previousPaginatedField); | ||
} | ||
} | ||
if (response.next) { | ||
var nextPaginatedField = objectPath.get(response.next, params.paginatedField); | ||
if (shouldSecondarySortOnId) { | ||
response.next = bsonUrlEncoding.encode([response.next[params.paginatedField], response.next._id]); | ||
response.next = bsonUrlEncoding.encode([nextPaginatedField, response.next._id]); | ||
} else { | ||
response.next = bsonUrlEncoding.encode(response.next[params.paginatedField]); | ||
response.next = bsonUrlEncoding.encode(nextPaginatedField); | ||
} | ||
@@ -162,0 +165,0 @@ } |
New author
Supply chain riskA new npm collaborator published a version of the package for the first time. New collaborators are usually benign additions to a project, but do indicate a change to the security surface area of a package.
Found 1 instance in 1 package
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
744
0.81%306
0.66%43340
-21.35%5
25%19
-5%+ Added
+ Added