Untitled
unknown
plain_text
a year ago
1.6 kB
12
Indexable
import Joi, { CustomHelpers } from 'joi';
interface Item {
coverDescription: string;
coverageLimit: number;
}
interface ListedItems {
contents: Item[];
personalPossessions: Item[];
}
const schema = Joi.object({
listedItems: Joi.object({
contents: Joi.array().items(
Joi.object({
coverDescription: Joi.string().required(),
coverageLimit: Joi.number().min(40000).required()
})
).required(),
personalPossessions: Joi.array().items(
Joi.object({
coverDescription: Joi.string().required(),
coverageLimit: Joi.number().min(10000).required()
})
).required()
}).required()
});
// Example data
const data: ListedItems = {
listedItems: {
contents: [
{ coverDescription: "Retail-TV", coverageLimit: 40000 },
// { coverDescription: "Retail-Laptop", coverageLimit: 30000 } // Uncomment to see validation failure
],
personalPossessions: [
{ coverDescription: "Retail-Mobile", coverageLimit: 10000 },
// { coverDescription: "Retail-Tablet", coverageLimit: 8000 } // Uncomment to see validation failure
]
}
};
// Validate data against schema
const { error, value } = schema.validate(data);
if (error) {
// Handle validation errors
console.error('Validation error:', error.details);
} else {
// Valid data
console.log('Valid data:', value);
}
Editor is loading...
Leave a Comment