1.0.0-5 • Published 5 years ago

@bnoufel/formvalidator v1.0.0-5

Weekly downloads
1
License
MIT
Repository
github
Last release
5 years ago

FormValidator

Installation

FormValidator est un module Node.js disponible sur npm.

npm i --save @bnoufel/formvalidator

Introduction

FormValidator est une librairie NodeJs. Elle a été écrite en TypeScript.

Voici un exemple d'utilisation en TypeScript:

FormValidator prend deux paramètres. Le premier prend un JSON de type IFormValidator Interface.

Le deuxième, une langue de votre choix (en, fr pris en charge) pour la gestion des erreurs Erreur.

email, login et password sont les noms des champs ex: <input name="login" />

import FormValidator, {
	IFormValidator,
	ResFormValidator,
	ErrorFormValidator
} from '@bnoufel/formvalidator';

const form: IFormValidator = {
    email: {
        required: true,
        type: 'email',
        value: 'test@gmail.com'
    },
    login: {
        required: true,
        type: 'text',
        value: 'bnoufel'
    },
    password: {
        required: true,
        type: 'password',
        value: 'myPassword123@',
        confirmPassword: 'myPassword123@',
        hash: 'bcrypt',
        regex: {
        	uppercase: true,
        	lowercase: true,
        	number: true,
        	specialCharacters: true,
        	length: {
        		min: 12,
        		max: 128
        	}
        }
    }
};

const formData = new FormValidator(form, 'en');
formData.checkAll()
    .then((res: ResFormValidator) => {
        console.log(`Mon mot de passe hash avec bcrypt est : ${res[0].password.hash}`);
    })
    .catch((err: ErrorFormValidator) => {
        console.error(err.message);
    })

Interface

type HashFunction = (s: string) => string;

export interface IFormValidator {
    [key: string]: IFormValidatorKey;
}

export interface IFormValidatorKey {
    required: boolean;
    lang?: string;
    value: string | null;
    confirmPassword?: string;
    type: string;
    hash?: string | HashFunction;
    salt?: number;
    regex?: IRegexFormValidator | RegExp;
    length?: ILengthFormValidator;
    error?: string;
}

export interface ILengthFormValidator {
    min: number;
    max: number;
    error?: string;
}

/**
* true = obligatoire
* false = non obligatoire
* null = interdit
*/
export interface IRegexFormValidator {
    uppercase: boolean | null;
    lowercase: boolean | null;
    number: boolean | null;
    specialCharacters: boolean | null;
    length?: ILengthFormValidator;
    error?: string;
}

Erreur

Les erreurs peuvent être gérées manuellement, ou automatiquement avec un fichier lang ex: lang/fr.json

Gestion d'erreur basique :

{
  "password.required" : "Le mot de passe est requis.",
  "email.required" : "L'email est requis.",
  "hash.required" : "Le type de hash est obligatoire.",
  "hash.unknown" : "Le type de hash est inconnu.",
  "unknown.error": "Une erreur inconnue est survenue.",
  "password.regex.wrong": "Le mot de passe doit contenir au minimum une majuscule, une minuscule, un chiffre et un caractère spécial.",
  "email.regex.wrong": "Le format de l'email n'est pas valide.",
  "regex.wrong": "Le format du champ n'est pas valide.",
  "password.notmatch": "Les mots de passe ne sont pas identiques.",
  "password.regex.len.wrong": "Le mot de passe doit être entre 2 et 128 caractères.",
  "email.regex.format.wrong": "Seulement des regex de type RegExp et object sont valides.",
  "regex.format.wrong": "Seulement des regex de type RegExp sont valides.",
  "required": "Le champ est obliatoire.",
  "regex.upper.denied": "Les majuscules sont interdites.",
  "regex.lower.denied": "Les minuscules sont interdites.",
  "regex.number.denied": "Les chiffres sont interdits.",
  "regex.special.denied": "Les caractères spéciaux sont interdits.",
  "length.error": "Le champ doit respecter le nombre de caractères."
}

Vous pouvez reécrire n'importe quelle erreur.

1.0.0-5

5 years ago

1.0.0-4

5 years ago

1.0.0-3

5 years ago

1.0.0-2

5 years ago

1.0.0-1

5 years ago

1.0.8-9

5 years ago

1.0.8-8

5 years ago

1.0.8-7

5 years ago

1.0.8-6

5 years ago

1.0.8-5

5 years ago

1.0.8-4

5 years ago

1.0.8-3

5 years ago

1.0.8-2

5 years ago

1.0.8-11

5 years ago

1.0.8-10

5 years ago

1.0.8-1

5 years ago

1.0.8

5 years ago

1.0.7-1

5 years ago

1.0.7

5 years ago

1.0.6

5 years ago

1.0.5

5 years ago

1.0.4

5 years ago

1.0.3

5 years ago

1.0.2

5 years ago

1.0.1

5 years ago

1.0.0

5 years ago