@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.
31 lines (22 loc) • 861 B
JavaScript
import createJoiSchema from './create-joi-schema.js'
const getOptionalSchema = (jsonSchema = {}) => {
const optionalSchema = {}
Object.keys(jsonSchema).forEach((key) => {
optionalSchema[key] = { ...jsonSchema[key], required: false }
})
return optionalSchema
}
export const validateCreateReq = (jsonSchema, createReq) => {
const schema = createJoiSchema(jsonSchema)
return schema.validate(createReq)
}
export const validateUpdateReq = (jsonSchema, updateReq) => {
const optionalSchema = getOptionalSchema(jsonSchema)
const schema = createJoiSchema(optionalSchema)
return schema.validate(updateReq)
}
export const validateSearchReq = (jsonSchema, searchReq) => {
const optionalSchema = getOptionalSchema(jsonSchema)
const schema = createJoiSchema(optionalSchema)
return schema.validate(searchReq)
}