You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							47 lines
						
					
					
						
							785 B
						
					
					
				
			
		
		
	
	
							47 lines
						
					
					
						
							785 B
						
					
					
				| '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');
 | |
|   };
 | |
| }
 |