Select an attribute of an object based on semver versioning
npm install semver-select




API is stable. All features tested and working.
A few useful tools for when you need to select a function or other variable based on a semver version.
For example, if you are writing an app which interacts with an API which needs a different calling signature depending on it's version, you can use this to choose a function that implements the right interface for that API version.
Takes a list of choices as an object with semver match strings as the object's attributes.
Loops through choice's attributes and returns the first matching result.
Returns undefined if no match found.
``js
var semverSelect = require('semver-select');
var fns = {
'^1.0.0': function(in) { return 'v1' },
'^2.0.0': function(in) { return 'v2' },
'*': function(in) { return 'other' }
};
semverSelect('1.0.2', fns)(); // returns 'v1'
semverSelect('2.3.8', fns)(); // returns 'v2'
semverSelect('4.0.0', fns)(); // returns 'other'
`
Takes an object and maps the values of attributes to the semver-chosen choice.
`js`
semverSelect('2.3.8', {
monkey: {
'^1.0.0': 'v1',
'1.0.0 - 2.x.x': 'v2',
'*': 'other'
},
dinosaur: {
'^1.0.0': 'ver1',
'^2.0.0': 'ver2'
}
}); // returns { monkey: 'v2', dinosaur: 'ver2' }
Use npm test to run the tests. Use npm run cover` to check coverage.
See changelog.md
If you discover a bug, please raise an issue on Github. https://github.com/overlookmotel/semver-select/issues
Pull requests are very welcome. Please:
* ensure all tests pass before submitting PR
* add an entry to changelog
* add tests for new features
* document new functionality/API additions in README