Skip to content

Common Units

File Size

ts
import SmartUnit from 'smart-unit'

const fileSize = new SmartUnit(['B', 'KB', 'MB', 'GB', 'TB'], {
  baseDigit: 1024,
})

fileSize.format(1024)              // => "1KB"
fileSize.format(1024 * 1024 * 100) // => "100MB"
fileSize.format(1536)              // => "1.5KB"

Length

Metric Units

ts
// Millimeter -> Centimeter -> Meter -> Kilometer
const length = new SmartUnit(['mm', 10, 'cm', 100, 'm', 1000, 'km'])

length.format(25)           // => "2.5cm"
length.format(1500)         // => "1.5m"
length.format(1500000)      // => "1.5km"

Imperial Units

ts
// Inch -> Foot -> Yard -> Mile
const imperial = new SmartUnit(['in', 12, 'ft', 3, 'yd', 1760, 'mi'])

console.log(imperial.format(24))    // => "2ft"
console.log(imperial.format(36))    // => "1yd"
console.log(imperial.format(63360)) // => "1mi"

Time

ts
import SmartUnit from 'smart-unit'

// Millisecond -> Second -> Minute -> Hour
const time = new SmartUnit(['ms', 1000, 's', 60, 'm', 60, 'h'])

time.parse('90s')    // => 90000 (ms)
time.parse('2.5h')   // => 9000000 (ms)
time.parse('30m')    // => 1800000 (ms)

Frequency

ts
// Hz -> kHz -> MHz -> GHz
const freq = new SmartUnit(['Hz', 'kHz', 'MHz', 'GHz'], {
  baseDigit: 1000,
})

freq.format(2400000000)  // => "2.4GHz"

Data Transfer Rate

ts
// bps -> Kbps -> Mbps -> Gbps
const bitrate = new SmartUnit(['bps', 'Kbps', 'Mbps', 'Gbps'], {
  baseDigit: 1000,
  fractionDigits: 1,
})

bitrate.format(1500000)  // => "1.5Mbps"

Financial Amount (High Precision)

ts
const currency = new SmartUnitPrecision(['', 'K', 'M', 'B', 'T'], {
  baseDigit: 1000,
  fractionDigits: 2,
})

currency.format('12345678901234567890')  // => "12345678.90T"

Released under the MIT License.