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.
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.
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.
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]
Générer un nouvel UUID :
const uuid = new Uuid(); uuid.toString(); // '01932c0a-235b-7da6-8153-aee356735b58'
Analyse d'un UUID à partir d'un tampon Node.js :
const uuid = new Uuid(buffer); uuid.toString(); // '01932c0b-e834-7b5a-9bae-2964245fc0b6'
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
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!