私は長い間 Node.js を使ってきましたが、プロジェクト内で UUID を生成するために常に uuid パッケージを使用してきました。これは素晴らしいパッケージで、うまく機能しますが、いくつかの点で改善の余地があると常に感じていました。
シンプルな API
uuid パッケージに関して私が常に気になっていたことの 1 つは、デフォルト形式での単純な UUID 生成に制限されていることです。さまざまな形式に変換する方法を知る必要があるため、初心者にとっては少し混乱する可能性があります。
長い UUID 文字列
UUID 文字列は標準形式ですが、base64 など、よりコンパクトな表現が必要な URL やその他のコンテキストにはあまり適していません。これにより、UUID 文字列を解析して別の形式に変換する必要があり、少し面倒になる可能性があります。
ストレージ効率
また、UUID の文字列形式は、ストレージ領域の点であまり効率的ではありません。 16 バイトの値を表すのに 36 文字を使用しますが、これはストレージやネットワーク上での送信、またデータベース ストレージにとってもあまり効率的ではありません。
これらの問題を解決するために、よりユーザーフレンドリーな API とさまざまな形式の UUID の自動解析を提供する @uuid-ts/uuid という新しいパッケージを作成することにしました。また、UUID を別の形式に変換し、UUID を検証するユーティリティ関数も含まれています。
これは、Node.js 環境とブラウザー環境の両方で使用できる、UUID バージョン 7 をサポートする単純な TypeScript クラスです。これは同型であり、追加の構成なしで最新の JavaScript および TypeScript で使用できます。
既存の UUID を文字列として解析します:
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]
新しい UUID を生成しています:
const uuid = new Uuid(); uuid.toString(); // '01932c0a-235b-7da6-8153-aee356735b58'
Node.js バッファからの UUID の解析:
const uuid = new Uuid(buffer); uuid.toString(); // '01932c0b-e834-7b5a-9bae-2964245fc0b6'
次のユーティリティ関数も付属しています:
Uuid.bufferToUuidHex(バッファ: バッファ): 文字列
Uuid.uuidBufferFromHex(uuidHexString: string): バッファ
Uuid.isUuidHexString(uuid: string | Buffer): boolean
Uuid.isUuidBase64String(uuid: 文字列 | バッファ): バッファ | null
Uuid.fromHex(hexString: string): Uuid
Uuid.fromBase64(base64String: string): Uuid
Uuid.fromBuffer(バッファ: バッファ): Uuid
このパッケージが皆さんにとって役に立ち、より効率的でユーザーフレンドリーな方法で UUID を扱うのに役立つことを願っています。フィードバックや提案がありましたら、お知らせください。
パッケージは npm の https://www.npmjs.com/package/@uuid-ts/uuid で見つけることができます。
以上がNode.js 用に新しい UUID パッケージを作成した理由の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。