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
10
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:
truesi la valeur contient un pourcentage, sinonfalse.
Exemple:
const isPercentage = isPercentageValue("50%"); // truefilterNonEmptyValues(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.5toFrenchMoneyFormat(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")); // 9getDayOfWeek(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 secondeValidation et vérification
isObjectEmpty(obj: Record<string, any>): boolean
Vérifie si un objet est vide.
Paramètres:
obj: L'objet à vérifier.Retourne:
truesi l'objet est vide, sinonfalse.
Exemple:
const isEmpty = isObjectEmpty({}); // truearraysEqual<T>(arr1: T[], arr2: T[]): boolean
Vérifie si deux tableaux sont égaux.
Paramètres:
arr1: Premier tableau.arr2: Deuxième tableau.Retourne:
truesi les tableaux sont égaux, sinonfalse.
Exemple:
const areEqual = arraysEqual([1, 2], [1, 2]); // trueFormatage 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:
truesi l'extension est valide, sinonfalse.
Exemple:
const isValid = isValidFileExtension("file.pdf", ["pdf", "doc"]); // trueisValidEmail(email: string): boolean
Vérifie si une chaîne est un email valide.
- Paramètres:
email: La chaîne à vérifier.
- Retourne :
truesi l'email est valide, sinonfalse.
Exemple :
const isValid = isValidEmail("[email protected]"); // trueisValidPhoneNumber(phone: string): boolean
Vérifie si une chaîne est un numéro de téléphone valide (format international).
Paramètres:
phoneLa chaîne à vérifier.Retourne
truesi le numéro de téléphone est valide, sinonfalse.
Exemple
const isValid = isValidPhoneNumber("+33123456789"); // trueisValidURL(url: string): boolean
Vérifie si une URL est valide.
Paramètres:
urlLa chaîne à vérifier.Retourne
truesi l'URL est valide, sinonfalse.
Exemple
const isValid = isValidURL("https://example.com"); // trueSé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:
tokenLe jeton à vérifier.Retourne
truesi le jeton est valide, sinonfalse.
Exemple
const isValid = isValidCSRFToken("a1b2c3d4e5f6..."); // trueescapeHTML(input: string): string
Échappe les caractères spéciaux dans une chaîne pour prévenir les attaques XSS.
Paramètres:
inputLa 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:
inputLa chaîne à masquer.visibleChars(optionnel) : Nombre de caractères visibles (par défaut : 3).Retourne La chaîne masquée.
Exemple
const masked = maskString("[email protected]", 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:
inputLa 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:
inputLa 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:
hash1Le premier hash.hash2Le deuxième hash.Retourne
truesi les hashs sont identiques, sinonfalse.
Exemple
const isMatch = secureCompareHash(hash1, hash2); // true ou falseencryptAESGCM(plainText: string, secretKey: CryptoKey): Promise<string>
Chiffre une chaîne en utilisant AES-GCM.
Paramètres:
plainTextLa chaîne à chiffrer.secretKeyLa 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:
cipherTextLa chaîne chiffrée.secretKeyLa 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:
passphraseLa 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:
plainTextLa chaîne à chiffrer.publicKeyLa 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:
cipherTextLa chaîne chiffrée.privateKeyLa 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-caddybower:
$ bower install code-caddyyarn:
$ yarn add code-caddypnpm:
$ pnpm add code-caddyUne fois la librairie installée, vous pouvez importer la bibliothèque à l'aide de la commande import ou require:
