@specs-feup/lara
Version:
A js port of the popular framework for building source-to-source compilers
38 lines (30 loc) • 1.45 kB
text/typescript
import UnitModifier from "./UnitModifier.js";
/**
* ! If you are ever in need of using this class, please PLEASE refactor it.
* ! Just do it. I did not have the time to do it myself and did not want to break compatibility with the old Margot APIs.
*/
export default class SiModifier extends UnitModifier {
protected static _unitModifier = new UnitModifier("");
static GIGA = SiModifier._unitModifier.newModifier("G", "giga", 1e9);
static MEGA = SiModifier._unitModifier.newModifier("M", "mega", 1e6);
static KILO = SiModifier._unitModifier.newModifier("k", "kilo", 1e3);
static BASE = SiModifier._unitModifier.newModifier("", "base", 1);
static MILLI = SiModifier._unitModifier.newModifier("m", "milli", 1e-3);
static MICRO = SiModifier._unitModifier.newModifier("u", "micro", 1e-6);
static NANO = SiModifier._unitModifier.newModifier("n", "nano", 1e-9);
static getUnitModifier() {
return SiModifier._unitModifier;
}
static convert(value: number, fromModifier: string, toModifier: string): number {
return SiModifier._unitModifier.convert(value, fromModifier, toModifier);
}
static checkModifier(modifier: string, source: string) {
SiModifier._unitModifier.checkModifier(modifier, source);
}
static isValid(modifier: string) {
return SiModifier._unitModifier.isValid(modifier);
}
static getModifierByName(name: string) {
return SiModifier._unitModifier.getModifierByName(name);
}
}