npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2025 – Pkg Stats / Ryan Hefner

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

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

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%"); // 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é ouundefined.

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:truesi 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:truesi 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:truesi 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, sinon false.

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.

  • Retournetruesi 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.

  • Retournetruesi 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.

  • Retournetruesi 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>"); // "&lt;script&gt;alert(&#039;XSS&#039;)&lt;/script&gt;"

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.

  • Retournetruesi 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: