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

js-data-rethinkdb

Package Overview
Dependencies
Maintainers
2
Versions
42
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

js-data-rethinkdb - npm Package Compare versions

Comparing version 3.0.0-beta.5 to 3.0.0-beta.6

5

CHANGELOG.md

@@ -0,1 +1,6 @@

##### 3.0.0-beta.6 - 17 May 2016
###### Backwards compatible changes
- Added support for grouped "where" clauses
##### 3.0.0-beta.5 - 10 May 2016

@@ -2,0 +7,0 @@

222

dist/js-data-rethinkdb.js

@@ -32,2 +32,3 @@ 'use strict';

* @name module:js-data-rethinkdb.OPERATORS
* @property {Function} = Equality operator.
* @property {Function} == Equality operator.

@@ -53,2 +54,3 @@ * @property {Function} != Inequality operator.

var OPERATORS = {
'=': equal,
'==': equal,

@@ -481,8 +483,91 @@ '===': equal,

},
selectDb: function selectDb(opts) {
return this.r.db(jsData.utils.isUndefined(opts.db) ? this.rOpts.db : opts.db);
_applyWhereFromObject: function _applyWhereFromObject(where) {
var fields = [];
var ops = [];
var predicates = [];
jsData.utils.forOwn(where, function (clause, field) {
if (!jsData.utils.isObject(clause)) {
clause = {
'==': clause
};
}
jsData.utils.forOwn(clause, function (expr, op) {
fields.push(field);
ops.push(op);
predicates.push(expr);
});
});
return {
fields: fields,
ops: ops,
predicates: predicates
};
},
selectTable: function selectTable(mapper, opts) {
return this.selectDb(opts).table(mapper.table || underscore(mapper.name));
_applyWhereFromArray: function _applyWhereFromArray(where) {
var _this8 = this;
var groups = [];
where.forEach(function (_where, i) {
if (jsData.utils.isString(_where)) {
return;
}
var prev = where[i - 1];
var parser = jsData.utils.isArray(_where) ? _this8._applyWhereFromArray : _this8._applyWhereFromObject;
var group = parser.call(_this8, _where);
if (prev === 'or') {
group.isOr = true;
}
groups.push(group);
});
groups.isArray = true;
return groups;
},
_testObjectGroup: function _testObjectGroup(rql, group, row, opts) {
var i = void 0;
var r = this.r;
var fields = group.fields;
var ops = group.ops;
var predicates = group.predicates;
var len = ops.length;
for (i = 0; i < len; i++) {
var op = ops[i];
var isOr = op.charAt(0) === '|';
op = isOr ? op.substr(1) : op;
var predicateFn = this.getOperator(op, opts);
if (predicateFn) {
var predicateResult = predicateFn(r, row, fields[i], predicates[i]);
if (isOr) {
rql = rql ? rql.or(predicateResult) : predicateResult;
} else {
rql = rql ? rql.and(predicateResult) : predicateResult;
}
} else {
throw new Error('Operator ' + op + ' not supported!');
}
}
return rql;
},
_testArrayGroup: function _testArrayGroup(rql, groups, row, opts) {
var i = void 0;
var len = groups.length;
for (i = 0; i < len; i++) {
var group = groups[i];
var subQuery = void 0;
if (group.isArray) {
subQuery = this._testArrayGroup(rql, group, row, opts);
} else {
subQuery = this._testObjectGroup(null, group, row, opts);
}
if (groups[i - 1]) {
if (group.isOr) {
rql = rql.or(subQuery);
} else {
rql = rql.and(subQuery);
}
} else {
rql = rql ? rql.and(subQuery) : subQuery;
}
}
return rql;
},

@@ -508,3 +593,3 @@

filterSequence: function filterSequence(sequence, query, opts) {
var _this8 = this;
var _this9 = this;

@@ -538,32 +623,13 @@ var r = this.r;

// Filter
if (Object.keys(query.where).length !== 0) {
// Filter sequence using filter function
var groups = void 0;
if (jsData.utils.isObject(query.where) && Object.keys(query.where).length !== 0) {
groups = this._applyWhereFromArray([query.where]);
} else if (jsData.utils.isArray(query.where)) {
groups = this._applyWhereFromArray(query.where);
}
if (groups) {
rql = rql.filter(function (row) {
var subQuery = void 0;
// Apply filter for each field
jsData.utils.forOwn(query.where, function (criteria, field) {
if (!jsData.utils.isObject(criteria)) {
criteria = { '==': criteria };
}
// Apply filter for each operator
jsData.utils.forOwn(criteria, function (value, operator) {
var isOr = false;
if (operator && operator[0] === '|') {
operator = operator.substr(1);
isOr = true;
}
var predicateFn = _this8.getOperator(operator, opts);
if (predicateFn) {
var predicateResult = predicateFn(r, row, field, value);
if (isOr) {
subQuery = subQuery ? subQuery.or(predicateResult) : predicateResult;
} else {
subQuery = subQuery ? subQuery.and(predicateResult) : predicateResult;
}
} else {
throw new Error('Operator ' + operator + ' not supported!');
}
});
});
return subQuery || true;
return _this9._testArrayGroup(null, groups, row, opts) || true;
});

@@ -597,2 +663,8 @@ }

},
selectDb: function selectDb(opts) {
return this.r.db(jsData.utils.isUndefined(opts.db) ? this.rOpts.db : opts.db);
},
selectTable: function selectTable(mapper, opts) {
return this.selectDb(opts).table(mapper.table || underscore(mapper.name));
},
waitForDb: function waitForDb(opts) {

@@ -607,3 +679,3 @@ opts || (opts = {});

waitForTable: function waitForTable(mapper, opts) {
var _this9 = this;
var _this10 = this;

@@ -614,11 +686,11 @@ opts || (opts = {});

return this.waitForDb(opts).then(function () {
_this9.tables[db] = _this9.tables[db] || {};
if (!_this9.tables[db][table]) {
_this9.tables[db][table] = _this9.r.branch(_this9.r.db(db).tableList().contains(table), true, _this9.r.db(db).tableCreate(table)).run();
_this10.tables[db] = _this10.tables[db] || {};
if (!_this10.tables[db][table]) {
_this10.tables[db][table] = _this10.r.branch(_this10.r.db(db).tableList().contains(table), true, _this10.r.db(db).tableCreate(table)).run();
}
return _this9.tables[db][table];
return _this10.tables[db][table];
});
},
waitForIndex: function waitForIndex(table, index, opts) {
var _this10 = this;
var _this11 = this;

@@ -628,12 +700,12 @@ opts || (opts = {});

return this.waitForDb(opts).then(function () {
return _this10.waitForTable(table, opts);
return _this11.waitForTable(table, opts);
}).then(function () {
_this10.indices[db] = _this10.indices[db] || {};
_this10.indices[db][table] = _this10.indices[db][table] || {};
if (!_this10.tables[db][table][index]) {
_this10.tables[db][table][index] = _this10.r.branch(_this10.r.db(db).table(table).indexList().contains(index), true, _this10.r.db(db).table(table).indexCreate(index)).run().then(function () {
return _this10.r.db(db).table(table).indexWait(index).run();
_this11.indices[db] = _this11.indices[db] || {};
_this11.indices[db][table] = _this11.indices[db][table] || {};
if (!_this11.tables[db][table][index]) {
_this11.tables[db][table][index] = _this11.r.branch(_this11.r.db(db).table(table).indexList().contains(index), true, _this11.r.db(db).table(table).indexCreate(index)).run().then(function () {
return _this11.r.db(db).table(table).indexWait(index).run();
});
}
return _this10.tables[db][table][index];
return _this11.tables[db][table][index];
});

@@ -665,3 +737,3 @@ },

count: function count(mapper, query, opts) {
var _this11 = this;
var _this12 = this;

@@ -672,3 +744,3 @@ opts || (opts = {});

return this.waitForTable(mapper, opts).then(function () {
return __super__.count.call(_this11, mapper, query, opts);
return __super__.count.call(_this12, mapper, query, opts);
});

@@ -693,3 +765,3 @@ },

create: function create(mapper, props, opts) {
var _this12 = this;
var _this13 = this;

@@ -700,3 +772,3 @@ props || (props = {});

return this.waitForTable(mapper, opts).then(function () {
return __super__.create.call(_this12, mapper, props, opts);
return __super__.create.call(_this13, mapper, props, opts);
});

@@ -721,3 +793,3 @@ },

createMany: function createMany(mapper, props, opts) {
var _this13 = this;
var _this14 = this;

@@ -728,3 +800,3 @@ props || (props = {});

return this.waitForTable(mapper, opts).then(function () {
return __super__.createMany.call(_this13, mapper, props, opts);
return __super__.createMany.call(_this14, mapper, props, opts);
});

@@ -749,3 +821,3 @@ },

destroy: function destroy(mapper, id, opts) {
var _this14 = this;
var _this15 = this;

@@ -755,3 +827,3 @@ opts || (opts = {});

return this.waitForTable(mapper, opts).then(function () {
return __super__.destroy.call(_this14, mapper, id, opts);
return __super__.destroy.call(_this15, mapper, id, opts);
});

@@ -784,3 +856,3 @@ },

destroyAll: function destroyAll(mapper, query, opts) {
var _this15 = this;
var _this16 = this;

@@ -791,3 +863,3 @@ opts || (opts = {});

return this.waitForTable(mapper, opts).then(function () {
return __super__.destroyAll.call(_this15, mapper, query, opts);
return __super__.destroyAll.call(_this16, mapper, query, opts);
});

@@ -812,3 +884,3 @@ },

find: function find(mapper, id, opts) {
var _this16 = this;
var _this17 = this;

@@ -829,5 +901,5 @@ opts || (opts = {});

if (def.type === 'belongsTo') {
tasks.push(_this16.waitForIndex(mapper.table || underscore(mapper.name), def.foreignKey, opts));
tasks.push(_this17.waitForIndex(mapper.table || underscore(mapper.name), def.foreignKey, opts));
} else {
tasks.push(_this16.waitForIndex(relationDef.table || underscore(relationDef.name), def.foreignKey, opts));
tasks.push(_this17.waitForIndex(relationDef.table || underscore(relationDef.name), def.foreignKey, opts));
}

@@ -837,3 +909,3 @@ }

return Promise.all(tasks).then(function () {
return __super__.find.call(_this16, mapper, id, opts);
return __super__.find.call(_this17, mapper, id, opts);
});

@@ -866,3 +938,3 @@ },

findAll: function findAll(mapper, query, opts) {
var _this17 = this;
var _this18 = this;

@@ -884,5 +956,5 @@ opts || (opts = {});

if (def.type === 'belongsTo') {
tasks.push(_this17.waitForIndex(mapper.table || underscore(mapper.name), def.foreignKey, opts));
tasks.push(_this18.waitForIndex(mapper.table || underscore(mapper.name), def.foreignKey, opts));
} else {
tasks.push(_this17.waitForIndex(relationDef.table || underscore(relationDef.name), def.foreignKey, opts));
tasks.push(_this18.waitForIndex(relationDef.table || underscore(relationDef.name), def.foreignKey, opts));
}

@@ -892,3 +964,3 @@ }

return Promise.all(tasks).then(function () {
return __super__.findAll.call(_this17, mapper, query, opts);
return __super__.findAll.call(_this18, mapper, query, opts);
});

@@ -942,3 +1014,3 @@ },

sum: function sum(mapper, field, query, opts) {
var _this18 = this;
var _this19 = this;

@@ -949,3 +1021,3 @@ opts || (opts = {});

return this.waitForTable(mapper, opts).then(function () {
return __super__.sum.call(_this18, mapper, field, query, opts);
return __super__.sum.call(_this19, mapper, field, query, opts);
});

@@ -971,3 +1043,3 @@ },

update: function update(mapper, id, props, opts) {
var _this19 = this;
var _this20 = this;

@@ -978,3 +1050,3 @@ props || (props = {});

return this.waitForTable(mapper, opts).then(function () {
return __super__.update.call(_this19, mapper, id, props, opts);
return __super__.update.call(_this20, mapper, id, props, opts);
});

@@ -1008,3 +1080,3 @@ },

updateAll: function updateAll(mapper, props, query, opts) {
var _this20 = this;
var _this21 = this;

@@ -1016,3 +1088,3 @@ props || (props = {});

return this.waitForTable(mapper, opts).then(function () {
return __super__.updateAll.call(_this20, mapper, props, query, opts);
return __super__.updateAll.call(_this21, mapper, props, query, opts);
});

@@ -1037,3 +1109,3 @@ },

updateMany: function updateMany(mapper, records, opts) {
var _this21 = this;
var _this22 = this;

@@ -1044,3 +1116,3 @@ records || (records = []);

return this.waitForTable(mapper, opts).then(function () {
return __super__.updateMany.call(_this21, mapper, records, opts);
return __super__.updateMany.call(_this22, mapper, records, opts);
});

@@ -1073,4 +1145,4 @@ }

var version = {
beta: 5,
full: '3.0.0-beta.5',
beta: 6,
full: '3.0.0-beta.6',
major: 3,

@@ -1077,0 +1149,0 @@ minor: 0,

{
"name": "js-data-rethinkdb",
"description": "RethinkDB adapter for js-data.",
"version": "3.0.0-beta.5",
"version": "3.0.0-beta.6",
"homepage": "https://github.com/js-data/js-data-rethinkdb",

@@ -48,6 +48,2 @@ "repository": {

"es2015"
],
"plugins": [
"syntax-async-functions",
"transform-regenerator"
]

@@ -67,20 +63,12 @@ },

"dependencies": {
"js-data-adapter": "~0.6.1",
"js-data-adapter": "~0.7.2",
"mout": "1.0.0"
},
"peerDependencies": {
"js-data": "^3.0.0-beta.5",
"js-data": "^3.0.0-beta.6",
"rethinkdbdash": ">=2.0.0"
},
"devDependencies": {
"babel-polyfill": "6.8.0",
"babel-preset-es2015-rollup": "1.1.1",
"js-data-adapter-tests": "^2.0.0-alpha.20",
"js-data-repo-tools": "0.5.1",
"nyc": "6.4.4",
"rollup": "0.26.2",
"rollup-plugin-babel": "2.4.0",
"source-map-support": "0.4.0",
"watch": "0.18.0"
"js-data-repo-tools": "0.5.2"
}
}

@@ -31,2 +31,3 @@ import {utils} from 'js-data'

* @name module:js-data-rethinkdb.OPERATORS
* @property {Function} = Equality operator.
* @property {Function} == Equality operator.

@@ -52,2 +53,3 @@ * @property {Function} != Inequality operator.

export const OPERATORS = {
'=': equal,
'==': equal,

@@ -498,10 +500,93 @@ '===': equal,

selectDb (opts) {
return this.r.db(utils.isUndefined(opts.db) ? this.rOpts.db : opts.db)
_applyWhereFromObject (where) {
const fields = []
const ops = []
const predicates = []
utils.forOwn(where, (clause, field) => {
if (!utils.isObject(clause)) {
clause = {
'==': clause
}
}
utils.forOwn(clause, (expr, op) => {
fields.push(field)
ops.push(op)
predicates.push(expr)
})
})
return {
fields,
ops,
predicates
}
},
selectTable (mapper, opts) {
return this.selectDb(opts).table(mapper.table || underscore(mapper.name))
_applyWhereFromArray (where) {
const groups = []
where.forEach((_where, i) => {
if (utils.isString(_where)) {
return
}
const prev = where[i - 1]
const parser = utils.isArray(_where) ? this._applyWhereFromArray : this._applyWhereFromObject
const group = parser.call(this, _where)
if (prev === 'or') {
group.isOr = true
}
groups.push(group)
})
groups.isArray = true
return groups
},
_testObjectGroup (rql, group, row, opts) {
let i
const r = this.r
const fields = group.fields
const ops = group.ops
const predicates = group.predicates
const len = ops.length
for (i = 0; i < len; i++) {
let op = ops[i]
const isOr = op.charAt(0) === '|'
op = isOr ? op.substr(1) : op
const predicateFn = this.getOperator(op, opts)
if (predicateFn) {
const predicateResult = predicateFn(r, row, fields[i], predicates[i])
if (isOr) {
rql = rql ? rql.or(predicateResult) : predicateResult
} else {
rql = rql ? rql.and(predicateResult) : predicateResult
}
} else {
throw new Error(`Operator ${op} not supported!`)
}
}
return rql
},
_testArrayGroup (rql, groups, row, opts) {
let i
const len = groups.length
for (i = 0; i < len; i++) {
const group = groups[i]
let subQuery
if (group.isArray) {
subQuery = this._testArrayGroup(rql, group, row, opts)
} else {
subQuery = this._testObjectGroup(null, group, row, opts)
}
if (groups[i - 1]) {
if (group.isOr) {
rql = rql.or(subQuery)
} else {
rql = rql.and(subQuery)
}
} else {
rql = rql ? rql.and(subQuery) : subQuery
}
}
return rql
},
/**

@@ -552,35 +637,14 @@ * Apply the specified selection query to the provided RQL sequence.

// Filter
if (Object.keys(query.where).length !== 0) {
// Filter sequence using filter function
rql = rql.filter((row) => {
let subQuery
// Apply filter for each field
utils.forOwn(query.where, (criteria, field) => {
if (!utils.isObject(criteria)) {
criteria = { '==': criteria }
}
// Apply filter for each operator
utils.forOwn(criteria, (value, operator) => {
let isOr = false
if (operator && operator[0] === '|') {
operator = operator.substr(1)
isOr = true
}
let predicateFn = this.getOperator(operator, opts)
if (predicateFn) {
const predicateResult = predicateFn(r, row, field, value)
if (isOr) {
subQuery = subQuery ? subQuery.or(predicateResult) : predicateResult
} else {
subQuery = subQuery ? subQuery.and(predicateResult) : predicateResult
}
} else {
throw new Error(`Operator ${operator} not supported!`)
}
})
})
return subQuery || true
})
let groups
if (utils.isObject(query.where) && Object.keys(query.where).length !== 0) {
groups = this._applyWhereFromArray([query.where])
} else if (utils.isArray(query.where)) {
groups = this._applyWhereFromArray(query.where)
}
if (groups) {
rql = rql.filter((row) => this._testArrayGroup(null, groups, row, opts) || true)
}
// Sort

@@ -614,2 +678,10 @@ if (query.orderBy) {

selectDb (opts) {
return this.r.db(utils.isUndefined(opts.db) ? this.rOpts.db : opts.db)
},
selectTable (mapper, opts) {
return this.selectDb(opts).table(mapper.table || underscore(mapper.name))
},
waitForDb (opts) {

@@ -616,0 +688,0 @@ opts || (opts = {})

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