diff --git a/package.json b/package.json index 2a6dfed..80357ad 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "name": "linear-converter-to-go", "version": "5.0.0", "description": "Zero configuration linear converter with floating precision", - "main": "src/linear-converter-to-go.js", + "main": "src/index.js", "scripts": { "test": "gulp test" }, @@ -33,6 +33,7 @@ "floating-adapter": "^1.2.0", "linear-converter": "^7.0.2", "linear-preset-any-to-any": "^3.0.2", + "linear-preset-to-number": "^1.0.0", "linear-presets": "^3.0.0", "lodash.flow": "^3.2.1", "lodash.identity": "^3.0.0" diff --git a/src/api-result-transformer.js b/src/api-result-transformer.js new file mode 100644 index 0000000..e205b01 --- /dev/null +++ b/src/api-result-transformer.js @@ -0,0 +1,13 @@ +/*jshint node:true */ + +'use strict'; + +var flow = require('lodash.flow'); + +module.exports = function apiResultTransformer(apiTransforms, apiIn) { + return Object.keys(apiTransforms).reduce(function(apiOut, fnName) { + apiOut[fnName] = flow(apiIn[fnName], apiTransforms[fnName]); + + return apiOut; + }, {}); +}; diff --git a/src/linear-converter-to-go.js b/src/index.js similarity index 69% rename from src/linear-converter-to-go.js rename to src/index.js index 0d6f5b9..75cd6d9 100644 --- a/src/linear-converter-to-go.js +++ b/src/index.js @@ -2,29 +2,23 @@ 'use strict'; -var flow = require('lodash.flow'); var identity = require('lodash.identity'); var Decimal = require('arbitrary-precision')(require('floating-adapter')); var lcApi = require('linear-converter')(Decimal); var anyToAny = require('linear-preset-any-to-any')(Decimal); var PRESETS = require('linear-presets').PRESETS; -var presetToNumbers = require('./util/presetToNumbers'); +var presetToNumbers = require('linear-preset-to-number'); -var apiTransforms = { +var api = require('./api-result-transformer')({ convert: Number, invertConversion: presetToNumbers, composeConversions: presetToNumbers, getCoefficientA: Number, getCoefficientB: Number, equivalentConversions: identity -}; +}, lcApi); -var api = {}; api.PRESETS = PRESETS; api.conversion = anyToAny; -Object.keys(apiTransforms).forEach(function(fnName) { - api[fnName] = flow(lcApi[fnName], apiTransforms[fnName]); -}); - module.exports = api; diff --git a/src/util/arrayToNumbers.js b/src/util/arrayToNumbers.js deleted file mode 100644 index d4023e5..0000000 --- a/src/util/arrayToNumbers.js +++ /dev/null @@ -1,7 +0,0 @@ -/*jshint node:true */ - -'use strict'; - -module.exports = function arrayToNumbers(array) { - return array.map(Number); -}; diff --git a/src/util/presetToNumbers.js b/src/util/presetToNumbers.js deleted file mode 100644 index 25b0064..0000000 --- a/src/util/presetToNumbers.js +++ /dev/null @@ -1,9 +0,0 @@ -/*jshint node:true */ - -'use strict'; - -var arrayToNumbers = require('./arrayToNumbers'); - -module.exports = function presetToNumbers(preset) { - return preset.map(arrayToNumbers); -}; diff --git a/test/spec.js b/test/spec.js index cbfc17f..320acc0 100644 --- a/test/spec.js +++ b/test/spec.js @@ -4,7 +4,7 @@ require('should'); -var lc = require('../src/linear-converter-to-go'); +var lc = require('../src/'); describe('linear converter to go', function() { it('should convert returning native numbers', function() {