UNPKG

@json-express/core

Version:

Zero-config JSON server with REST API, JWT authentication, HTTPS support, schema validation & search. Perfect for rapid prototyping, API mocking, and development.

30 lines (21 loc) 749 B
import Joi from 'joi' import { getConfig } from '../db/config-store.js' const createJoiSchema = (jsonSchema = {}) => { const joiFields = {} for (const [fieldName, fieldConfig] of Object.entries(jsonSchema)) { const { type, required } = fieldConfig let joiValidator if (type.toLowerCase() === 'string') { joiValidator = Joi.string() } else { joiValidator = Joi.any() } if (required === true) { joiValidator = joiValidator.required() } joiFields[fieldName] = joiValidator } const allowUnknown = getConfig('schema.validation') return Joi.object(joiFields).unknown(allowUnknown !== 'strict') } export default createJoiSchema