From 4db3464b8753a63ceca5889000fb073eac840f61 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Thu, 1 Feb 2024 21:05:30 +0100 Subject: [PATCH] Reduce size --- README.id-ID.md | 2 +- README.md | 2 +- README.ru.md | 2 +- README.zh-CN.md | 2 +- index.browser.js | 6 +++--- package.json | 4 ++-- 6 files changed, 9 insertions(+), 9 deletions(-) diff --git a/README.id-ID.md b/README.id-ID.md index 0b853cf4..8f7f9630 100644 --- a/README.id-ID.md +++ b/README.id-ID.md @@ -10,7 +10,7 @@ Sebuah generator ID yang unik dalam bentuk string yang ringan, aman, serta _URL- > "Sebuah tingkat kesempurnaan yang luar biasa, > yang mana tidak mungkin untuk tidak dihormati." -- **Ringan.** Hanya 124 bytes (diperkecil dan brotlied). Tidak ada ketergantungan (dependencies) apapun. [Size Limit](https://github.com/ai/size-limit) mengatur ukuran dari generator ini. +- **Ringan.** Hanya 116 bytes (diperkecil dan brotlied). Tidak ada ketergantungan (dependencies) apapun. [Size Limit](https://github.com/ai/size-limit) mengatur ukuran dari generator ini. - **Aman.** Nano ID menggunakan RNG yang terdapat pada perangkat keras. Dapat digunakan dalam lingkungan seperti klaster. - **ID yang pendek.** Nano ID menggunakan alfabet yang lebih banyak ketimbang UUID (`A-Za-z0-9_-`), karenanya ukuran ID menjadi berkurang dari 36 menjadi 21 simbol. - **Portabel.** Nano ID telah dimigrasi untuk [20 bahasa pemrograman lainnya](#bahasa-pemrograman-lainnya). diff --git a/README.md b/README.md index d825379e..d333d430 100644 --- a/README.md +++ b/README.md @@ -10,7 +10,7 @@ A tiny, secure, URL-friendly, unique string ID generator for JavaScript. > “An amazing level of senseless perfectionism, > which is simply impossible not to respect.” -* **Small.** 124 bytes (minified and brotlied). No dependencies. +* **Small.** 116 bytes (minified and brotlied). No dependencies. [Size Limit] controls the size. * **Safe.** It uses hardware random generator. Can be used in clusters. * **Short IDs.** It uses a larger alphabet than UUID (`A-Za-z0-9_-`). diff --git a/README.ru.md b/README.ru.md index 0a06d5c4..62577436 100644 --- a/README.ru.md +++ b/README.ru.md @@ -11,7 +11,7 @@ ID можно применять в URL. > «Поразительный уровень бессмысленного перфекционизма, > который просто невозможно не уважать» -- **Лёгкий.** 124 байт (после минификации и Brotli). Без зависимостей. +- **Лёгкий.** 116 байт (после минификации и Brotli). Без зависимостей. [Size Limit] следит за размером. - **Безопасный.** Использует аппаратный генератор случайных чисел. Можно использовать в кластерах машин. diff --git a/README.zh-CN.md b/README.zh-CN.md index 7237d6d5..67d3a4ad 100644 --- a/README.zh-CN.md +++ b/README.zh-CN.md @@ -9,7 +9,7 @@ > “一个惊人的无意义的完美主义水平,这简直让人无法不敬佩。” -* **小巧.** 124字节 (经过压缩和Brotli处理)。没有依赖。[Size Limit] 控制大小。 +* **小巧.** 116字节 (经过压缩和Brotli处理)。没有依赖。[Size Limit] 控制大小。 * **安全.** 它使用硬件随机生成器。可在集群中使用。 * **紧凑.** 它使用比 UUID(`A-Za-z0-9_-`)更大的字母表。因此,ID 大小从36个符号减少到21个符号。 * **可移植.** Nano ID 已被移植到 [20种编程语言](#其他编程语言)。 diff --git a/index.browser.js b/index.browser.js index bcd2230e..dd50f146 100644 --- a/index.browser.js +++ b/index.browser.js @@ -51,12 +51,12 @@ export let customAlphabet = (alphabet, size = 21) => export let nanoid = (size = 21) => { let id = '' - let rand = crypto.getRandomValues(new Uint8Array(size)) - for (let i = 0; i < size; i++) { + let bytes = crypto.getRandomValues(new Uint8Array(size)) + while (size--) { // Using the bitwise AND operator to "cap" the value of // the random byte from 255 to 63, in that way we can make sure // that the value will be a valid index for the "chars" string. - id += urlAlphabet[rand[i] & 63] + id += urlAlphabet[bytes[size] & 63] } return id } diff --git a/package.json b/package.json index fd77b2b0..1a0796b9 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "nanoid", "version": "5.0.4", - "description": "A tiny (124 bytes), secure URL-friendly unique string ID generator", + "description": "A tiny (116 bytes), secure URL-friendly unique string ID generator", "keywords": [ "uuid", "random", @@ -79,7 +79,7 @@ { "name": "nanoid", "import": "{ nanoid }", - "limit": "124 B" + "limit": "116 B" }, { "name": "customAlphabet",