js-data-rethinkdb
Advanced tools
Comparing version 3.0.0-alpha.12 to 3.0.0-alpha.13
@@ -0,1 +1,6 @@ | ||
##### 3.0.0-alpha.13 - 17 March 2016 | ||
###### Backwards incompatible API changes | ||
- Added sum and count methods | ||
##### 3.0.0-alpha.12 - 10 March 2016 | ||
@@ -2,0 +7,0 @@ |
@@ -11,16 +11,4 @@ 'use strict'; | ||
var addHiddenPropsToTarget = jsData.utils.addHiddenPropsToTarget; | ||
var classCallCheck = jsData.utils.classCallCheck; | ||
var extend = jsData.utils.extend; | ||
var fillIn = jsData.utils.fillIn; | ||
var forOwn = jsData.utils.forOwn; | ||
var isObject = jsData.utils.isObject; | ||
var isString = jsData.utils.isString; | ||
var isUndefined = jsData.utils.isUndefined; | ||
var omit = jsData.utils.omit; | ||
var plainCopy = jsData.utils.plainCopy; | ||
var withoutRelations = function withoutRelations(mapper, props) { | ||
return omit(props, mapper.relationFields || []); | ||
return jsData.utils.omit(props, mapper.relationFields || []); | ||
}; | ||
@@ -204,5 +192,5 @@ | ||
var self = this; | ||
classCallCheck(self, RethinkDBAdapter); | ||
jsData.utils.classCallCheck(self, RethinkDBAdapter); | ||
opts || (opts = {}); | ||
fillIn(opts, DEFAULTS); | ||
jsData.utils.fillIn(opts, DEFAULTS); | ||
Adapter__default.call(self, opts); | ||
@@ -218,3 +206,3 @@ | ||
self.insertOpts || (self.insertOpts = {}); | ||
fillIn(self.insertOpts, INSERT_OPTS_DEFAULTS); | ||
jsData.utils.fillIn(self.insertOpts, INSERT_OPTS_DEFAULTS); | ||
@@ -229,3 +217,3 @@ /** | ||
self.updateOpts || (self.updateOpts = {}); | ||
fillIn(self.updateOpts, UPDATE_OPTS_DEFAULTS); | ||
jsData.utils.fillIn(self.updateOpts, UPDATE_OPTS_DEFAULTS); | ||
@@ -240,3 +228,3 @@ /** | ||
self.deleteOpts || (self.deleteOpts = {}); | ||
fillIn(self.deleteOpts, DELETE_OPTS_DEFAULTS); | ||
jsData.utils.fillIn(self.deleteOpts, DELETE_OPTS_DEFAULTS); | ||
@@ -251,3 +239,3 @@ /** | ||
self.runOpts || (self.runOpts = {}); | ||
fillIn(self.runOpts, RUN_OPTS_DEFAULTS); | ||
jsData.utils.fillIn(self.runOpts, RUN_OPTS_DEFAULTS); | ||
@@ -302,7 +290,7 @@ /** | ||
*/ | ||
RethinkDBAdapter.extend = extend; | ||
RethinkDBAdapter.extend = jsData.utils.extend; | ||
RethinkDBAdapter.OPERATORS = OPERATORS; | ||
addHiddenPropsToTarget(RethinkDBAdapter.prototype, { | ||
jsData.utils.addHiddenPropsToTarget(RethinkDBAdapter.prototype, { | ||
_handleErrors: function _handleErrors(cursor) { | ||
@@ -316,2 +304,11 @@ if (cursor && cursor.errors > 0) { | ||
}, | ||
_count: function _count(mapper, query, opts) { | ||
var self = this; | ||
opts || (opts = {}); | ||
query || (query = {}); | ||
return self.filterSequence(self.selectTable(mapper, opts), query).count().run(self.getOpt('runOpts', opts)).then(function (count) { | ||
return [count, {}]; | ||
}); | ||
}, | ||
_create: function _create(mapper, props, opts) { | ||
@@ -389,2 +386,14 @@ var self = this; | ||
}, | ||
_sum: function _sum(mapper, field, query, opts) { | ||
var self = this; | ||
if (!jsData.utils.isString(field)) { | ||
throw new Error('field must be a string!'); | ||
} | ||
opts || (opts = {}); | ||
query || (query = {}); | ||
return self.filterSequence(self.selectTable(mapper, opts), query).sum(field).run(self.getOpt('runOpts', opts)).then(function (sum) { | ||
return [sum, {}]; | ||
}); | ||
}, | ||
_update: function _update(mapper, id, props, opts) { | ||
@@ -450,3 +459,3 @@ var self = this; | ||
selectDb: function selectDb(opts) { | ||
return this.r.db(isUndefined(opts.db) ? this.db : opts.db); | ||
return this.r.db(jsData.utils.isUndefined(opts.db) ? this.db : opts.db); | ||
}, | ||
@@ -479,3 +488,3 @@ selectTable: function selectTable(mapper, opts) { | ||
query = plainCopy(query || {}); | ||
query = jsData.utils.plainCopy(query || {}); | ||
opts || (opts = {}); | ||
@@ -489,5 +498,5 @@ opts.operators || (opts.operators = {}); | ||
// Transform non-keyword properties to "where" clause configuration | ||
forOwn(query, function (config, keyword) { | ||
jsData.utils.forOwn(query, function (config, keyword) { | ||
if (Adapter.reserved.indexOf(keyword) === -1) { | ||
if (isObject(config)) { | ||
if (jsData.utils.isObject(config)) { | ||
query.where[keyword] = config; | ||
@@ -511,8 +520,8 @@ } else { | ||
// Apply filter for each field | ||
forOwn(query.where, function (criteria, field) { | ||
if (!isObject(criteria)) { | ||
jsData.utils.forOwn(query.where, function (criteria, field) { | ||
if (!jsData.utils.isObject(criteria)) { | ||
criteria = { '==': criteria }; | ||
} | ||
// Apply filter for each operator | ||
forOwn(criteria, function (value, operator) { | ||
jsData.utils.forOwn(criteria, function (value, operator) { | ||
var isOr = false; | ||
@@ -542,7 +551,7 @@ if (operator && operator[0] === '|') { | ||
if (query.orderBy) { | ||
if (isString(query.orderBy)) { | ||
if (jsData.utils.isString(query.orderBy)) { | ||
query.orderBy = [[query.orderBy, 'asc']]; | ||
} | ||
for (var i = 0; i < query.orderBy.length; i++) { | ||
if (isString(query.orderBy[i])) { | ||
if (jsData.utils.isString(query.orderBy[i])) { | ||
query.orderBy[i] = [query.orderBy[i], 'asc']; | ||
@@ -569,3 +578,3 @@ } | ||
opts || (opts = {}); | ||
var db = isUndefined(opts.db) ? self.db : opts.db; | ||
var db = jsData.utils.isUndefined(opts.db) ? self.db : opts.db; | ||
if (!self.databases[db]) { | ||
@@ -579,5 +588,5 @@ self.databases[db] = self.r.branch(self.r.dbList().contains(db), true, self.r.dbCreate(db)).run(); | ||
var table = isString(mapper) ? mapper : mapper.table || underscore(mapper.name); | ||
var table = jsData.utils.isString(mapper) ? mapper : mapper.table || underscore(mapper.name); | ||
options = options || {}; | ||
var db = isUndefined(options.db) ? this.db : options.db; | ||
var db = jsData.utils.isUndefined(options.db) ? this.db : options.db; | ||
return this.waitForDb(options).then(function () { | ||
@@ -595,3 +604,3 @@ _this.tables[db] = _this.tables[db] || {}; | ||
options = options || {}; | ||
var db = isUndefined(options.db) ? this.db : options.db; | ||
var db = jsData.utils.isUndefined(options.db) ? this.db : options.db; | ||
return this.waitForDb(options).then(function () { | ||
@@ -613,2 +622,34 @@ return _this2.waitForTable(table, options); | ||
/** | ||
* Return the number of records that match the selection query. | ||
* | ||
* @name RethinkDBAdapter#count | ||
* @method | ||
* @param {Object} mapper the mapper. | ||
* @param {Object} [query] Selection query. | ||
* @param {Object} [query.where] Filtering criteria. | ||
* @param {string|Array} [query.orderBy] Sorting criteria. | ||
* @param {string|Array} [query.sort] Same as `query.sort`. | ||
* @param {number} [query.limit] Limit results. | ||
* @param {number} [query.skip] Offset results. | ||
* @param {number} [query.offset] Same as `query.skip`. | ||
* @param {Object} [opts] Configuration options. | ||
* @param {Object} [opts.operators] Override the default predicate functions | ||
* for specified operators. | ||
* @param {boolean} [opts.raw=false] Whether to return a more detailed | ||
* response object. | ||
* @param {Object} [opts.runOpts] Options to pass to r#run. | ||
* @return {Promise} | ||
*/ | ||
count: function count(mapper, query, opts) { | ||
var self = this; | ||
opts || (opts = {}); | ||
query || (query = {}); | ||
return self.waitForTable(mapper, opts).then(function () { | ||
return __super__.count.call(self, mapper, query, opts); | ||
}); | ||
}, | ||
/** | ||
* Create a new record. | ||
@@ -829,3 +870,3 @@ * | ||
var ownOps = this.operators || {}; | ||
return isUndefined(opts.operators[operator]) ? ownOps[operator] || OPERATORS[operator] : opts.operators[operator]; | ||
return jsData.utils.isUndefined(opts.operators[operator]) ? ownOps[operator] || OPERATORS[operator] : opts.operators[operator]; | ||
}, | ||
@@ -835,2 +876,36 @@ | ||
/** | ||
* Return the sum of the specified field of records that match the selection | ||
* query. | ||
* | ||
* @name RethinkDBAdapter#sum | ||
* @method | ||
* @param {Object} mapper The mapper. | ||
* @param {string} field The field to sum. | ||
* @param {Object} [query] Selection query. | ||
* @param {Object} [query.where] Filtering criteria. | ||
* @param {string|Array} [query.orderBy] Sorting criteria. | ||
* @param {string|Array} [query.sort] Same as `query.sort`. | ||
* @param {number} [query.limit] Limit results. | ||
* @param {number} [query.skip] Offset results. | ||
* @param {number} [query.offset] Same as `query.skip`. | ||
* @param {Object} [opts] Configuration options. | ||
* @param {Object} [opts.operators] Override the default predicate functions | ||
* for specified operators. | ||
* @param {boolean} [opts.raw=false] Whether to return a more detailed | ||
* response object. | ||
* @param {Object} [opts.runOpts] Options to pass to r#run. | ||
* @return {Promise} | ||
*/ | ||
sum: function sum(mapper, field, query, opts) { | ||
var self = this; | ||
opts || (opts = {}); | ||
query || (query = {}); | ||
return self.waitForTable(mapper, opts).then(function () { | ||
return __super__.sum.call(self, mapper, field, query, opts); | ||
}); | ||
}, | ||
/** | ||
* Apply the given update to the record with the specified primary key. | ||
@@ -837,0 +912,0 @@ * |
{ | ||
"name": "js-data-rethinkdb", | ||
"description": "RethinkDB adapter for js-data.", | ||
"version": "3.0.0-alpha.12", | ||
"version": "3.0.0-alpha.13", | ||
"homepage": "https://github.com/js-data/js-data-rethinkdb", | ||
@@ -49,12 +49,12 @@ "repository": { | ||
"dependencies": { | ||
"js-data-adapter": "0.2.0", | ||
"js-data-adapter": "0.2.3", | ||
"mout": "0.12.0" | ||
}, | ||
"peerDependencies": { | ||
"js-data": "^3.0.0-alpha.16", | ||
"js-data": "^3.0.0-alpha.19", | ||
"rethinkdbdash": ">=1.15.0" | ||
}, | ||
"devDependencies": { | ||
"babel-core": "6.7.0", | ||
"babel-polyfill": "6.6.1", | ||
"babel-core": "6.7.2", | ||
"babel-polyfill": "6.7.2", | ||
"babel-preset-es2015-rollup": "1.1.1", | ||
@@ -65,3 +65,3 @@ "chai": "3.5.0", | ||
"istanbul": "0.4.2", | ||
"js-data-adapter-tests": "^2.0.0-alpha.14", | ||
"js-data-adapter-tests": "^2.0.0-alpha.15", | ||
"js-data-repo-tools": "0.2.0", | ||
@@ -68,0 +68,0 @@ "jsdoc": "3.4.0", |
Sorry, the diff of this file is not supported yet
101029
973
+ Addedjs-data-adapter@0.2.3(transitive)
- Removedjs-data-adapter@0.2.0(transitive)
Updatedjs-data-adapter@0.2.3