nhb-toolbox
Version:
A versatile collection of smart, efficient, and reusable utility functions, classes and types for everyday development needs.
205 lines (204 loc) • 8.57 kB
TypeScript
import type { SIPrefix, UnitKey, UnitNumberMethods } from './types';
/**
* @class Class to handle conversions between various types of units.
*
* Includes static methods for:
* - Length: meters, feet, kilometers, miles
* - Mass: kilograms, pounds, grams, ounces
* - Temperature: Celsius, Fahrenheit, Kelvin
* - Volume: liters, gallons
* - Area: square meters, square feet
* - Speed: km/h, mph
* - Time: hours, minutes, seconds, days
* - Digital Storage: kilobytes, megabytes, gigabytes
* - Energy: joules, calories
* - Pressure: atm, pascals
* - Frequency: Hz, kHz
*
* @remarks For more robust unit conversion, please use the `Converter` function which provides category-specific conversion classes.
*/
export declare class Unit {
#private;
/**
* * Creates an instance of the Unit class.
* @param value The numeric value to work with.
* @param unit The unit type of the value (e.g., 'kg', 'm', 'kb').
*/
constructor(value: number, unit?: UnitKey);
/**
* @instance Returns the original value with unit (if passed in the constructor).
* @returns A string in the format "value unit".
*/
toString(): string;
/**
* @instance Converts using scientific prefixes (e.g., kB to MB, mg to g).
*
* @param fromPrefix The SI prefix of the source unit.
* @param toPrefix The SI prefix of the target unit.
* @returns The converted numeric value.
*/
convertByPrefix(fromPrefix: SIPrefix, toPrefix: SIPrefix): number;
/**
* @instance Converts from prefixed unit string to another (e.g., kB to MB, mg to g).
*
* @param from Prefixed unit string (e.g., 'kB', 'mg').
* @param to Target prefixed unit string (e.g., 'MB', 'g').
* @returns The converted numeric value.
*/
convertFromTo(from: string, to: string): number;
/**
* @instance Converts the value using a static method name from the `Unit` class.
*
* - **N.B.** *Provides IntelliSense and type safety for method selection.*
*
* @param methodName - A static `Unit` method that accepts a number and returns a number.
* @returns The converted numeric value.
*/
convert(methodName: UnitNumberMethods): number;
/**
* @static Converts a value using scientific prefixes (e.g., kB to MB, mg to g).
*
* @param value The value to convert.
* @param fromPrefix The SI prefix of the source unit.
* @param toPrefix The SI prefix of the target unit.
* @returns The converted numeric value.
*/
static convertByPrefix(value: number, fromPrefix: SIPrefix, toPrefix: SIPrefix): number;
/**
* @static Converts from prefixed unit string to another (e.g., kB to MB, mg to g).
*
* @param value The numeric value.
* @param from Prefixed unit string (e.g., 'kB', 'mg').
* @param to Target prefixed unit string (e.g., 'MB', 'g').
* @returns The converted numeric value.
*/
static convertFromTo(value: number, from: string, to: string): number;
/** Converts meters to feet. */
static metersToFeet(m: number): number;
/** Converts feet to meters. */
static feetToMeters(ft: number): number;
/** Converts kilometers to miles. */
static kmToMiles(km: number): number;
/** Converts miles to kilometers. */
static milesToKm(mi: number): number;
/** Converts kilograms to pounds. */
static kgToLbs(kg: number): number;
/** Converts pounds to kilograms. */
static lbsToKg(lbs: number): number;
/** Converts grams to ounces. */
static gramsToOunces(g: number): number;
/** Converts ounces to grams. */
static ouncesToGrams(oz: number): number;
/** Converts Celsius to Fahrenheit. */
static celsiusToFahrenheit(c: number): number;
/** Converts Fahrenheit to Celsius. */
static fahrenheitToCelsius(f: number): number;
/** Converts Celsius to Kelvin. */
static celsiusToKelvin(c: number): number;
/** Converts Kelvin to Celsius. */
static kelvinToCelsius(k: number): number;
/** Converts Fahrenheit to Kelvin. */
static fahrenheitToKelvin(f: number): number;
/** Converts Kelvin to Fahrenheit. */
static kelvinToFahrenheit(k: number): number;
/** Converts milliliters to liters. */
static mlToLiters(ml: number): number;
/** Converts liters to milliliters. */
static litersToMl(l: number): number;
/** Converts gallons to milliliters. */
static gallonsToMl(gal: number): number;
/** Converts milliliters to gallons. */
static mlToGallons(ml: number): number;
/** Converts liters to gallons. */
static litersToGallons(l: number): number;
/** Converts gallons to liters. */
static gallonsToLiters(gal: number): number;
/** Converts square meters to square feet. */
static sqmToSqft(sqm: number): number;
/** Converts square feet to square meters. */
static sqftToSqm(sqft: number): number;
/** Converts kilometers per hour to miles per hour. */
static kmphToMph(kmph: number): number;
/** Converts miles per hour to kilometers per hour. */
static mphToKmph(mph: number): number;
/** Converts minutes to hours. */
static minutesToHours(min: number): number;
/** Converts seconds to minutes. */
static secondsToMinutes(sec: number): number;
/** Converts hours to days. */
static hoursToDays(hr: number): number;
/** Converts hours to minutes. */
static hoursToMinutes(h: number): number;
/** Converts minutes to seconds. */
static minutesToSeconds(m: number): number;
/** Converts days to hours. */
static daysToHours(d: number): number;
/** Converts megabytes to gigabytes. */
static mbToGb(mb: number): number;
/** Converts gigabytes to megabytes. */
static gbToMb(gb: number): number;
/** Converts kilobytes to megabytes. */
static kbToMb(kb: number): number;
/** Converts kilobytes to gigabytes. */
static kbToGb(kb: number): number;
/** Converts gigabytes to kilobytes. */
static gbToKb(gb: number): number;
/** Converts bytes to kilobytes. */
static bytesToKb(bytes: number): number;
/** Converts kilobytes to bytes. */
static kbToBytes(kb: number): number;
/** Converts megabytes to kilobytes. */
static mbToKb(mb: number): number;
/** Converts gigabytes to terabytes. */
static gbToTb(gb: number): number;
/** Converts terabytes to gigabytes. */
static tbToGb(tb: number): number;
/** Converts joules to calories. */
static joulesToCalories(j: number): number;
/** Converts calories to joules. */
static caloriesToJoules(cal: number): number;
/** Converts calories to kilojoules. */
static caloriesToKJoules(cal: number): number;
/** Converts kilojoules to calories. */
static kJoulesToCalories(kj: number): number;
/** Converts atmospheres to pascals. */
static atmToPascal(atm: number): number;
/** Converts pascals to atmospheres. */
static pascalToAtm(pa: number): number;
/** Converts bar to pascals. */
static barToPascal(bar: number): number;
/** Converts pascals to bar. */
static pascalToBar(pa: number): number;
/** Converts hertz to kilohertz. */
static hzToKHz(hz: number): number;
/** Converts kilohertz to hertz. */
static kHzToHz(khz: number): number;
/** Converts hertz to megahertz. */
static hzToMHz(hz: number): number;
/** Converts megahertz to hertz. */
static mHzToHz(mhz: number): number;
/** Converts kilohertz to megahertz. */
static kHzToMHz(khz: number): number;
/** Converts megahertz to kilohertz. */
static mHzToKHz(mhz: number): number;
/** Converts centimeters to meters. */
static cmToMeters(cm: number): number;
/** Converts meters to centimeters. */
static metersToCm(m: number): number;
/** Converts millimeters to meters. */
static mmToMeters(mm: number): number;
/** Converts meters to millimeters. */
static metersToMm(m: number): number;
/** Converts square kilometers to square meters. */
static sqkmToSqm(sqkm: number): number;
/** Converts square meters to square kilometers. */
static sqmToSqkm(sqm: number): number;
/** Converts square feet to square inches. */
static sqftToSqin(sqft: number): number;
/** Converts square inches to square feet. */
static sqinToSqft(sqin: number): number;
/** Converts watts to kilowatts. */
static wattsToKw(w: number): number;
/** Converts kilowatts to watts. */
static kwToWatts(kw: number): number;
}