Skip to content

Commit

Permalink
Merge pull request #9 from javiercejudo/refactor-as-transforms
Browse files Browse the repository at this point in the history
refactor(api): api as transforms of linear-converter
  • Loading branch information
javiercejudo committed Oct 5, 2015
2 parents f95b7b7 + aad29f8 commit 8501c1d
Show file tree
Hide file tree
Showing 2 changed files with 18 additions and 32 deletions.
5 changes: 3 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -32,8 +32,9 @@
"arbitrary-precision": "1.1.1",
"floating-adapter": "1.2.0",
"linear-converter": "7.0.1",
"linear-preset-factory": "^1.0.2",
"linear-preset-factory": "1.0.2",
"linear-presets": "2.0.0",
"lodash.flow": "3.2.1"
"lodash.flow": "3.2.1",
"lodash.identity": "3.0.0"
}
}
45 changes: 15 additions & 30 deletions src/linear-converter-to-go.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,51 +3,36 @@
'use strict';

var flow = require('lodash.flow');
var identity = require('lodash.identity');
var adapter = require('floating-adapter');
var arbitraryPrecision = require('arbitrary-precision');
var lcFactory = require('linear-converter');
var presetFactory = require('linear-preset-factory');

var PRESETS = require('linear-presets').PRESETS;

Object.keys(PRESETS).forEach(function(name) {
PRESETS[name] = presetFactory(PRESETS[name]);
});

var presetToNumbers = require('./util/presetToNumbers');

var PRESETS = require('linear-presets').PRESETS;
var Decimal = arbitraryPrecision(adapter);
var lcApi = lcFactory(Decimal);

var api = {};

var asIs = {
equivalentConversions: lcApi.equivalentConversions
};

var numerical = {
convert: lcApi.convert,
getCoefficientA: lcApi.getCoefficientA,
getCoefficientB: lcApi.getCoefficientB
var apiTransforms = {
equivalentConversions: identity,
convert: Number,
getCoefficientA: Number,
getCoefficientB: Number,
invertConversion: presetToNumbers,
composeConversions: presetToNumbers
};

var presetNumerical = {
invertConversion: lcApi.invertConversion,
composeConversions: lcApi.composeConversions
var api = {
PRESETS: {}
};

Object.keys(asIs).forEach(function(fnName) {
api[fnName] = asIs[fnName];
Object.keys(apiTransforms).forEach(function(fnName) {
api[fnName] = flow(lcApi[fnName], apiTransforms[fnName]);
});

Object.keys(numerical).forEach(function(fnName) {
api[fnName] = flow(numerical[fnName], Number);
});

Object.keys(presetNumerical).forEach(function(fnName) {
api[fnName] = flow(presetNumerical[fnName], presetToNumbers);
Object.keys(PRESETS).forEach(function(name) {
api.PRESETS[name] = presetFactory(PRESETS[name]);
});

api.PRESETS = PRESETS;

module.exports = api;

0 comments on commit 8501c1d

Please sign in to comment.