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

borgdb

Package Overview
Dependencies
Maintainers
1
Versions
8
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

borgdb - npm Package Compare versions

Comparing version 0.0.3 to 0.0.4

30

lib/BorgDB.js

@@ -24,3 +24,3 @@ var Error = require('./error');

var BorgDB = {
allowedOperators: ["$in"],
allowedOperators: ["$in", "$exists"],
init: function(driver, params, callback) {

@@ -66,12 +66,26 @@ driver = driver.toLowerCase();

},
find: function(what, collection_name, options, callback) {
callback = callback || options;
find: function(query, collection_name, options, callback) {
if(typeof options === 'function') {
callback = options;
options = {};
}
if (Object.keys(drivers).length > 0) driver = drivers[Object.keys(drivers)[0]];
if (this.schemas[collection_name]) {
//check to make sure the params are even valid for the schema
if (getBadSpecialKeys(query, BorgDB.allowedOperators).length > 0) {
throw Error('The following operators/keys are not allowed in your DB queries: ' + getBadSpecialKeys(query, BorgDB.allowedOperators));
}
if (getBadSpecialKeys(what, BorgDB.allowedOperators).length > 0) {
throw Error('The following operators/keys are not allowed in your DB queries: ' + getBadSpecialKeys(where, BorgDB.allowedOperators));
if (this.schemas[collection_name]) {
options.join = [];
for(var prop in this.schemas[collection_name].properties) {
if(this.schemas[collection_name].properties[prop].ref !== undefined) {
options.join.push({
field: prop,
collection: this.hooks['collection_name'] ? this.hooks['collection_name'](this.schemas[collection_name].properties[prop].ref) : this.schemas[collection_name].properties[prop].ref
});
}
}
}

@@ -81,3 +95,3 @@

return driver.find(what, collection_name, options, callback);
return driver.find(query, collection_name, options, callback);
},

@@ -84,0 +98,0 @@ create: function(collection_name, data, callback) {

var mongo = require('mongoskin'),
Join = require('mongo-join').Join,
objectDiff = require('objectdiff'),

@@ -45,14 +46,33 @@ Error = require('../error'),

find: function(spec, bucket, options, callback) {
if (!callback) {
callback = options;
options = {};
var joins;
if(options.join) {
joins = options.join;
delete options.join;
}
if (options.limit === 1) {
DB.collection(bucket).findOne(spec, callback);
if (options.limit && options.limit === 1) {
DB.collection(bucket).findOne(spec, function(err, doc) {
callback(err, [doc]);
});
} else {
DB.collection(bucket).find(spec, function(err, rs) {
if (err) return callback(err);
DB.collection(bucket).find(spec, function(err, cursor) {
if(joins) {
//console.log(DB._dbconn);
//console.log(DB.db);
rs.toArray(callback);
var join = new Join(DB._dbconn);
for(var i=0; i<joins.length; i++) {
join.on({
field: joins[i].field,
to: '_id',
from: joins[i].collection
});
}
join.toArray(cursor, callback);
} else {
cursor.toArray(callback);
}
});

@@ -59,0 +79,0 @@ }

{
"name": "borgdb",
"version": "0.0.3",
"version": "0.0.4",
"description": "A DB agnostic NoSQL DB abstraction layer - NOT PRODUCTION READY",

@@ -5,0 +5,0 @@ "main": "./lib/BorgDB.js",

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