Spaces:
Sleeping
Sleeping
| ; | |
| 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); | |
| }; | |