Want to convert a quantity like 5000981077504 bytes to 5.0TB or 4.55 TiB in your Ember.js app? This addon provides the following helpers:
mg-prefix
(written as a replacement forember-number-to-human-size
)
(according to the default blueprint at least)
- Ember CLI v4.12 or above
- Node.js v18 or above
ember install ember-magnitude-helpers
Pass a number as the first parameter, optionally followed any/all of the following named parameters:
- precision: round to this many digits (default = 3)
- type: '
si
' for base 1000, 'iec
' for base 1024 (default = 'si') - unit: arbitrary string (default = '')
- useName:
false
for abbreviation (e.g. 'G'),true
for name (e.g. 'giga') (default =false
)
Examples (classic):
Example (template tag):
// some-component.gjs
import { mgPrefix } from 'ember-magnitude-helpers';
<template>
{{mgPrefix 123456}} => '123 k'
{{mgPrefix 1024 type="si" unit="bytes"}} => '1.02 kbytes'
{{mgPrefix 2e6 precision=1 type="iec" unit="B"}} => '2 MiB'
{{mgPrefix 1e12 unit="flops" useName=true}} => '1.00 teraflops'
</template>
You can also import this helper into JS like this:
// some-component.js
import { tracked } from '@glimmer/tracking';
import Component from '@glimmer/component';
import { mgPrefix } from 'ember-magnitude-helpers';
export default class SomeComponent extends Component {
@tracked bytes = 1234567890;
get humanSize() {
// returns "1.15 GiB"
return mgPrefix([this.bytes], {
unit: 'B',
type: 'iec',
});
}
}
See the Contributing guide for details.
This project is licensed under the MIT License.