|                                                                                 |  | const conversions = require('./conversions');const route = require('./route');
const convert = {};
const models = Object.keys(conversions);
function wrapRaw(fn) {	const wrappedFn = function (...args) {		const arg0 = args[0];		if (arg0 === undefined || arg0 === null) {			return arg0;		}
		if (arg0.length > 1) {			args = arg0;		}
		return fn(args);	};
	// Preserve .conversion property if there is one
	if ('conversion' in fn) {		wrappedFn.conversion = fn.conversion;	}
	return wrappedFn;}
function wrapRounded(fn) {	const wrappedFn = function (...args) {		const arg0 = args[0];
		if (arg0 === undefined || arg0 === null) {			return arg0;		}
		if (arg0.length > 1) {			args = arg0;		}
		const result = fn(args);
		// We're assuming the result is an array here.
		// see notice in conversions.js; don't use box types
		// in conversion functions.
		if (typeof result === 'object') {			for (let len = result.length, i = 0; i < len; i++) {				result[i] = Math.round(result[i]);			}		}
		return result;	};
	// Preserve .conversion property if there is one
	if ('conversion' in fn) {		wrappedFn.conversion = fn.conversion;	}
	return wrappedFn;}
models.forEach(fromModel => {	convert[fromModel] = {};
	Object.defineProperty(convert[fromModel], 'channels', {value: conversions[fromModel].channels});	Object.defineProperty(convert[fromModel], 'labels', {value: conversions[fromModel].labels});
	const routes = route(fromModel);	const routeModels = Object.keys(routes);
	routeModels.forEach(toModel => {		const fn = routes[toModel];
		convert[fromModel][toModel] = wrapRounded(fn);		convert[fromModel][toModel].raw = wrapRaw(fn);	});});
module.exports = convert;
 |