20 lines
		
	
	
		
			562 B
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			20 lines
		
	
	
		
			562 B
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
| import type { ErrorObject } from 'ajv'
 | |
| 
 | |
| const knownErrorKeywords = ['minLength', 'maxLength', 'format']
 | |
| 
 | |
| export const getErrorTranslationKey = (error: ErrorObject): string => {
 | |
|   if (knownErrorKeywords.includes(error?.keyword)) {
 | |
|     if (error.keyword === 'minLength' && error.params.limit === 1) {
 | |
|       return 'errors:required'
 | |
|     }
 | |
|     if (error.keyword === 'format') {
 | |
|       if (error.params.format === 'email') {
 | |
|         return 'errors:email'
 | |
|       }
 | |
|       return 'errors:invalid'
 | |
|     }
 | |
|     return `errors:${error.keyword}`
 | |
|   }
 | |
|   return 'errors:invalid'
 | |
| }
 |