12345678910111213141516171819202122232425262728293031323334353637383940414243444546 |
- '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');
- };
- }
|