conversion/metre.js

/**
* Converts metres to a different unit or vice-versa
*
* @since v2.5.2-beta.3
* @category Conversion
* @param {Number} metres - The amount to convert
* @param {String} [to=km] - What the metres should be converted to
* Accepted units: <br>
* km, cm, mm, um, nm, ft, yard, miles, inch, m
* @returns string
* @example
* m('1 km', 'm') // 1000
*/

const m = (val, to = 'km') => {
	const mConversions = {
		'km': 0.001,
		'cm': 100,
		'mm': 1000,
		'm': 1,
		'um': 0.00000001,
		'nm': 0.0000000001,
		'ft': 3.28084,
		'yard': 1.09361,
		'inch': 39.3701,
		'miles': 0.000621371,
		get 'feet'() {
			return this['ft'];
		},
		get 'kilo'() {
			return this['km'];
		},
		get 'metres'() {
			return this['m'];
		},
		get 'yd'() {
			return this['yard'];
		},
		get 'in'() {
			return this['inch'];
		},
		get 'mi'() {
			return this['miles'];
		},
	};
	if (typeof val === 'number') {
		return val * (mConversions[to]);
	}
	if (typeof val === 'string') {
		const vals = val.split(/ +/);
		return parseFloat(vals[0]) / (mConversions[vals[1]]) * (mConversions[to]);
	}
};

export { m };