Skip to content

Commit

Permalink
Stable Version 0.4.0
Browse files Browse the repository at this point in the history
  • Loading branch information
jmdobry committed Jul 2, 2015
1 parent a590f30 commit 66fc06b
Show file tree
Hide file tree
Showing 7 changed files with 71 additions and 104 deletions.
6 changes: 6 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,9 @@
##### 0.4.0 - 02 July 2015

Stable Version 0.4.0

Upgraded dependencies

##### 0.3.0 - 02 June 2015

###### Backwards compatible bug fixes
Expand Down
4 changes: 0 additions & 4 deletions Gruntfile.js
Original file line number Diff line number Diff line change
Expand Up @@ -49,12 +49,8 @@ module.exports = function (grunt) {
},
externals: [
'mout/string/underscore',
'mout/object/keys',
'mout/array/map',
'mout/lang/isEmpty',
'mout/object/omit',
'js-data',
'js-data-schema',
'mongodb',
'bson'
],
Expand Down
122 changes: 42 additions & 80 deletions dist/js-data-mongodb.js
Original file line number Diff line number Diff line change
Expand Up @@ -51,39 +51,19 @@ module.exports =

var _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ('value' in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })();

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }

function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }

var _mongodb = __webpack_require__(2);

var _bson = __webpack_require__(3);

var _jsData = __webpack_require__(4);

var _jsData2 = _interopRequireDefault(_jsData);

var _moutStringUnderscore = __webpack_require__(5);

var _moutStringUnderscore2 = _interopRequireDefault(_moutStringUnderscore);

var _moutObjectKeys = __webpack_require__(1);

var _moutObjectKeys2 = _interopRequireDefault(_moutObjectKeys);

var _moutObjectOmit = __webpack_require__(6);

var _moutObjectOmit2 = _interopRequireDefault(_moutObjectOmit);

var _moutArrayMap = __webpack_require__(7);

var _moutArrayMap2 = _interopRequireDefault(_moutArrayMap);

var _moutLangIsEmpty = __webpack_require__(8);

var _moutLangIsEmpty2 = _interopRequireDefault(_moutLangIsEmpty);

