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.
		
		
		
		
		
			
		
			
				
					
					
						
							59 lines
						
					
					
						
							1.1 KiB
						
					
					
				
			
		
		
	
	
							59 lines
						
					
					
						
							1.1 KiB
						
					
					
				'use strict'; | 
						|
 | 
						|
const Hoek = require('@hapi/hoek'); | 
						|
 | 
						|
const Ref = require('./ref'); | 
						|
 | 
						|
 | 
						|
const internals = {}; | 
						|
 | 
						|
 | 
						|
exports.schema = function (Joi, config) { | 
						|
 | 
						|
    if (config !== undefined && config !== null && typeof config === 'object') { | 
						|
 | 
						|
        if (config.isJoi) { | 
						|
            return config; | 
						|
        } | 
						|
 | 
						|
        if (Array.isArray(config)) { | 
						|
            return Joi.alternatives().try(config); | 
						|
        } | 
						|
 | 
						|
        if (config instanceof RegExp) { | 
						|
            return Joi.string().regex(config); | 
						|
        } | 
						|
 | 
						|
        if (config instanceof Date) { | 
						|
            return Joi.date().valid(config); | 
						|
        } | 
						|
 | 
						|
        return Joi.object().keys(config); | 
						|
    } | 
						|
 | 
						|
    if (typeof config === 'string') { | 
						|
        return Joi.string().valid(config); | 
						|
    } | 
						|
 | 
						|
    if (typeof config === 'number') { | 
						|
        return Joi.number().valid(config); | 
						|
    } | 
						|
 | 
						|
    if (typeof config === 'boolean') { | 
						|
        return Joi.boolean().valid(config); | 
						|
    } | 
						|
 | 
						|
    if (Ref.isRef(config)) { | 
						|
        return Joi.valid(config); | 
						|
    } | 
						|
 | 
						|
    Hoek.assert(config === null, 'Invalid schema content:', config); | 
						|
 | 
						|
    return Joi.valid(null); | 
						|
}; | 
						|
 | 
						|
 | 
						|
exports.ref = function (id) { | 
						|
 | 
						|
    return Ref.isRef(id) ? id : Ref.create(id); | 
						|
};
 | 
						|
 |