objectid.js 546 B

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