2.0.2 • Published 1 year ago
requirements v2.0.2
requirements
Validate your project's software requirements.

install
$ npm install -D requirements$ yarn add --dev requirementssetup
Scaffold a new requirements.config.mjs configuration file
$ npx requirements --initconfig
Configure the requirements.config.mjs file in your project root.
export default {
software: {
node: '*',
yarn: '~1.17.3',
nginx: {
semver: '>= 1.16.x',
optional: true, // optional (won't fail)
installMessage: '<install instruction>', // custom message when binary is not found
updateMessage: '<update instruction>', // custom message when binary has wrong version
},
httpd: {
semver: '^1.x',
flag: '-v', // custom version flag
},
},
// custom functions to verify requirements which are not related to software versions
// see ./tests/custom-check-ssh.config.mjs for an example
custom: {
'Example title for custom requirements check', {
fn: () => { throw new Error('throw Error when requirement not met.') },
errorMessage: 'This error message is shown when the above function throws Error',
}
}
};check requirements
Run requirements command in the project root. By default it will try to find the requirements.config.mjs file.
npx requirementsOr use a custom path:
npx requirements --config <filepath>CLI options
npx requirements --helpOptions:
--help, -h Show help [boolean]
--version, -v Show version number [boolean]
--init, -i Create a requirements.config.mjs file
--config, -c Path to the configuration file
[default: "requirements.config.mjs"]
--force, -f Succeeds even if not all requirements are satisfied
[boolean] [default: false]
--quiet, -q Only output when errors are present [boolean]
--debug Print raw data [boolean]require('requirements')
const { checkSoftware, renderTable } = require('requirements');
(async () => {
const result = await checkSoftware({ node: '*' });
console.log(renderTable(result));
})();checkSoftware() returns an Array with results
[
{
bin: 'node',
semver: '*',
installed: true,
version: '12.8.1',
satisfies: true,
},
];testing
# test functionality
yarn build
node bin/requirements.js --config tests/requirements.config.mjs
# unit tests
yarn testlicense
The MIT License (MIT)
Copyright (c) 2017-2024 Steven Chim
2.0.3-beta.0
1 year ago
2.0.2
1 year ago
2.0.1
2 years ago
2.0.0
2 years ago
2.0.0-beta.2
2 years ago
2.0.0-beta.3
2 years ago
2.0.0-beta.1
2 years ago
1.4.1
5 years ago
1.4.0
5 years ago
1.3.2
6 years ago
1.3.1
6 years ago
1.3.0
6 years ago
1.2.0
6 years ago
1.1.0
6 years ago
1.0.0
6 years ago
0.0.1
9 years ago
0.0.0
9 years ago