0.2.2 • Published 8 years ago

engine-test v0.2.2

Weekly downloads
3
License
MPL-2.0
Repository
github
Last release
8 years ago

engine-test Build status for engine-test on Circle CI.

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 engine-test --save

Usage

Get it into your program.

const engineTest = require('engine-test');

Ask whether the current Node and/or npm in use are acceptable based on the engines in your package.json.

engineTest().then((satisfied) => {
    if (!satisfied) {
        console.error('Hey Jane! Update your Node.');
    }
});

If you want to override the expectations of your package.json, you can.

engineTest({npm : '2.x'}).then((satisfied) => {
    // true if on any version of npm 2
    console.log(satisfied);
});

If you happen to already have data on-hand about the user's current engines, you can save time by providing it. This is particularly good for npm, since its version must be determined asynchronously if it is not provided.

engineTest({npm : '2.x'}, {npm: '3.0.0'})
    .then((satisfied) => {
        console.log(satisfied);  // => false
    });

Ask for a more detailed report.

engineTest(undefined, undefined, {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'
        //         }
        //     }
        // }
    });

Have Engine Test automatically reject the promise with a nice reason error, allowing you to easily register a handler that will only run when the user has compatible engines. If they don't, they will see a nice stack trace.

engineTest.assert().then((satisfied) => {
    // 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.

  1. Fork it.
  2. Make a feature branch: git checkout -b my-new-feature
  3. Commit your changes: git commit -am 'Add some feature'
  4. Push to the branch: git push origin my-new-feature
  5. Submit a pull request.

License

MPL-2.0 © Seth Holladay

Go make something, dang it.