Maison > interface Web > js tutoriel > Pourquoi j'ai créé un nouveau package UUID pour Node.js

Pourquoi j'ai créé un nouveau package UUID pour Node.js

Susan Sarandon
Libérer: 2024-11-15 16:53:03
original
571 Les gens l'ont consulté

Why I created a new UUID package for Node.js

Je travaille avec Node.js depuis longtemps et j'ai toujours utilisé le package uuid pour générer des UUID dans mes projets. C'est un excellent package et il fonctionne bien, mais j'ai toujours pensé qu'il pouvait être amélioré sur certains aspects.

Problèmes

API simple

L'une des choses qui m'a toujours dérangé à propos du package uuid est qu'il est limité à une simple génération d'UUID au format par défaut. Il faut savoir le convertir dans différents formats, ce qui peut être un peu déroutant pour les débutants.

Chaînes UUID longues

Bien que la chaîne UUID soit un format standard, elle n'est pas très adaptée aux URL ou à d'autres contextes où vous avez besoin d'une représentation plus compacte, comme en base64. Cela vous oblige à analyser la chaîne UUID et à la convertir dans un format différent, ce qui peut être un peu fastidieux.

Efficacité du stockage

De plus, la forme chaîne des UUID n'est pas très efficace en termes d'espace de stockage. Il utilise 36 caractères pour représenter une valeur de 16 octets, ce qui n'est pas très efficace pour le stockage ou la transmission sur le réseau ni pour le stockage de bases de données.

Solution

Pour résoudre ces problèmes, j'ai décidé de créer un nouveau package appelé @uuid-ts/uuid qui fournit une API plus conviviale et une analyse automatique des UUID de différents formats. Il comprend également des fonctions utilitaires pour convertir les UUID en différents formats et valider les UUID.

Il s'agit d'une simple classe TypeScript avec prise en charge de l'UUID version 7 qui peut être utilisée à la fois dans les environnements Node.js et de navigateur. Il est isomorphe et peut être utilisé avec JavaScript et TypeScript modernes sans aucune configuration supplémentaire.

Caractéristiques

  • Analyse automatique des UUID à partir de l'hexadécimal, de la base64 ou du tampon
  • Génération automatique des UUID (v7 par défaut)
  • Conversion facile des UUID en hexadécimal, base64 ou tampon
  • Méthodes utilitaires pour valider les chaînes ou tampons existants

Usage

Analyse d'un UUID existant sous forme de chaîne :

const uuidString = '01932c07-209c-7401-9658-4e7a759e7bf7';

const uuid = new Uuid(uuidString);

// methods
uuid.toHex(); // '01932c07-209c-7401-9658-4e7a759e7bf7';
uuid.toBase64(); // 'AZMsByCcdAGWWAAATnp1ng';
uuid.toBuffer(); // [Buffer]
uuid.toInstance<Binary>(Binary); // [Binary]
Copier après la connexion

Générer un nouvel UUID :

const uuid = new Uuid();

uuid.toString(); // '01932c0a-235b-7da6-8153-aee356735b58'
Copier après la connexion

Analyse d'un UUID à partir d'un tampon Node.js :

const uuid = new Uuid(buffer);

uuid.toString(); // '01932c0b-e834-7b5a-9bae-2964245fc0b6'
Copier après la connexion

Il est également livré avec les fonctions utilitaires suivantes :

Uuid.bufferToUuidHex(buffer: Buffer): chaîne
Uuid.uuidBufferFromHex(uuidHexString: string): Buffer
Uuid.isUuidHexString(uuid: string | Buffer): booléen
Uuid.isUuidBase64String(uuid : chaîne | Tampon) : Tampon | nul
Uuid.fromHex(hexString: string): Uuid
Uuid.fromBase64(base64String : chaîne) : Uuid
Uuid.fromBuffer(tampon : Buffer) : Uuid

Conclusion

J'espère que ce package vous sera utile et qu'il vous aidera à travailler avec les UUID de manière plus efficace et plus conviviale. Si vous avez des commentaires ou des suggestions, n'hésitez pas à me le faire savoir.

Vous pouvez trouver le package sur npm à https://www.npmjs.com/package/@uuid-ts/uuid.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:dev.to
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal