ajv-validator / ajv-validator/ajv-errors
Getting instancePath when using with ajv-keywords and uniqueItemProperties
- 主要語言
- TypeScript
- 星號
- 289
- 分支
- 21
- PR 合併指標
- 30 天內沒有已合併 PR
描述
When using alongside `ajv-keywords` and `uniqueItemProperties`, how do I get the `instancePath` of the erroneous record?
My code:
```js
import Ajv from 'ajv';
import addFormats from 'ajv-formats';
import ajvErrors from 'ajv-errors';
import ajvKeywords from 'ajv-keywords';
const ajv = new Ajv({ allErrors: true });
ajvKeywords(ajv, ['uniqueItemProperties']);
addFormats(ajv, { formats: ['date', 'email'], keywords: true });
ajvErrors(ajv);
```
… and my schema:
```js
export const employeeSchema = {
errorMessage: {
uniqueItemProperties: 'What’s going on?',
},
items: {
properties: {
firstName: {
errorMessage: { type: 'required; and must be a string' },
type: 'string',
},
lastName: {
errorMessage: { type: 'required; and must be a string' },
type: 'string',
},
email: {
format: 'email',
type: 'string',
},
},
required: [
'email',
'firstName',
'lastName',
],
type: 'object',
},
type: 'array',
uniqueItemProperties: ['email'],
};
```
And when running against the following data:
```js
[
{
email: 'dhachardy@tamu.edu',
firstName: 2,
lastName: 'Hachard',
},
{
email: 'dhachardy@tamu.edu',
firstName: 'Me',
lastName: 'Hachard',
},
]
```
… I get the following errors reported:
```json
[
{
"instancePath": "",
"schemaPath": "#/errorMessage",
"keyword": "errorMessage",
"params": {
"errors": [
{
"instancePath": "",
"schemaPath": "#/uniqueItemProperties",
"keyword": "uniqueItemProperties",
"params": {},
"message": "must pass \"uniqueItemProperties\" keyword validation",
"emUsed": true
}
]
},
"message": "What’s going on?"
}
]
```
貢獻指南
這個儲存庫沒有索引到貢獻指南
評估
這個 Issue 還沒有評估資料。