Socket
Socket
Sign inDemoInstall

viewmodel

Package Overview
Dependencies
Maintainers
2
Versions
109
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

viewmodel - npm Package Compare versions

Comparing version 1.3.3 to 1.3.4

.tachikoma.yml

149

lib/databases/redis.js

@@ -174,2 +174,39 @@ 'use strict';

scan: function (key, cursor, handleKeys, callback) {
var self = this;
if (!callback) {
callback = handleKeys;
handleKeys = cursor;
cursor = 0;
}
(function scanRecursive (curs) {
self.client.scan(curs, 'match', key, function (err, res) {
if (err) {
return callback(err);
}
function next () {
if (res[0] === '0') {
callback(null);
} else {
scanRecursive(res[0]);
}
}
if (res[1].length === 0) {
return next();
}
handleKeys(res[1], function (err) {
if (err) {
return callback(err);
}
next();
});
});
})(cursor);
},
find: function(query, queryOptions, callback) {

@@ -180,10 +217,71 @@

var self = this;
this.client.keys(this.prefix + ':*', function(err, docs) {
if (queryOptions.skip !== undefined && queryOptions.limit !== undefined) {
docs = docs.slice(queryOptions.skip, queryOptions.limit + queryOptions.skip + 1);
var allKeys = [];
this.scan(this.prefix + ':*',
function (keys, fn) {
allKeys = allKeys.concat(keys);
fn();
}, function (err) {
if (err) {
if (callback) callback(err);
return;
}
if (queryOptions.skip !== undefined && queryOptions.limit !== undefined) {
allKeys = allKeys.slice(queryOptions.skip, queryOptions.limit + queryOptions.skip + 1);
}
// docs.reverse();
async.map(allKeys, function(doc, callback) {
self.client.get(doc, function (err, data) {
if (err) {
if (callback) callback(err);
return;
}
if (!data) {
if (callback) callback(null, null);
return;
}
var result;
try {
result = jsondate.parse(data.toString());
} catch (error) {
if (callback) callback(err);
return;
}
var vm = new ViewModel(result, self);
vm.actionOnCommit = 'update';
if (callback) callback(null, vm);
});
}, callback);
}
);
},
// docs.reverse();
async.map(docs, function(doc, callback) {
self.client.get(doc, function (err, data) {
findOne: function(query, queryOptions, callback) {
this.checkConnection();
var self = this;
var key;
this.scan(this.prefix + ':*',
function (keys, fn) {
if (!key) {
key = keys[0];
}
fn();
}, function (err) {
if (err || !key) {
if (callback) callback(err);
return;
}
self.client.get(key, function (err, data) {
if (err) {

@@ -212,41 +310,6 @@ if (callback) callback(err);

});
}, callback);
});
}
);
},
findOne: function(query, queryOptions, callback) {
this.checkConnection();
var self = this;
this.client.keys(this.prefix + ':*', function(err, docs) {
self.client.get(docs[0], function (err, data) {
if (err) {
if (callback) callback(err);
return;
}
if (!data) {
if (callback) callback(null, null);
return;
}
var result;
try {
result = jsondate.parse(data.toString());
} catch (error) {
if (callback) callback(err);
return;
}
var vm = new ViewModel(result, self);
vm.actionOnCommit = 'update';
if (callback) callback(null, vm);
});
});
},
commit: function (vm, callback) {

@@ -253,0 +316,0 @@

{
"author": "adrai",
"name": "viewmodel",
"version": "1.3.3",
"version": "1.3.4",
"private": false,

@@ -14,8 +14,8 @@ "main": "index.js",

"dependencies": {
"async": "0.9.0",
"async": "1.2.1",
"dotty": "0.0.2",
"jsondate": "0.0.1",
"lodash": "3.6.0",
"lodash": "3.9.3",
"node-uuid": "1.4.3",
"sift": "1.1.0",
"sift": "1.1.1",
"tolerance": "1.0.0"

@@ -22,0 +22,0 @@ },

@@ -0,1 +1,4 @@

## [v1.3.3](https://github.com/adrai/node-viewmodel/compare/v1.3.3...v1.3.4)
- redis: replace .keys() calls with .scan() calls => scales better
## [v1.3.3](https://github.com/adrai/node-viewmodel/compare/v1.3.2...v1.3.3)

@@ -2,0 +5,0 @@ - fix errors in azureTable implementation [#13](https://github.com/adrai/node-viewmodel/pull/13) thanks to [rvin100](https://github.com/rvin100)

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