objectid.js 608 B

1234567891011121314151617181920212223242526272829
  1. 'use strict';
  2. const isBsonType = require('../helpers/isBsonType');
  3. const ObjectId = require('../driver').get().ObjectId;
  4. module.exports = function castObjectId(value) {
  5. if (value == null) {
  6. return value;
  7. }
  8. if (isBsonType(value, 'ObjectID')) {
  9. return value;
  10. }
  11. if (value._id) {
  12. if (isBsonType(value._id, 'ObjectID')) {
  13. return value._id;
  14. }
  15. if (value._id.toString instanceof Function) {
  16. return new ObjectId(value._id.toString());
  17. }
  18. }
  19. if (value.toString instanceof Function) {
  20. return new ObjectId(value.toString());
  21. }
  22. return new ObjectId(value);
  23. };