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.
		
		
		
		
		
			
		
			
				
					
					
						
							29 lines
						
					
					
						
							570 B
						
					
					
				
			
		
		
	
	
							29 lines
						
					
					
						
							570 B
						
					
					
				| 'use strict';
 | |
| 
 | |
| const ObjectId = require('../driver').get().ObjectId;
 | |
| const assert = require('assert');
 | |
| 
 | |
| module.exports = function castObjectId(value) {
 | |
|   if (value == null) {
 | |
|     return value;
 | |
|   }
 | |
| 
 | |
|   if (value instanceof ObjectId) {
 | |
|     return value;
 | |
|   }
 | |
| 
 | |
|   if (value._id) {
 | |
|     if (value._id instanceof ObjectId) {
 | |
|       return value._id;
 | |
|     }
 | |
|     if (value._id.toString instanceof Function) {
 | |
|       return new ObjectId(value._id.toString());
 | |
|     }
 | |
|   }
 | |
| 
 | |
|   if (value.toString instanceof Function) {
 | |
|     return new ObjectId(value.toString());
 | |
|   }
 | |
| 
 | |
|   assert.ok(false);
 | |
| }; |