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