| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081 | 
							- 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;
 
 
  |