var DSUtils = _jsData2['default'].DSUtils;
var mongodb = __webpack_require__(1);
var MongoClient = mongodb.MongoClient;
var bson = __webpack_require__(2);
var ObjectID = bson.ObjectID;
var JSData = __webpack_require__(3);
var underscore = __webpack_require__(4);
var map = __webpack_require__(5);
var DSUtils = JSData.DSUtils;
var keys = DSUtils.keys;
var omit = DSUtils.omit;
var isEmpty = DSUtils.isEmpty;
var deepMixIn = DSUtils.deepMixIn;
var forEach = DSUtils.forEach;
var contains = DSUtils.contains;
Expand Down Expand Up @@ -111,7 +91,7 @@ module.exports =
this.defaults = new Defaults();
deepMixIn(this.defaults, uri);
this.client = new DSUtils.Promise(function (resolve, reject) {
_mongodb.MongoClient.connect(uri.uri, function (err, db) {
MongoClient.connect(uri.uri, function (err, db) {
return err ? reject(err) : resolve(db);
});
});
Expand All @@ -128,7 +108,7 @@ module.exports =
params = params || {};
params.where = params.where || {};

forEach((0, _moutObjectKeys2['default'])(params), function (k) {
forEach(keys(params), function (k) {
var v = params[k];
if (!contains(reserved, k)) {
if (isObject(v)) {
Expand All @@ -144,7 +124,7 @@ module.exports =

var query = {};

if (!(0, _moutLangIsEmpty2['default'])(params.where)) {
if (!isEmpty(params.where)) {
forOwn(params.where, function (criteria, field) {
if (!isObject(criteria)) {
params.where[field] = {
Expand Down Expand Up @@ -303,11 +283,11 @@ module.exports =
return new DSUtils.Promise(function (resolve, reject) {
var params = {};
params[resourceConfig.idAttribute] = id;
if (resourceConfig.idAttribute === '_id' && typeof id === 'string' && _bson.ObjectID.isValid(id)) {
params[resourceConfig.idAttribute] = _bson.ObjectID.createFromHexString(id);
if (resourceConfig.idAttribute === '_id' && typeof id === 'string' && ObjectID.isValid(id)) {
params[resourceConfig.idAttribute] = ObjectID.createFromHexString(id);
}
options.fields = options.fields || {};
client.collection(resourceConfig.table || (0, _moutStringUnderscore2['default'])(resourceConfig.name)).findOne(params, options, function (err, r) {
client.collection(resourceConfig.table || underscore(resourceConfig.name)).findOne(params, options, function (err, r) {
if (err) {
reject(err);
} else if (!r) {
Expand All @@ -330,7 +310,7 @@ module.exports =
return this.getClient().then(function (client) {
return new DSUtils.Promise(function (resolve, reject) {
options.fields = options.fields || {};
client.collection(resourceConfig.table || (0, _moutStringUnderscore2['default'])(resourceConfig.name)).find(query, options).toArray(function (err, r) {
client.collection(resourceConfig.table || underscore(resourceConfig.name)).find(query, options).toArray(function (err, r) {
if (err) {
reject(err);
} else {
Expand All @@ -346,10 +326,10 @@ module.exports =
var _this3 = this;

options = this.origify(options);
attrs = removeCircular((0, _moutObjectOmit2['default'])(attrs, resourceConfig.relationFields || []));
attrs = removeCircular(omit(attrs, resourceConfig.relationFields || []));
return this.getClient().then(function (client) {
return new DSUtils.Promise(function (resolve, reject) {
var collection = client.collection(resourceConfig.table || (0, _moutStringUnderscore2['default'])(resourceConfig.name));
var collection = client.collection(resourceConfig.table || underscore(resourceConfig.name));
var method = collection.insertOne ? DSUtils.isArray(attrs) ? 'insertMany' : 'insertOne' : 'insert';
collection[method](attrs, options, function (err, r) {
if (err) {
Expand All @@ -368,18 +348,18 @@ module.exports =
value: function update(resourceConfig, id, attrs, options) {
var _this4 = this;

attrs = removeCircular((0, _moutObjectOmit2['default'])(attrs, resourceConfig.relationFields || []));
attrs = removeCircular(omit(attrs, resourceConfig.relationFields || []));
options = this.origify(options);
return this.find(resourceConfig, id, options).then(function () {
return _this4.getClient();
}).then(function (client) {
return new DSUtils.Promise(function (resolve, reject) {
var params = {};
params[resourceConfig.idAttribute] = id;
if (resourceConfig.idAttribute === '_id' && typeof id === 'string' && _bson.ObjectID.isValid(id)) {
params[resourceConfig.idAttribute] = _bson.ObjectID.createFromHexString(id);
if (resourceConfig.idAttribute === '_id' && typeof id === 'string' && ObjectID.isValid(id)) {
params[resourceConfig.idAttribute] = ObjectID.createFromHexString(id);
}
var collection = client.collection(resourceConfig.table || (0, _moutStringUnderscore2['default'])(resourceConfig.name));
var collection = client.collection(resourceConfig.table || underscore(resourceConfig.name));
collection[collection.updateOne ? 'updateOne' : 'update'](params, { $set: attrs }, options, function (err) {
if (err) {
reject(err);
Expand All @@ -398,7 +378,7 @@ module.exports =
var _this5 = this;

var ids = [];
attrs = removeCircular((0, _moutObjectOmit2['default'])(attrs, resourceConfig.relationFields || []));
attrs = removeCircular(omit(attrs, resourceConfig.relationFields || []));
options = this.origify(options ? copy(options) : {});
var _options = copy(options);
_options.multi = true;
Expand All @@ -407,15 +387,15 @@ module.exports =
queryOptions.$set = attrs;
var query = _this5.getQuery(resourceConfig, params);
return _this5.findAll(resourceConfig, params, options).then(function (items) {
ids = (0, _moutArrayMap2['default'])(items, function (item) {
ids = map(items, function (item) {
var id = item[resourceConfig.idAttribute];
if (resourceConfig.idAttribute === '_id' && typeof id === 'string' && _bson.ObjectID.isValid(id)) {
return _bson.ObjectID.createFromHexString(id);
if (resourceConfig.idAttribute === '_id' && typeof id === 'string' && ObjectID.isValid(id)) {
return ObjectID.createFromHexString(id);
}
return id;
});
return new DSUtils.Promise(function (resolve, reject) {
var collection = client.collection(resourceConfig.table || (0, _moutStringUnderscore2['default'])(resourceConfig.name));
var collection = client.collection(resourceConfig.table || underscore(resourceConfig.name));
collection[collection.updateMany ? 'updateMany' : 'update'](query, queryOptions, _options, function (err) {
if (err) {
reject(err);
Expand All @@ -441,10 +421,10 @@ module.exports =
return new DSUtils.Promise(function (resolve, reject) {
var params = {};
params[resourceConfig.idAttribute] = id;
if (resourceConfig.idAttribute === '_id' && typeof id === 'string' && _bson.ObjectID.isValid(id)) {
params[resourceConfig.idAttribute] = _bson.ObjectID.createFromHexString(id);
if (resourceConfig.idAttribute === '_id' && typeof id === 'string' && ObjectID.isValid(id)) {
params[resourceConfig.idAttribute] = ObjectID.createFromHexString(id);
}
var collection = client.collection(resourceConfig.table || (0, _moutStringUnderscore2['default'])(resourceConfig.name));
var collection = client.collection(resourceConfig.table || underscore(resourceConfig.name));
collection[collection.deleteOne ? 'deleteOne' : 'remove'](params, options, function (err) {
if (err) {
reject(err);
Expand All @@ -465,7 +445,7 @@ module.exports =
deepMixIn(options, _this6.getQueryOptions(resourceConfig, params));
var query = _this6.getQuery(resourceConfig, params);
return new DSUtils.Promise(function (resolve, reject) {
var collection = client.collection(resourceConfig.table || (0, _moutStringUnderscore2['default'])(resourceConfig.name));
var collection = client.collection(resourceConfig.table || underscore(resourceConfig.name));
collection[collection.deleteMany ? 'deleteMany' : 'remove'](query, options, function (err) {
if (err) {
reject(err);
Expand All @@ -486,51 +466,33 @@ module.exports =

/***/ },
/* 1 */
/***/ function(module, exports, __webpack_require__) {

module.exports = require("mout/object/keys");

/***/ },
/* 2 */
/***/ function(module, exports, __webpack_require__) {
/***/ function(module, exports) {

module.exports = require("mongodb");

/***/ },
/* 3 */
/***/ function(module, exports, __webpack_require__) {
/* 2 */
/***/ function(module, exports) {

module.exports = require("bson");

/***/ },
/* 4 */
/***/ function(module, exports, __webpack_require__) {
/* 3 */
/***/ function(module, exports) {

module.exports = require("js-data");

/***/ },
/* 5 */
/***/ function(module, exports, __webpack_require__) {
/* 4 */
/***/ function(module, exports) {

module.exports = require("mout/string/underscore");

/***/ },
/* 6 */
/***/ function(module, exports, __webpack_require__) {

module.exports = require("mout/object/omit");

/***/ },
/* 7 */
/***/ function(module, exports, __webpack_require__) {
/* 5 */
/***/ function(module, exports) {

module.exports = require("mout/array/map");

/***/ },
/* 8 */
/***/ function(module, exports, __webpack_require__) {

module.exports = require("mout/lang/isEmpty");

/***/ }
/******/ ]);
3 changes: 2 additions & 1 deletion mocha.start.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,9 @@
var assert = require('chai').assert;
var mocha = require('mocha');
var sinon = require('sinon');
var DSMongoDBAdapter = require('./');
var JSData = require('js-data');
JSData.DSUtils.Promise = require('bluebird');
var DSMongoDBAdapter = require('./');

var adapter, store, DSUtils, DSErrors, User, Post, Comment;

Expand Down
20 changes: 10 additions & 10 deletions package.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"name": "js-data-mongodb",
"description": "MongoDB adapter for js-data.",
"version": "0.3.0",
"version": "0.4.0",
"homepage": "http://www.js-data.io/docs/dsmongodbadapter",
"repository": {
"type": "git",
Expand All @@ -27,31 +27,31 @@
"mongodb"
],
"devDependencies": {
"babel-core": "5.4.7",
"babel-loader": "5.1.3",
"chai": "2.3.0",
"babel-core": "5.6.15",
"babel-loader": "5.2.2",
"bluebird": "^2.9.30",
"chai": "3.0.0",
"grunt": "0.4.5",
"grunt-contrib-watch": "0.6.1",
"grunt-karma-coveralls": "2.5.3",
"grunt-mocha-test": "0.12.7",
"grunt-webpack": "1.0.8",
"grunt-webpack": "1.0.11",
"jit-grunt": "0.9.1",
"jshint": "2.8.0",
"jshint-loader": "0.8.3",
"sinon": "1.14.1",
"time-grunt": "1.2.1",
"webpack": "1.9.10",
"webpack-dev-server": "1.9.0"
"webpack-dev-server": "1.10.1"
},
"scripts": {
"test": "grunt test"
},
"dependencies": {
"bson": "0.3.2",
"bson": "0.3.x",
"mout": "0.11.0"
},
"peerDependencies": {
"js-data": ">=1.5.7",
"mongodb": ">= 1.3.x"
"js-data": ">=2.0.0",
"mongodb": ">=1.3.x"
}
}
17 changes: 8 additions & 9 deletions src/index.js
Original file line number Diff line number Diff line change
@@ -1,13 +1,12 @@
import { MongoClient } from 'mongodb';
import { ObjectID } from 'bson';
import JSData from 'js-data';
import underscore from 'mout/string/underscore';
import keys from 'mout/object/keys';
import omit from 'mout/object/omit';
import map from 'mout/array/map';
import isEmpty from 'mout/lang/isEmpty';
let mongodb = require('mongodb');
let MongoClient = mongodb.MongoClient;
let bson = require('bson');
let ObjectID = bson.ObjectID;
let JSData = require('js-data');
let underscore = require('mout/string/underscore');
let map = require('mout/array/map');
let { DSUtils } = JSData;
let { deepMixIn, forEach, contains, isObject, isString, copy, forOwn, removeCircular } = DSUtils;
let { keys, omit, isEmpty, deepMixIn, forEach, contains, isObject, isString, copy, forOwn, removeCircular } = DSUtils;

let reserved = [
'orderBy',
Expand Down
3 changes: 3 additions & 0 deletions test/create.spec.js
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,9 @@ describe('DSMongoDBAdapter#create', function () {
return adapter.find(User, id).catch(function (err) {
assert.equal(err.message, 'Not Found!');
});
}).catch(function (err) {
console.log(err);
throw err;
});
});
});

0 comments on commit 66fc06b

Please sign in to comment.