diff options
author | 2020-11-16 00:10:28 +0100 | |
---|---|---|
committer | 2020-11-16 00:10:28 +0100 | |
commit | e06ec920f7a5d784e674c4c4b4e6d1da3dc7391d (patch) | |
tree | 55713f725f77b44ebfec86e4eec3ce33e71458ca /node_modules/mquery/lib/collection | |
download | website_creator-e06ec920f7a5d784e674c4c4b4e6d1da3dc7391d.tar.gz website_creator-e06ec920f7a5d784e674c4c4b4e6d1da3dc7391d.tar.bz2 website_creator-e06ec920f7a5d784e674c4c4b4e6d1da3dc7391d.zip |
api, login, auth
Diffstat (limited to 'node_modules/mquery/lib/collection')
-rw-r--r-- | node_modules/mquery/lib/collection/collection.js | 46 | ||||
-rw-r--r-- | node_modules/mquery/lib/collection/index.js | 13 | ||||
-rw-r--r-- | node_modules/mquery/lib/collection/node.js | 151 |
3 files changed, 210 insertions, 0 deletions
diff --git a/node_modules/mquery/lib/collection/collection.js b/node_modules/mquery/lib/collection/collection.js new file mode 100644 index 0000000..0f39c76 --- /dev/null +++ b/node_modules/mquery/lib/collection/collection.js @@ -0,0 +1,46 @@ +'use strict'; + +/** + * methods a collection must implement + */ + +var methods = [ + 'find', + 'findOne', + 'update', + 'updateMany', + 'updateOne', + 'replaceOne', + 'remove', + 'count', + 'distinct', + 'findAndModify', + 'aggregate', + 'findStream', + 'deleteOne', + 'deleteMany' +]; + +/** + * Collection base class from which implementations inherit + */ + +function Collection() {} + +for (var i = 0, len = methods.length; i < len; ++i) { + var method = methods[i]; + Collection.prototype[method] = notImplemented(method); +} + +module.exports = exports = Collection; +Collection.methods = methods; + +/** + * creates a function which throws an implementation error + */ + +function notImplemented(method) { + return function() { + throw new Error('collection.' + method + ' not implemented'); + }; +} diff --git a/node_modules/mquery/lib/collection/index.js b/node_modules/mquery/lib/collection/index.js new file mode 100644 index 0000000..1992e20 --- /dev/null +++ b/node_modules/mquery/lib/collection/index.js @@ -0,0 +1,13 @@ +'use strict'; + +var env = require('../env'); + +if ('unknown' == env.type) { + throw new Error('Unknown environment'); +} + +module.exports = + env.isNode ? require('./node') : + env.isMongo ? require('./collection') : + require('./collection'); + diff --git a/node_modules/mquery/lib/collection/node.js b/node_modules/mquery/lib/collection/node.js new file mode 100644 index 0000000..cc07d60 --- /dev/null +++ b/node_modules/mquery/lib/collection/node.js @@ -0,0 +1,151 @@ +'use strict'; + +/** + * Module dependencies + */ + +var Collection = require('./collection'); +var utils = require('../utils'); + +function NodeCollection(col) { + this.collection = col; + this.collectionName = col.collectionName; +} + +/** + * inherit from collection base class + */ + +utils.inherits(NodeCollection, Collection); + +/** + * find(match, options, function(err, docs)) + */ + +NodeCollection.prototype.find = function(match, options, cb) { + this.collection.find(match, options, function(err, cursor) { + if (err) return cb(err); + + try { + cursor.toArray(cb); + } catch (error) { + cb(error); + } + }); +}; + +/** + * findOne(match, options, function(err, doc)) + */ + +NodeCollection.prototype.findOne = function(match, options, cb) { + this.collection.findOne(match, options, cb); +}; + +/** + * count(match, options, function(err, count)) + */ + +NodeCollection.prototype.count = function(match, options, cb) { + this.collection.count(match, options, cb); +}; + +/** + * distinct(prop, match, options, function(err, count)) + */ + +NodeCollection.prototype.distinct = function(prop, match, options, cb) { + this.collection.distinct(prop, match, options, cb); +}; + +/** + * update(match, update, options, function(err[, result])) + */ + +NodeCollection.prototype.update = function(match, update, options, cb) { + this.collection.update(match, update, options, cb); +}; + +/** + * update(match, update, options, function(err[, result])) + */ + +NodeCollection.prototype.updateMany = function(match, update, options, cb) { + this.collection.updateMany(match, update, options, cb); +}; + +/** + * update(match, update, options, function(err[, result])) + */ + +NodeCollection.prototype.updateOne = function(match, update, options, cb) { + this.collection.updateOne(match, update, options, cb); +}; + +/** + * replaceOne(match, update, options, function(err[, result])) + */ + +NodeCollection.prototype.replaceOne = function(match, update, options, cb) { + this.collection.replaceOne(match, update, options, cb); +}; + +/** + * deleteOne(match, options, function(err[, result]) + */ + +NodeCollection.prototype.deleteOne = function(match, options, cb) { + this.collection.deleteOne(match, options, cb); +}; + +/** + * deleteMany(match, options, function(err[, result]) + */ + +NodeCollection.prototype.deleteMany = function(match, options, cb) { + this.collection.deleteMany(match, options, cb); +}; + +/** + * remove(match, options, function(err[, result]) + */ + +NodeCollection.prototype.remove = function(match, options, cb) { + this.collection.remove(match, options, cb); +}; + +/** + * findAndModify(match, update, options, function(err, doc)) + */ + +NodeCollection.prototype.findAndModify = function(match, update, options, cb) { + var sort = Array.isArray(options.sort) ? options.sort : []; + this.collection.findAndModify(match, sort, update, options, cb); +}; + +/** + * var stream = findStream(match, findOptions, streamOptions) + */ + +NodeCollection.prototype.findStream = function(match, findOptions, streamOptions) { + return this.collection.find(match, findOptions).stream(streamOptions); +}; + +/** + * var cursor = findCursor(match, findOptions) + */ + +NodeCollection.prototype.findCursor = function(match, findOptions) { + return this.collection.find(match, findOptions); +}; + +/** + * aggregation(operators..., function(err, doc)) + * TODO + */ + +/** + * Expose + */ + +module.exports = exports = NodeCollection; |