https://github.com/embermn/ember-magnitude-helpers
https://github.com/embermn/ember-magnitude-helpers
Last synced: about 1 year ago
JSON representation
- Host: GitHub
- URL: https://github.com/embermn/ember-magnitude-helpers
- Owner: EmberMN
- License: mit
- Created: 2019-09-24T22:42:22.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2025-01-28T13:55:37.000Z (over 1 year ago)
- Last Synced: 2025-04-13T05:09:16.605Z (about 1 year ago)
- Language: JavaScript
- Size: 747 KB
- Stars: 2
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- License: LICENSE.md
Awesome Lists containing this project
README
# ember-magnitude-helpers
[](https://www.npmjs.com/package/ember-magnitude-helpers)
[](https://actions-badge.atrox.dev/EmberMN/ember-magnitude-helpers/goto)
[](https://codeclimate.com/github/EmberMN/ember-magnitude-helpers)
[](https://emberobserver.com/addons/ember-magnitude-helpers)
Want to convert a quantity like 5000981077504 bytes to 5.0TB or 4.55 TiB in your [Ember.js](https://emberjs.com) app?
This addon provides the following helpers:
* `mg-prefix` (written as a replacement for [`ember-number-to-human-size`](https://github.com/kellysutton/ember-number-to-human-size))
## Compatibility
(according to the default blueprint at least)
* Ember CLI v4.12 or above
* Node.js v18 or above
## Installation
```bash
ember install ember-magnitude-helpers
```
## Usage
### `mg-prefix`
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):
```hbs
{{mg-prefix 123456}} => '123 k'
{{mg-prefix 1024 type="si" unit="bytes"}} => '1.02 kbytes'
{{mg-prefix 2e6 precision=1 type="iec" unit="B"}} => '2 MiB'
{{mg-prefix 1e12 unit="flops" useName=true}} => '1.00 teraflops'
```
Example (template tag):
```gjs
// some-component.gjs
import { mgPrefix } from 'ember-magnitude-helpers';
{{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'
```
You can also import this helper into JS like this:
```js
// 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',
});
}
}
```
## Contributing
See the [Contributing](CONTRIBUTING.md) guide for details.
## License
This project is licensed under the [MIT License](LICENSE.md).