UNPKG

nhb-toolbox

Version:

A versatile collection of smart, efficient, and reusable utility functions, classes and types for everyday development needs.

65 lines (64 loc) 1.73 kB
"use strict"; var _a; Object.defineProperty(exports, "__esModule", { value: true }); exports.$Length = void 0; const base_1 = require("./base"); const constants_1 = require("./constants"); class $Length extends base_1.$BaseConverter { static #factors = { millimeter: 0.001, centimeter: 0.01, meter: 1, kilometer: 1000, millimetre: 0.001, centimetre: 0.01, metre: 1, kilometre: 1000, inch: 0.0254, foot: 0.3048, yard: 0.9144, mile: 1609.344, 'nautical-mile': 1852, 'light-year': 9.4607_3047_25808e15, }; constructor(value, unit) { super(value, unit); } #toMeters() { return this.value * _a.#factors[this.unit]; } to(target) { const inMeters = this.#toMeters(); return inMeters / _a.#factors[target]; } toAll() { const inMeters = this.#toMeters(); const result = {}; for (const unit of constants_1.UNITS.length) { result[unit] = inMeters / _a.#factors[unit]; } return result; } formatTo(target, options) { const value = this.to(target); const shortLabels = { millimeter: 'mm', centimeter: 'cm', meter: 'm', kilometer: 'km', millimetre: 'mm', centimetre: 'cm', metre: 'm', kilometre: 'km', inch: 'in', foot: 'ft', yard: 'yd', mile: 'mi', 'nautical-mile': 'nmi', 'light-year': 'ly', }; return this.$formatTo(value, target, shortLabels, options); } } exports.$Length = $Length; _a = $Length;