code-caddy
v0.0.2
Published
Cette librairie propose des méthodes utilitaires compatible Javascript/Typescript. C'est une boîte à outils complète pour les développeurs JavaScript, avec des fonctionnalités variées allant de la manipulation de données (chaînes, dates, objets, tableaux)
Downloads
117
Maintainers
Readme
Code Caddy
Cette librairie propose des méthodes utilitaires compatible Javascript/Typescript. C'est une boîte à outils complète pour les développeurs JavaScript, avec des fonctionnalités variées allant de la manipulation de données (chaînes, dates, objets, tableaux) à des outils de sécurité
Fonctionnalités
- Fonctions de base
- Manipulation de dates
- Manipulation d'objets
- Manipulation de tableaux
- Manipulation de fichiers
- Génération de données
- Fonctions asynchrones
- Validation et vérification
- Formatage et conversion
- Validation
- Sécurité
- Chiffrement et Hashing
- Manipulation de chaînes
Fonctions de base
generateRandomString(length: number = 16): string
Génère une chaîne aléatoire de caractères.
- Paramètres:
length
(optionnel) : Longueur de la chaîne générée (par défaut : 16).
- Retourne : Une chaîne aléatoire.
Exemple :
const randomString = generateRandomString(10); // Exemple : "aB3dEfG7hI"
transformDateIntoEnglishFormat(dateStr: string): string
Transforme une date en un format anglais (YYYY-MM-DD).
Paramètres:
dateStr
: La date à transformer (format DD-MM-YYYY ou DD/MM/YYYY).Retourne: La date au format anglais.
Exemple:
const englishDate = transformDateIntoEnglishFormat("31-12-2023"); // "2023-12-31"
isPercentageValue(value: string | undefined): boolean
Vérifie si une valeur contient un pourcentage.
Paramètres:
value
: La valeur à vérifier.Retourne:
true
si la valeur contient un pourcentage, sinonfalse
.
Exemple:
const isPercentage = isPercentageValue("50%"); // true
filterNonEmptyValues(obj: Record<string, any>): Record<string, any>
Filtre les valeurs vides ou nulles d'un objet.
Paramètres:
obj
: L'objet à filtrer.Retourne: Un nouvel objet sans valeurs vides.
Exemple:
const filteredObj = filterNonEmptyValues({ a: 1, b: null, c: "" }); // { a: 1 }
transformStringIntoNumber(str: string): number
Convertit une chaîne en nombre.
Paramètres:
str
: La chaîne à convertir.Retourne: Le nombre résultant.
Exemple:
const number = transformStringIntoNumber("1,000.50"); // 1000.5
toFrenchMoneyFormat(value: string | number): string
Formate une valeur en format monétaire français.
Paramètres:
value
: La valeur à formater.Retourne: La valeur formatée en euros.
Exemple:
const formattedMoney = toFrenchMoneyFormat(1000.50); // "1 000,50 €"
deepMergeObjects<T, U>(target: T, source: U): T & U
Fusionne deux objets profondément.
Paramètres:
target
: L'objet cible.source
: L'objet source.Retourne: L'objet fusionné.
Exemple:
const merged = deepMergeObjects({ a: 1 }, { b: 2 }); // { a: 1, b: 2 }
Manipulation de dates
getDateDifferenceInDays(date1: Date, date2: Date): number
Calcule la différence entre deux dates en jours.
Paramètres:
date1
: Première date.date2
: Deuxième date.Retourne: La différence en jours.
Exemple:
const diff = getDateDifferenceInDays(new Date("2023-01-01"), new Date("2023-01-10")); // 9
getDayOfWeek(date: Date): string
Retourne le jour de la semaine pour une date donnée.
Paramètres:
date
: La date à vérifier.Retourne: Le jour de la semaine.
Exemple:
const day = getDayOfWeek(new Date("2023-01-01")); // "Sunday"
Manipulation de tableaux
removeDuplicates<T>(array: T[]): T[]
Supprime les doublons dans un tableau.
Paramètres:
array
: Le tableau à traiter.Retourne: Le tableau sans doublons.
Exemple:
const uniqueArray = removeDuplicates([1, 2, 2, 3]); // [1, 2, 3]
findInArray<T>(array: T[], key: keyof T, value: any): T | undefined
Recherche dans un tableau d'objets par une clé et une valeur.
Paramètres:
array
: Le tableau à parcourir.key
: La clé à vérifier.value
: La valeur à rechercher.Retourne: L'objet trouvé ou
undefined
.
Exemple:
const item = findInArray([{ id: 1, name: "Alice" }], "id", 1); // { id: 1, name: "Alice" }
sortArrayByKey<T>(array: T[], key: keyof T, ascending: boolean = true): T[]
Trie un tableau d'objets par une clé donnée.
Paramètres:
array
: Le tableau à trier.key
: La clé sur laquelle trier.ascending
: Tri ascendant (true) ou descendant (false).Retourne: Le tableau trié.
Exemple:
const sortedArray = sortArrayByKey([{ age: 30 }, { age: 20 }], "age"); // [{ age: 20 }, { age: 30 }]
Manipulation de fichiers
readFileAsText(file: File): Promise<string>
Lit un fichier en tant que texte.
Paramètres:
file
: Le fichier à lire.Retourne: Une promesse résolue avec le contenu du fichier.
Exemple:
const content = await readFileAsText(file);
downloadTextFile(filename: string, content: string): void
Télécharge un fichier texte donné.
Paramètres:
filename
: Le nom du fichier.content
: Le contenu du fichier.
Exemple:
downloadTextFile("example.txt", "Hello, World!");
Génération de données
generateUUID(): string
Génère un identifiant unique universel (UUID).
- Retourne: Un UUID.
Exemple:
const uuid = generateUUID(); // "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx"
generateRandomHexColor(): string
Génère une couleur hexadécimale aléatoire.
- Retourne: Une couleur hexadécimale.
Exemple:
const color = generateRandomHexColor(); // "#a1b2c3"
Fonctions asynchrones
delay(ms: number): Promise<void>
Exécute une fonction après un délai donné.
Paramètres:
ms
: Le délai en millisecondes.
Exemple:
await delay(1000); // Attend 1 seconde
Validation et vérification
isObjectEmpty(obj: Record<string, any>): boolean
Vérifie si un objet est vide.
Paramètres:
obj
: L'objet à vérifier.Retourne:
true
si l'objet est vide, sinonfalse
.
Exemple:
const isEmpty = isObjectEmpty({}); // true
arraysEqual<T>(arr1: T[], arr2: T[]): boolean
Vérifie si deux tableaux sont égaux.
Paramètres:
arr1
: Premier tableau.arr2
: Deuxième tableau.Retourne:
true
si les tableaux sont égaux, sinonfalse
.
Exemple:
const areEqual = arraysEqual([1, 2], [1, 2]); // true
Formatage et conversion
truncateString(str: string, maxLength: number): string
Tronque une chaîne à une longueur spécifiée avec des points de suspension.
Paramètres:
str
: La chaîne à tronquer.maxLength
: La longueur maximale.Retourne: La chaîne tronquée.
Exemple:
const truncated = truncateString("Hello, World!", 5); // "Hello..."
toKebabCase(str: string): string
Convertit une chaîne en kebab-case.
Paramètres:
str
: La chaîne à convertir.Retourne: La chaîne en kebab-case.
Exemple:
const kebabCase = toKebabCase("helloWorld"); // "hello-world"
reverseString(str: string): string
Inverse une chaîne.
Paramètres:
str
: La chaîne à inverser.Retourne: La chaîne inversée.
Exemple:
const reversed = reverseString("hello"); // "olleh"
downloadJSONFile(filename: string, data: object): void
Télécharge un fichier JSON donné.
Paramètres:
filename
: Le nom du fichier.data
: Les données JSON.
Exemple:
downloadJSONFile("data.json", { key: "value" });
isValidFileExtension(filename: string, allowedExtensions: string[]): boolean
Vérifie si une extension de fichier est valide.
Paramètres:
filename
: Le nom du fichier.allowedExtensions
: Les extensions autorisées.Retourne:
true
si l'extension est valide, sinonfalse
.
Exemple:
const isValid = isValidFileExtension("file.pdf", ["pdf", "doc"]); // true
isValidEmail(email: string): boolean
Vérifie si une chaîne est un email valide.
- Paramètres:
email
: La chaîne à vérifier.
- Retourne :
true
si l'email est valide, sinonfalse
.
Exemple :
const isValid = isValidEmail("test@example.com"); // true
isValidPhoneNumber(phone: string): boolean
Vérifie si une chaîne est un numéro de téléphone valide (format international).
Paramètres:
phone
La chaîne à vérifier.Retourne
true
si le numéro de téléphone est valide, sinonfalse
.
Exemple
const isValid = isValidPhoneNumber("+33123456789"); // true
isValidURL(url: string): boolean
Vérifie si une URL est valide.
Paramètres:
url
La chaîne à vérifier.Retourne
true
si l'URL est valide, sinonfalse
.
Exemple
const isValid = isValidURL("https://example.com"); // true
Sécurité
generateCSRFToken(): string
Génère un jeton CSRF aléatoire.
- Retourne Un jeton CSRF de 64 caractères hexadécimaux.
Exemple
const token = generateCSRFToken(); // "a1b2c3d4e5f6..."
isValidCSRFToken(token: string): boolean
Vérifie si une chaîne est un jeton CSRF valide.
Paramètres:
token
Le jeton à vérifier.Retourne
true
si le jeton est valide, sinonfalse
.
Exemple
const isValid = isValidCSRFToken("a1b2c3d4e5f6..."); // true
escapeHTML(input: string): string
Échappe les caractères spéciaux dans une chaîne pour prévenir les attaques XSS.
Paramètres:
input
La chaîne à échapper.Retourne La chaîne échappée.
Exemple
const escaped = escapeHTML("<script>alert('XSS')</script>"); // "<script>alert('XSS')</script>"
maskString(input: string, visibleChars: number = 3): string
Masque partiellement une chaîne (utile pour masquer des informations sensibles comme des emails).
Paramètres:
input
La chaîne à masquer.visibleChars
(optionnel) : Nombre de caractères visibles (par défaut : 3).Retourne La chaîne masquée.
Exemple
const masked = maskString("test@example.com", 3); // "tes***********"
Chiffrement et Hashing
hashSHA256(input: string): Promise<string>
Génère un hash SHA-256 pour une chaîne donnée.
Paramètres:
input
La chaîne à hasher.Retourne Une promesse résolue avec le hash SHA-256.
Exemple
const hash = await hashSHA256("password"); // "5e884898da28047151d0e56f8dc6292773603d0d6aabbdd62a11ef721d1542d8"
hashSHA512(input: string): Promise<string>
Génère un hash SHA-512 pour une chaîne donnée.
Paramètres:
input
La chaîne à hasher.Retourne Une promesse résolue avec le hash SHA-512.
Exemple
const hash = await hashSHA512("password"); // "b109f3bbbc244eb82441917ed06d618b9008dd09b3befd1b5e07394c706a8bb980b1d7785e5976ec049b46df5f1326af5a2ea6d103fd07c95385ffab0cacbc86"
secureCompareHash(hash1: string, hash2: string): boolean
Compare deux chaînes hashées de manière sécurisée.
Paramètres:
hash1
Le premier hash.hash2
Le deuxième hash.Retourne
true
si les hashs sont identiques, sinonfalse
.
Exemple
const isMatch = secureCompareHash(hash1, hash2); // true ou false
encryptAESGCM(plainText: string, secretKey: CryptoKey): Promise<string>
Chiffre une chaîne en utilisant AES-GCM.
Paramètres:
plainText
La chaîne à chiffrer.secretKey
La clé secrète AES.Retourne Une promesse résolue avec la chaîne chiffrée.
Exemple
const encrypted = await encryptAESGCM("secret", secretKey); // "iv:encryptedData"
decryptAESGCM(cipherText: string, secretKey: CryptoKey): Promise<string>
Déchiffre une chaîne en utilisant AES-GCM.
Paramètres:
cipherText
La chaîne chiffrée.secretKey
La clé secrète AES.Retourne Une promesse résolue avec la chaîne déchiffrée.
Exemple
const decrypted = await decryptAESGCM("iv:encryptedData", secretKey); // "secret"
generateAESKeyFromPassphrase(passphrase: string): Promise<CryptoKey>
Génère une clé AES à partir d'une phrase secrète.
Paramètres:
passphrase
La phrase secrète.Retourne Une promesse résolue avec la clé AES.
Exemple
const key = await generateAESKeyFromPassphrase("myPassphrase");
generateRSAKeyPair(): Promise<{ publicKey: CryptoKey; privateKey: CryptoKey }>
Génère une paire de clés RSA.
- Retourne Une promesse résolue avec un objet contenant la clé publique et la clé privée.
Exemple
const { publicKey, privateKey } = await generateRSAKeyPair();
encryptRSA(plainText: string, publicKey: CryptoKey): Promise<string>
Chiffre une chaîne avec une clé publique RSA.
Paramètres:
plainText
La chaîne à chiffrer.publicKey
La clé publique RSA.Retourne Une promesse résolue avec la chaîne chiffrée.
Exemple
const encrypted = await encryptRSA("secret", publicKey); // "encryptedData"
decryptRSA(cipherText: string, privateKey: CryptoKey): Promise<string>
Déchiffre une chaîne avec une clé privée RSA.
Paramètres:
cipherText
La chaîne chiffrée.privateKey
La clé privée RSA.Retourne Une promesse résolue avec la chaîne déchiffrée.
Exemple
const decrypted = await decryptRSA("encryptedData", privateKey); // "secret"
Installation
Package manager
npm:
$ npm install code-caddy
bower:
$ bower install code-caddy
yarn:
$ yarn add code-caddy
pnpm:
$ pnpm add code-caddy
Une fois la librairie installée, vous pouvez importer la bibliothèque à l'aide de la commande import
ou require
: