npm i bytes-transform
After that, we can use:
import { formatBytes } from 'bytes-transform';
const newFormat = formatBytes(1024, { from: 'MB', to: 'GB' });
console.log(newFormat.amount, newFormat.prefix);
Since the object is returned we can use this syntax:
formatBytes(1024, { from: 'MB', to: 'GB' }).amount; // 1
formatBytes(1024, { from: 'MB', to: 'GB' }).prefix; // 'GB'
If you need you can convert everything to bytes:
import { formatBytesToBytes } from 'bytes-transform';
formatBytesToBytes(1024, 'MB')) // return -> 1073741824 bytes
formatBytesToBytes(4, 'MB')) // return -> 4194304 bytes
All that you can use with CommonJs:
const { formatBytes, formatBytesToBytes } = require('bytes-transform');
...
type TFormatBytesToBytesSignature = (amount: number, from: TListOfPrefix, capacityStrength: TCapacityStrength) => number;
/**
Transfer your bytes with prefix to standart bytes.
@param {number} amount count of bytes with prefix
@param {TListOfPrefix} from prefix
@param {TCapacityStrength} capacityStrength capacity strength
@returns {number} number of standart bytes
*/
export const formatBytesToBytes: TFormatBytesToBytesSignature = (amount, from, capacityStrength = 1024) => {...};
type TFormatBytesSignature = (amount: number, options: IFormatBytesOptions) => IFormattedBytes;
/**
Transfer your bytes in bytes with other prefix
@param {number} amount count of bytes with prefix
@param {IFormatBytesOptions} options settigns for other information
@returns {IFormatBytesReturned} object with amount and another prefix
*/
export const formatBytes: TFormatBytesSignature = (amount, options) => {...}
export type TListOfPrefix = 'B' | 'KB' | 'MB' | 'GB' | 'TB';
export type TCapacityStrength = 1000 | 1024;
export type TFixTo = 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10;
export interface IFormatBytesOptions {
readonly from: TListOfPrefix;
readonly to: TListOfPrefix;
readonly capacityStrength?: TCapacityStrength;
readonly fixTo?: TFixTo;
}
export interface IFormattedBytes {
readonly amount: number;
readonly prefix: TListOfPrefix;
}
Happy hacking!