🚀 Big News: Socket Acquires Coana to Bring Reachability Analysis to Every Appsec Team.Learn more
Socket
Book a DemoInstallSign in
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

to
3.0.0-alpha.8

6

CHANGELOG.md

@@ -0,1 +1,7 @@

##### 3.0.0-alpha.8 - 06 March 2016
###### Other
- Extracted common adapter functionality into js-data-adapter
- Extracted common js-data repo utility scripts into js-data-repo-tools
##### 3.0.0-alpha.7 - 03 March 2016

@@ -2,0 +8,0 @@

3

conf.json

@@ -18,6 +18,5 @@ {

"copyright": "js-data-rethinkdb Copyright © 2014-2016 js-data-rethinkdb project authors",
"outputSourceFiles": true,
"syntaxTheme": "dark",
"linenums": true,
"footer": "<div style=\"text-align:center\">Back to <a href=\"http://js-data.io\">js-data.io</a></div>",
"footer": "<div style=\"text-align:center\">Back to <a href=\"http://api.js-data.io\">api.js-data.io</a></div>",
"analytics": {

@@ -24,0 +23,0 @@ "ua": "UA-55528236-2",

@@ -6,2 +6,4 @@ 'use strict';

var jsData = require('js-data');
var Adapter = require('js-data-adapter');
var Adapter__default = _interopDefault(Adapter);
var rethinkdbdash = _interopDefault(require('rethinkdbdash'));

@@ -12,7 +14,2 @@ var underscore = _interopDefault(require('mout/string/underscore'));

var babelHelpers = {};
babelHelpers.typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) {
return typeof obj;
} : function (obj) {
return obj && typeof Symbol === "function" && obj.constructor === Symbol ? "symbol" : typeof obj;
};

@@ -37,2 +34,3 @@ babelHelpers.defineProperty = function (obj, key, value) {

var addHiddenPropsToTarget = jsData.utils.addHiddenPropsToTarget;
var classCallCheck = jsData.utils.classCallCheck;
var extend = jsData.utils.extend;

@@ -47,2 +45,3 @@ var fillIn = jsData.utils.fillIn;

var isUndefined = jsData.utils.isUndefined;
var omit = jsData.utils.omit;
var plainCopy = jsData.utils.plainCopy;

@@ -52,39 +51,4 @@ var resolve = jsData.utils.resolve;

var reserved = ['orderBy', 'sort', 'limit', 'offset', 'skip', 'where'];
var noop = function noop() {
var self = this;
for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
args[_key] = arguments[_key];
}
var opts = args[args.length - 1];
self.dbg.apply(self, [opts.op].concat(args));
return resolve();
};
var noop2 = function noop2() {
var self = this;
for (var _len2 = arguments.length, args = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
args[_key2] = arguments[_key2];
}
var opts = args[args.length - 2];
self.dbg.apply(self, [opts.op].concat(args));
return resolve();
};
var withoutRelations = function withoutRelations(mapper, props) {
var relationFields = mapper.relationFields || [];
// Remove relations
var _props = {};
forOwn(props, function (value, key) {
if (relationFields.indexOf(key) === -1) {
_props[key] = value;
}
});
return _props;
return omit(props, mapper.relationFields || []);
};

@@ -268,2 +232,3 @@

* @class RethinkDBAdapter
* @extends Adapter
* @param {Object} [opts] Configuration opts.

@@ -284,5 +249,6 @@ * @param {string} [opts.authKey=""] RethinkDB authorization key.

var self = this;
classCallCheck(self, RethinkDBAdapter);
opts || (opts = {});
fillIn(opts, DEFAULTS);
fillIn(self, opts);
Adapter__default.call(this, opts);

@@ -351,2 +317,17 @@ /**

// Setup prototype inheritance from Adapter
RethinkDBAdapter.prototype = Object.create(Adapter__default.prototype, {
constructor: {
value: RethinkDBAdapter,
enumerable: false,
writable: true,
configurable: true
}
});
Object.defineProperty(RethinkDBAdapter, '__super__', {
configurable: true,
value: Adapter__default
});
/**

@@ -358,6 +339,6 @@ * Alternative to ES6 class syntax for extending `RethinkDBAdapter`.

* @param {Object} [instanceProps] Properties that will be added to the
* prototype of the subclass.
* prototype of the RethinkDBAdapter.
* @param {Object} [classProps] Properties that will be added as static
* properties to the subclass itself.
* @return {Object} Subclass of `RethinkDBAdapter`.
* properties to the RethinkDBAdapter itself.
* @return {Object} RethinkDBAdapter of `RethinkDBAdapter`.
*/

@@ -375,122 +356,2 @@ RethinkDBAdapter.extend = extend;

},
/**
* @name RethinkDBAdapter#afterCreate
* @method
*/
afterCreate: noop2,
/**
* @name RethinkDBAdapter#afterCreateMany
* @method
*/
afterCreateMany: noop2,
/**
* @name RethinkDBAdapter#afterDestroy
* @method
*/
afterDestroy: noop2,
/**
* @name RethinkDBAdapter#afterDestroyAll
* @method
*/
afterDestroyAll: noop2,
/**
* @name RethinkDBAdapter#afterFind
* @method
*/
afterFind: noop2,
/**
* @name RethinkDBAdapter#afterFindAll
* @method
*/
afterFindAll: noop2,
/**
* @name RethinkDBAdapter#afterUpdate
* @method
*/
afterUpdate: noop2,
/**
* @name RethinkDBAdapter#afterUpdateAll
* @method
*/
afterUpdateAll: noop2,
/**
* @name RethinkDBAdapter#afterUpdateMany
* @method
*/
afterUpdateMany: noop2,
/**
* @name RethinkDBAdapter#beforeCreate
* @method
*/
beforeCreate: noop,
/**
* @name RethinkDBAdapter#beforeCreateMany
* @method
*/
beforeCreateMany: noop,
/**
* @name RethinkDBAdapter#beforeDestroy
* @method
*/
beforeDestroy: noop,
/**
* @name RethinkDBAdapter#beforeDestroyAll
* @method
*/
beforeDestroyAll: noop,
/**
* @name RethinkDBAdapter#beforeFind
* @method
*/
beforeFind: noop,
/**
* @name RethinkDBAdapter#beforeFindAll
* @method
*/
beforeFindAll: noop,
/**
* @name RethinkDBAdapter#beforeUpdate
* @method
*/
beforeUpdate: noop,
/**
* @name RethinkDBAdapter#beforeUpdateAll
* @method
*/
beforeUpdateAll: noop,
/**
* @name RethinkDBAdapter#beforeUpdateMany
* @method
*/
beforeUpdateMany: noop,
/**
* @name RethinkDBAdapter#dbg
* @method
*/
dbg: function dbg() {
for (var _len3 = arguments.length, args = Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {
args[_key3] = arguments[_key3];
}
this.log.apply(this, ['debug'].concat(args));
},
selectDb: function selectDb(opts) {

@@ -535,3 +396,3 @@ return this.r.db(isUndefined(opts.db) ? this.db : opts.db);

forOwn(query, function (config, keyword) {
if (reserved.indexOf(keyword) === -1) {
if (Adapter.reserved.indexOf(keyword) === -1) {
if (isObject(config)) {

@@ -554,3 +415,3 @@ query.where[keyword] = config;

rql = rql.filter(function (row) {
var subQuery = undefined;
var subQuery = void 0;
// Apply filter for each field

@@ -635,3 +496,3 @@ forOwn(query.where, function (criteria, field) {

var self = this;
var op = undefined;
var op = void 0;
props || (props = {});

@@ -652,17 +513,15 @@ opts || (opts = {});

self._handleErrors(cursor);
var record = undefined;
var record = void 0;
if (cursor && cursor.changes && cursor.changes.length && cursor.changes[0].new_val) {
record = cursor.changes[0].new_val;
}
var result = {};
fillIn(result, cursor);
result.data = record;
result.created = record ? 1 : 0;
result = self.getOpt('raw', opts) ? result : result.data;
var response = new Adapter.Response(record, cursor, 'create');
response.created = record ? 1 : 0;
response = self.respond(response, opts);
// afterCreate lifecycle hook
op = opts.op = 'afterCreate';
return resolve(self[op](mapper, props, opts, result)).then(function (_result) {
return resolve(self[op](mapper, props, opts, response)).then(function (_response) {
// Allow for re-assignment from lifecycle hook
return isUndefined(_result) ? result : _result;
return isUndefined(_response) ? response : _response;
});

@@ -689,3 +548,3 @@ });

var self = this;
var op = undefined;
var op = void 0;
props || (props = {});

@@ -715,5 +574,3 @@ opts || (opts = {});

}
var result = {};
fillIn(result, cursor);
result.data = records;
var result = new Adapter.Response(records, cursor, 'createMany');
result.created = records.length;

@@ -748,3 +605,3 @@ result = self.getOpt('raw', opts) ? result : result.data;

var self = this;
var op = undefined;
var op = void 0;
opts || (opts = {});

@@ -761,4 +618,3 @@

}).then(function (cursor) {
var result = {};
fillIn(result, cursor);
var result = new Adapter.Response(undefined, cursor, 'destroy');
result = self.getOpt('raw', opts) ? result : undefined;

@@ -800,3 +656,3 @@

var self = this;
var op = undefined;
var op = void 0;
query || (query = {});

@@ -814,4 +670,3 @@ opts || (opts = {});

}).then(function (cursor) {
var result = {};
fillIn(result, cursor);
var result = new Adapter.Response(undefined, cursor, 'destroyAll');
result = self.getOpt('raw', opts) ? result : undefined;

@@ -830,143 +685,2 @@

/**
* Return the foreignKey from the given record for the provided relationship.
*
* There may be reasons why you may want to override this method, like when
* the id of the parent doesn't exactly match up to the key on the child.
*
* @name RethinkDBAdapter#makeHasManyForeignKey
* @method
* @return {*}
*/
makeHasManyForeignKey: function makeHasManyForeignKey(mapper, def, record) {
return def.getForeignKey(record);
},
/**
* Load a hasMany relationship.
*
* @name RethinkDBAdapter#loadHasMany
* @method
* @return {Promise}
*/
loadHasMany: function loadHasMany(mapper, def, records, __opts) {
var self = this;
var singular = false;
if (isObject(records) && !isArray(records)) {
singular = true;
records = [records];
}
var IDs = records.map(function (record) {
return self.makeHasManyForeignKey(mapper, def, record);
});
var query = {};
var criteria = query[def.foreignKey] = {};
if (singular) {
// more efficient query when we only have one record
criteria['=='] = IDs[0];
} else {
criteria['in'] = IDs.filter(function (id) {
return id;
});
}
return self.findAll(def.getRelation(), query, __opts).then(function (relatedItems) {
records.forEach(function (record) {
var attached = [];
// avoid unneccesary iteration when we only have one record
if (singular) {
attached = relatedItems;
} else {
relatedItems.forEach(function (relatedItem) {
if (get(relatedItem, def.foreignKey) === record[mapper.idAttribute]) {
attached.push(relatedItem);
}
});
}
def.setLocalField(record, attached);
});
});
},
/**
* Load a hasOne relationship.
*
* @name RethinkDBAdapter#loadHasOne
* @method
* @return {Promise}
*/
loadHasOne: function loadHasOne(mapper, def, records, __opts) {
if (isObject(records) && !isArray(records)) {
records = [records];
}
return this.loadHasMany(mapper, def, records, __opts).then(function () {
records.forEach(function (record) {
var relatedData = def.getLocalField(record);
if (isArray(relatedData) && relatedData.length) {
def.setLocalField(record, relatedData[0]);
}
});
});
},
/**
* Return the foreignKey from the given record for the provided relationship.
*
* @name RethinkDBAdapter#makeBelongsToForeignKey
* @method
* @return {*}
*/
makeBelongsToForeignKey: function makeBelongsToForeignKey(mapper, def, record) {
return def.getForeignKey(record);
},
/**
* Load a belongsTo relationship.
*
* @name RethinkDBAdapter#loadBelongsTo
* @method
* @return {Promise}
*/
loadBelongsTo: function loadBelongsTo(mapper, def, records, __opts) {
var self = this;
var relationDef = def.getRelation();
if (isObject(records) && !isArray(records)) {
var _ret = function () {
var record = records;
return {
v: self.find(relationDef, self.makeBelongsToForeignKey(mapper, def, record), __opts).then(function (relatedItem) {
def.setLocalField(record, relatedItem);
})
};
}();
if ((typeof _ret === 'undefined' ? 'undefined' : babelHelpers.typeof(_ret)) === "object") return _ret.v;
} else {
var keys = records.map(function (record) {
return self.makeBelongsToForeignKey(mapper, def, record);
}).filter(function (key) {
return key;
});
return self.findAll(relationDef, {
where: babelHelpers.defineProperty({}, relationDef.idAttribute, {
'in': keys
})
}, __opts).then(function (relatedItems) {
records.forEach(function (record) {
relatedItems.forEach(function (relatedItem) {
if (relatedItem[relationDef.idAttribute] === record[def.foreignKey]) {
def.setLocalField(record, relatedItem);
}
});
});
});
}
},
/**
* Retrieve the record with the given primary key.

@@ -987,4 +701,4 @@ *

var self = this;
var record = undefined,
op = undefined;
var record = void 0,
op = void 0;
opts || (opts = {});

@@ -1027,3 +741,3 @@ opts.with || (opts.with = []);

var relatedMapper = def.getRelation();
var task = undefined;
var task = void 0;

@@ -1068,6 +782,4 @@ if (def.foreignKey && (def.type === 'hasOne' || def.type === 'hasMany')) {

}).then(function () {
var result = {
data: record,
found: record ? 1 : 0
};
var result = new Adapter.Response(record, {}, 'find');
result.found = record ? 1 : 0;
result = self.getOpt('raw', opts) ? result : result.data;

@@ -1113,3 +825,3 @@

var records = [];
var op = undefined;
var op = void 0;
var relationList = mapper.relationList || [];

@@ -1146,3 +858,3 @@ var tasks = [self.waitForTable(mapper, opts)];

var idAttribute = mapper.idAttribute;
var task = undefined;
var task = void 0;
if (def.foreignKey && (def.type === 'hasOne' || def.type === 'hasMany')) {

@@ -1214,6 +926,4 @@ if (def.type === 'hasMany') {

records || (records = []);
var result = {
data: records,
found: records.length
};
var result = new Adapter.Response(records, {}, 'findAll');
result.found = records.length;
result = self.getOpt('raw', opts) ? result : result.data;

@@ -1252,49 +962,2 @@

/**
* Resolve the value of the specified option based on the given options and
* this adapter's settings.
*
* @name RethinkDBAdapter#getOpt
* @method
* @param {string} opt The name of the option.
* @param {Object} [opts] Configuration options.
* @return {*} The value of the specified option.
*/
getOpt: function getOpt(opt, opts) {
opts || (opts = {});
return isUndefined(opts[opt]) ? plainCopy(this[opt]) : plainCopy(opts[opt]);
},
/**
* Logging utility method.
*
* @name RethinkDBAdapter#log
* @method
*/
log: function log(level) {
for (var _len4 = arguments.length, args = Array(_len4 > 1 ? _len4 - 1 : 0), _key4 = 1; _key4 < _len4; _key4++) {
args[_key4 - 1] = arguments[_key4];
}
if (level && !args.length) {
args.push(level);
level = 'debug';
}
if (level === 'debug' && !this.debug) {
return;
}
var prefix = level.toUpperCase() + ': (RethinkDBAdapter)';
if (console[level]) {
var _console;
(_console = console)[level].apply(_console, [prefix].concat(args));
} else {
var _console2;
(_console2 = console).log.apply(_console2, [prefix].concat(args));
}
},
/**
* Apply the given update to the record with the specified primary key.

@@ -1318,3 +981,3 @@ *

opts || (opts = {});
var op = undefined;
var op = void 0;

@@ -1332,3 +995,3 @@ return self.waitForTable(mapper, opts).then(function () {

}).then(function (cursor) {
var record = undefined;
var record = void 0;
self._handleErrors(cursor);

@@ -1340,5 +1003,3 @@ if (cursor && cursor.changes && cursor.changes.length && cursor.changes[0].new_val) {

}
var result = {};
fillIn(result, cursor);
result.data = record;
var result = new Adapter.Response(record, cursor, 'update');
result.updated = 1;

@@ -1385,3 +1046,3 @@ result = self.getOpt('raw', opts) ? result : result.data;

opts || (opts = {});
var op = undefined;
var op = void 0;

@@ -1406,5 +1067,3 @@ return self.waitForTable(mapper, opts).then(function () {

}
var result = {};
fillIn(result, cursor);
result.data = records;
var result = new Adapter.Response(records, cursor, 'update');
result.updated = records.length;

@@ -1441,3 +1100,3 @@ result = self.getOpt('raw', opts) ? result : result.data;

opts || (opts = {});
var op = undefined;
var op = void 0;
var idAttribute = mapper.idAttribute;

@@ -1464,3 +1123,3 @@

}).then(function (cursor) {
var updatedRecords = undefined;
var updatedRecords = void 0;
self._handleErrors(cursor);

@@ -1472,5 +1131,3 @@ if (cursor && cursor.changes && cursor.changes.length) {

}
var result = {};
fillIn(result, cursor);
result.data = updatedRecords || [];
var result = new Adapter.Response(updatedRecords || [], cursor, 'update');
result.updated = result.data.length;

@@ -1477,0 +1134,0 @@ result = self.getOpt('raw', opts) ? result : result.data;

{
"name": "js-data-rethinkdb",
"description": "RethinkDB adapter for js-data.",
"version": "3.0.0-alpha.7",
"version": "3.0.0-alpha.8",
"homepage": "https://github.com/js-data/js-data-rethinkdb",

@@ -36,5 +36,6 @@ "repository": {

"scripts": {
"doc": "jsdoc -c conf.json src && node scripts/cleanup.js",
"lint": "repo-tools lint src/index.js mocha.start.js test/**/*.js scripts/**.js",
"bundle": "rollup -c rollup.config.js -f cjs -o dist/js-data-rethinkdb.js -m dist/js-data-rethinkdb.js.map src/index.js",
"lint": "standard src/index.js mocha.start.js test/**/*.js scripts/**.js",
"doc": "jsdoc -c conf.json src node_modules/js-data-adapter/src && node scripts/cleanup.js",
"watch": "watch \"npm run bundle\" src/",
"build": "npm run lint && npm run bundle",

@@ -44,15 +45,16 @@ "mocha": "mocha -t 30000 -R dot -r source-map-support/register mocha.start.js",

"test": "npm run build && npm run cover",
"release": "npm test && npm run doc && node scripts/authors.js",
"repo-tools": "repo-tools updates && repo-tools changelog && repo-tools authors",
"release": "npm test && npm run doc && npm run repo-tools",
"ci": "npm run test && cat coverage/lcov.info | coveralls || true && cat ./coverage/lcov.info | codacy-coverage || true"
},
"dependencies": {
"mout": "0.11.1"
"js-data-adapter": "0.1.0",
"mout": "0.12.0"
},
"peerDependencies": {
"js-data": "^3.0.0-alpha.15",
"js-data": "^3.0.0-alpha.16",
"rethinkdbdash": ">=1.15.0"
},
"devDependencies": {
"babel-core": "6.6.4",
"babel-eslint": "5.0.0",
"babel-core": "6.6.5",
"babel-polyfill": "6.6.1",

@@ -66,2 +68,3 @@ "babel-preset-es2015-rollup": "1.1.1",

"js-data-adapter-tests": "^2.0.0-alpha.13",
"js-data-repo-tools": "0.2.0",
"jsdoc": "3.4.0",

@@ -73,4 +76,4 @@ "mocha": "2.4.5",

"source-map-support": "0.4.0",
"standard": "6.0.7"
"watch": "0.17.1"
}
}

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet