diff --git a/README.md b/README.md
index ca81c3a3a..db686662f 100644
--- a/README.md
+++ b/README.md
@@ -278,6 +278,15 @@
+### _Uncategorized_
+
+
+View contents
+
+* [`prettyBytes`](#prettybytes)
+
+
+
---
## 🔌 Adapter
@@ -4941,6 +4950,40 @@ yesNo('Foo', true); // true
[⬆ Back to top](#table-of-contents)
+---
+ ## _Uncategorized_
+
+### prettyBytes
+
+Converts a number in bytes to a human-readable string.
+
+Use an array dictionary of units to be accessed based on the exponent.
+Use `Number.toPrecision()` to truncate the number to a certain number of digits.
+Return the prettified string by building it up, taking into account the supplied options and whether it is negative or not.
+Omit the second argument, `precision`, to use a default precision of `3` digits.
+Omit the third argument, `addSpace`, to add space between the number and unit by default.
+
+```js
+const prettyBytes = (num, precision = 3, addSpace = true) => {
+ const UNITS = ['B', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'];
+ if (Math.abs(num) < 1) return num + (addSpace ? ' ' : '') + UNITS[0];
+ const exponent = Math.min(Math.floor(Math.log10(num < 0 ? -num : num) / 3), UNITS.length - 1);
+ const n = Number(((num < 0 ? -num : num) / 1000 ** exponent).toPrecision(precision));
+ return (num < 0 ? '-' : '') + n + (addSpace ? ' ' : '') + UNITS[exponent];
+};
+```
+
+```js
+prettyBytes(1000); // 1 KB
+prettyBytes(123456789); // 123 MB
+prettyBytes(-50); // -50 B
+prettyBytes(27145424323.5821); // 27.1 GB
+prettyBytes(27145424323.5821, 5); // 27.145 GB
+prettyBytes(5500, 3, false); // 5.5KB
+```
+
+ [⬆ back to top](#table-of-contents)
+
## Collaborators
diff --git a/docs/index.html b/docs/index.html
index c6f4facbb..ad87258f0 100644
--- a/docs/index.html
+++ b/docs/index.html
@@ -59,7 +59,7 @@
wrapper.appendChild(box);
box.appendChild(el);
});
- }
30 seconds of code Curated collection of useful JavaScript snippets that you can understand in 30 seconds or less.
Adapter
call
Given a key and a set of arguments, call them when given a context. Primarily useful in composition.
Use a closure to call a stored key with stored arguments.
Converts a number in bytes to a human-readable string.
Use an array dictionary of units to be accessed based on the exponent. Use Number.toPrecision() to truncate the number to a certain number of digits. Return the prettified string by building it up, taking into account the supplied options and whether it is negative or not. Omit the second argument, precision, to use a default precision of 3 digits. Omit the third argument, addSpace, to add space between the number and unit by default.