UNPKG

@meanie/joi-object-id

Version:

A Joi extension to validation MongoDB ObjectId formats

39 lines (33 loc) 699 B
'use strict'; /** * Dependencies */ const {Types: {ObjectId}} = require('mongoose'); /** * Extend Joi with ObjectId validation */ module.exports = Joi => ({ type: 'objectId', base: Joi.any(), messages: { objectId: 'needs to be a valid ObjectId', }, coerce(value) { //No value if (!value) { return; } //Convert string to object ID if (typeof value === 'string' && value.match(/^[0-9a-fA-F]{24}$/)) { value = new ObjectId(value); } //Return new value return {value}; }, validate(value, helpers) { if (!(value instanceof ObjectId)) { const errors = helpers.error('objectId'); return {value, errors}; } }, });