diff --git a/CHANGELOG.md b/CHANGELOG.md index 77cf475..6aab4f0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -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 diff --git a/Gruntfile.js b/Gruntfile.js index eae3f12..5d94a05 100644 --- a/Gruntfile.js +++ b/Gruntfile.js @@ -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' ], diff --git a/dist/js-data-mongodb.js b/dist/js-data-mongodb.js index efd5d26..5de41a3 100644 --- a/dist/js-data-mongodb.js +++ b/dist/js-data-mongodb.js @@ -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; @@ -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); }); }); @@ -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)) { @@ -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] = { @@ -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) { @@ -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 { @@ -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) { @@ -368,7 +348,7 @@ 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(); @@ -376,10 +356,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.updateOne ? 'updateOne' : 'update'](params, { $set: attrs }, options, function (err) { if (err) { reject(err); @@ -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; @@ -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); @@ -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); @@ -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); @@ -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"); - /***/ } /******/ ]); \ No newline at end of file diff --git a/mocha.start.js b/mocha.start.js index ad66d03..8114cce 100644 --- a/mocha.start.js +++ b/mocha.start.js @@ -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; diff --git a/package.json b/package.json index 1cf0820..3b95631 100644 --- a/package.json +++ b/package.json @@ -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", @@ -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" } } diff --git a/src/index.js b/src/index.js index 0957f25..7a68086 100644 --- a/src/index.js +++ b/src/index.js @@ -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', diff --git a/test/create.spec.js b/test/create.spec.js index 6a50f58..2e0dc6b 100644 --- a/test/create.spec.js +++ b/test/create.spec.js @@ -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; }); }); });