Files
big-brother/api/start/validator.ts
T
2026-10-12 14:25:22 +02:00

58 lines
2.1 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
/*
|--------------------------------------------------------------------------
| Validator file
|--------------------------------------------------------------------------
|
| The validator file is used for configuring global transforms for VineJS.
| The transform below converts all VineJS date outputs from JavaScript
| Date objects to Luxon DateTime instances, so that validated dates are
| ready to use with Lucid models and other parts of the app that expect
| Luxon DateTime.
|
*/
import { DateTime } from 'luxon'
import vine, { SimpleMessagesProvider, VineDate } from '@vinejs/vine'
declare module '@vinejs/vine/types' {
interface VineGlobalTransforms {
date: DateTime
}
}
VineDate.transform((value) => DateTime.fromJSDate(value))
/**
* Error messages shown in the dashboard.
*/
vine.messagesProvider = new SimpleMessagesProvider(
{
'required': 'Le champ « {{ field }} » est obligatoire.',
'requiredWhen': 'Le champ « {{ field }} » est obligatoire pour ce type de projet.',
'string': 'Le champ « {{ field }} » doit être un texte.',
'number': 'Le champ « {{ field }} » doit être un nombre.',
'boolean': 'Le champ « {{ field }} » doit être vrai ou faux.',
'enum': 'La valeur de « {{ field }} » n’est pas autorisée.',
'regex': 'Le format de « {{ field }} » est invalide.',
'range': '« {{ field }} » doit être entre {{ min }} et {{ max }}.',
'withoutDecimals': '« {{ field }} » doit être un nombre entier.',
'minLength': '« {{ field }} » doit faire au moins {{ min }} caractères.',
'maxLength': '« {{ field }} » doit faire au plus {{ max }} caractères.',
'code.regex': 'Le code doit contenir 6 chiffres.',
'name.regex':
'Le nom ne peut contenir que des minuscules, des chiffres et des tirets (et commencer par une lettre ou un chiffre).',
'domain.regex': 'Le domaine est invalide.',
'gitUrl.regex': 'L’URL git doit commencer par https://, ssh:// ou git@.',
},
{
username: 'identifiant',
password: 'mot de passe',
code: 'code',
name: 'nom',
gitUrl: 'URL git',
port: 'port',
domain: 'domaine',
content: 'contenu',
}
)