summaryrefslogtreecommitdiffstats
path: root/node_modules/mquery/lib/collection/collection.js
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/mquery/lib/collection/collection.js')
-rw-r--r--node_modules/mquery/lib/collection/collection.js46
1 files changed, 46 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');
+ };
+}