0.2.0 • Published 6 years ago

readable-size v0.2.0

Weekly downloads
87
License
MIT
Repository
github
Last release
6 years ago

readable-size build status Coverage Status

NPM

Converts bytes into human readable size units: B, KB, MB, GB, TB, PB, EB, ZB, YB.

Installation

npm install --save readable-size

Examples

readableSize(1); // '1 B'
readableSize(1023); // '1023 B'
readableSize(1024); // '1.00 KB'
readableSize(1025); // '1.00 KB'
readableSize(1000000); // '976 KB'
readableSize(1023999); // '999 KB'
readableSize(1024000); // '0.97 MB'
readableSize(1048575); // '0.99 MB'
readableSize(1048576); // '1.00 MB'
readableSize(1048577); // '1.00 MB'
readableSize(1000000000); // '953 MB'
readableSize(1048575999); // '999 MB'
readableSize(1048576000); // '0.97 GB'
readableSize(1073741823); // '0.99 GB'
readableSize(1073741824); // '1.00 TB'

Output

The output is one of 'string', 'array', 'object', or function type.

'string'

readableSize(1024, { output: 'string' }); // '1.00 KB'
readableSize(1024, { output: 'string', format: '{{size}} ({{unit}})' }); // '1.00 (KB)'

'array'

readableSize(1024, { output: 'array' }); // [ '1.00', 'KB' ]

'object'

readableSize(1024, { output: 'object' }); // { size: '1.00', unit: 'KB' }

function

readableSize(999, { // '999 bytes'
    output: ({ size, unit }) => {
        unit = { B: 'bytes' }[unit] || unit;
        return `${size} ${unit}`;
    }
});

Separators

English

const options = {
    separator: {
        thousands: ',',
        decimal: '.',
    }
};
readableSize(999, options); // '999 B'
readableSize(1000, options); // '1,000 B'
readableSize(1024, options); // '1.00 KB'

French

const options = {
    separator: {
        thousands: ' ',
        decimal: ',',
    }
};
readableSize(999, options); // '999 B'
readableSize(1000, options); // '1 000 B'
readableSize(1024, options); // '1,00 KB'

Dutch

const options = {
    separator: {
        thousands: '.',
        decimal: ',',
    }
};
readableSize(999, options); // '999 B'
readableSize(1000, options); // '1.000 B'
readableSize(1024, options); // '1,00 KB'

Options

separator

(boolean) Enable separators, default is false

(object) Specifies the thousands and decimal separators, default is:

separator: {
    thousands: ',',
    decimal: '.'
}

output

('string') The output is defined by the format string, default is '{{size}} {{unit}}'

('array') The output is [size, unit]

('object') The output is { size, unit }

(function) A user-defined output function:

format: ({ size, unit }) => {
    unit = { 'B': 'bytes' }[unit] || unit;
    return `${size} ${unit}`;
}

format

(string) The format string, default is '{{size}} {{unit}}'

License

MIT