Validate against intersections of arrays and array singletons. Provide an array of allowed groups and validate it against a single intersection of a given group. Additionally, define an array of singletons and verify the input array occurs only once.
- Validate groups
- Validate singletons
npm install joi-intersection --save
A group contains array of strings.
Parameter | Type | Description |
---|---|---|
group |
[group: string] |
Allowed intersection groups |
Singletons contain arrays of strings.
Parameter | Type | Description |
---|---|---|
singleton |
[singleton: string] |
Allowed singleton |
You have to extend Joi first, then use it like other validation rules. You can also chain both rules.
import JoiBase from 'joi'
import JoiIntersection from 'joi-intersection'
import * as assert from 'assert'
const Joi = JoiBase.extend(JoiIntersection)
const schema = Joi.array().groups([
['Bob', 'Alex', 'Peter'],
['Jack', 'Mike']
])
Joi.validate(['Bob', 'Alex'], schema, error => assert.ok(error, null))
Joi.validate(['Bob', 'Jack'], schema, error => assert.notEqual(error, null))
const schema = Joi.array().singleton(['Bob', 'Alex', 'Peter'])
Joi.validate(['Bob'], schema, error => assert.ok(error, null))
Joi.validate(['Bob', 'Bob'], schema, error => assert.notEqual(error, null))
Julian Claus and contributors.
MIT