You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
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;
|