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