
Security News
Node.js TSC Votes to Stop Distributing Corepack
Corepack will be phased out from future Node.js releases following a TSC vote.
JavaScript library to generate a human readable String describing the file size
The filesize npm package is a library designed to provide simple file size conversion and formatting. It allows users to convert raw file size numbers into human-readable strings, with support for multiple units and customization options. This can be particularly useful in applications where file sizes need to be displayed to users in a format that is easy to understand.
Basic file size formatting
Converts a file size in bytes to a human-readable string using the most appropriate unit. In this example, 1024 bytes are converted to '1 KB'.
"const filesize = require('filesize');
console.log(filesize(1024)); // '1 KB'"
Customizing the output
Allows customization of the output format, including rounding and the spacer between the number and the unit. This example shows no rounding and removes the space between the number and the unit.
"const filesize = require('filesize');
console.log(filesize(1024, {round: 0, spacer: ''})); // '1KB'"
Using different units
Supports using different unit standards, such as the International Electrotechnical Commission (IEC) standard, which uses 'KiB' instead of 'KB' for 1024 bytes.
"const filesize = require('filesize');
console.log(filesize(1024, {standard: 'iec'})); // '1 KiB'"
Similar to filesize, pretty-bytes converts byte values into a human-readable format. It focuses on simplicity and does not offer as many customization options as filesize, making it a good choice for straightforward use cases.
The bytes package also provides functionality for formatting byte sizes into human-readable strings. It offers a balance between simplicity and customization, with options to specify the number of decimal places and the units to use.
filesize.js provides a simple way to get a human-readable file size string from a number (float or integer) or string.
import {filesize} from "filesize";
filesize(265318, {standard: "jedec"}); // "259.1 KB"
filesize has 100% code coverage with its tests.
--------------|---------|----------|---------|---------|-----------------------
File | % Stmts | % Branch | % Funcs | % Lines | Uncovered Line #s
--------------|---------|----------|---------|---------|-----------------------
All files | 100 | 95.52 | 100 | 100 |
filesize.cjs | 100 | 95.52 | 100 | 100 | 77-78,173,196,199,210
--------------|---------|----------|---------|---------|-----------------------
filesize()
accepts an optional descriptor Object as a second argument, so you can customize the output.
(number) Number base, default is 10
(boolean) Enables bit
sizes, default is false
(number) Specifies the symbol via exponent, e.g. 2
is MB
for base 2, default is -1
(boolean) Enables full form of unit of measure, default is false
(array) Array of full form overrides, default is []
(string || boolean) BCP 47 language tag to specify a locale, or true
to use default locale, default is ""
(object) Dictionary of options defined by ECMA-402 (Number.prototype.toLocaleString). Requires locale option to be explicitly passed as a string, otherwise is ignored.
(string) Output of function (array
, exponent
, object
, or string
), default is string
(boolean) Decimal place end padding, default is false
(number) Sets precision of numerical output, default is 0
(number) Decimal place, default is 2
(string) Rounding method, can be round
, floor
, or ceil
, default is round
(string) Decimal separator character, default is an empty string.
(string) Character between the result
and symbol
, default is " "
(string) Standard unit of measure, can be iec
, jedec
, or si
. Default is si
(base 10). The si
option is an alias of jedec
, such that it is not valid for other configuration options.
(object) Dictionary of IEC/JEDEC symbols to replace for localization, defaults to english if no match is found; SI is handled automatically with JEDEC values.
filesize(500); // "500 B"
filesize(500, {bits: true}); // "4 kbit"
filesize(265318, {base: 2}); // "259.1 KiB"
filesize(265318); // "265.32 kB"
filesize(265318, {round: 0}); // "265 kB"
filesize(265318, {output: "array"}); // [265.32, "kB"]
filesize(265318, {output: "object"}); // {value: 265.32, symbol: "kB", exponent: 1, unit: "kB"}
filesize(1, {symbols: {B: "Б"}}); // "1 Б"
filesize(1024); // "1.02 kB"
filesize(1024, {exponent: 0}); // "1024 B"
filesize(1024, {output: "exponent"}); // 1
filesize(265318, {standard: "jedec"}); // "259.1 KB"
filesize(265318, {base: 2, fullform: true}); // "259.1 kibibytes"
filesize(12, {fullform: true, fullforms: ["байтов"]}); // "12 байтов"
filesize(265318, {separator: ","}); // "265,32 kB"
filesize(265318, {locale: "de"}); // "265,32 kB"
partial()
takes the second parameter of filesize()
and returns a new function with the configuration applied
upon execution. This can be used to reduce Object
creation if you call filesize()
without caching the descriptor
in lexical scope.
import {partial} from "filesize";
const size = partial({standard: "jedec"});
size(265318); // "259.1 KB"
Copyright (c) 2024 Jason Mulligan Licensed under the BSD-3 license.
FAQs
JavaScript library to generate a human readable String describing the file size
The npm package filesize receives a total of 8,699,026 weekly downloads. As such, filesize popularity was classified as popular.
We found that filesize demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Corepack will be phased out from future Node.js releases following a TSC vote.
Research
Security News
Research uncovers Black Basta's plans to exploit package registries for ransomware delivery alongside evidence of similar attacks already targeting open source ecosystems.
Security News
Oxlint's beta release introduces 500+ built-in linting rules while delivering twice the speed of previous versions, with future support planned for custom plugins and improved IDE integration.