I am using validate to validate input, and I need to validate an input that has to be one of the numbers in my arr.
const arr = [1, 2, 4, 5, 9, 14];
const p = {
System: {
type: Number,
enum: arr,
required: true
}
};
If I try enum: arr, then it takes the entire array and not just one of the elements.
Question
Is it possible to get validate to use one of the numbers from arr?
import Schema from 'validate'
const arr = [1, 2, 4, 5, 9, 14];
const p_schema = new Schema({
System: {
type: Number,
enum: [...arr],
required: true
}
});
let p = {
System: 9
}
const errors = p_schema.validate(p)
When you specify enum rule, the value of System must be one of the values in the array.
The problem with your code however is that you didn't call Scheme from the validate package, so here what you need to change:
import Schema from "validate";
const arr = [1, 2, 4, 5, 9, 14];
const v = new Schema({
System: {
type: Number,
enum: arr,
required: true,
},
});
// For testing
const error = v.validate({ System: 3 });