test-engine
v0.1.0
Published
Demand a Node or npm version to run your app.
Downloads
1
Maintainers
Readme
test-engine
Demand a Node or npm version to run your app.
Why?
- Fail fast with a friendly message.
- Get semver satisfaction between the expected and actual versions.
- Provide expected versions at runtime or via package.json.
- Provide actual versions at runtime, if you know them already.
Install
npm install test-engine --save
Usage
Get it into your program.
const testEngine = require('test-engine');
Ask whether the current Node and/or npm in use are acceptable based on the engines
in your package.json.
testEngine().then((satisfied) => {
if (!satisfied) {
console.error('Hey Jane! Update your Node.');
}
});
If you want to override the expectations of your package.json, you can.
testEngine({ npm : '2.x' }).then((satisfied) => {
// true if on any version of npm 2
console.log(satisfied);
});
If you happen to know the user's engines, you may provide them. This is particularly good for npm, because its version must be determined via the filesystem.
testEngine({ npm : '2.x' }, { npm : '3.0.0' })
.then((satisfied) => {
console.log(satisfied); // => false
});
Ask for a more detailed report.
testEngine(null, null, { detail : true })
.then((engines) => {
console.log(engines);
// {
// allSatisfied : false,
// satisfied : {
// npm : {
// expected : '^2.0.0',
// actual : '2.14.2'
// }
// },
// notSatisfied : {
// node : {
// expected : '>4.2.0',
// actual : '4.0.0'
// }
// }
// }
});
You can register a handler that will only run when the user has compatible engines. If they do not match according to semver, the promise will be rejected.
testEngine.assert().then(() => {
// Do anything. User is gauranteed to have compatible engines.
console.log('Hey Jane! You are good to go.');
});
Contributing
See our contributing guidelines for more details.
- Fork it.
- Make a feature branch:
git checkout -b my-new-feature
- Commit your changes:
git commit -am 'Add some feature'
- Push to the branch:
git push origin my-new-feature
- Submit a pull request.
License
Go make something, dang it.