@quase/cli
About
A simple cli helper.
Based and adapted from meow, and includes update-notifier, plus some features:
- We change the update notifier message if Yarn is detected.
- Passing a
configFiles
value automates the requiring of a config file. The user will be able to override the default using --config=another-file.js
. - Passing a
configKey
value automates the requiring of a config object from the package.json
file, if a config file is not available. - Support for
@quase/config
's schema and defaults application.
Usage example
bin/index.js
#!/usr/bin/env node
require( "@quase/cli" ).default(
( {
input, // Array with non-flag arguments
options, // Flags, config, and defaults all applied
flags, // The flags only (without defaults applied yet)
config, // The config object only
configLocation, // The absolute path of the config file found or "pkg"
pkg, // The package.json object
help, // The help text used with --help
showHelp, // showHelp([code=2]) - Show the help text and exit with code
showVersion, // showVersion() - Show the version text and exit
} ) => {
},
{
configFiles: "sample.config.js",
configKey: "sample",
schema( t ) {
return {
someFlagName: {
type: "boolean",
description: "",
alias: "s",
default: false
},
someObject: {
type: t.object( {
someProp: {
type: "number"
}
} )
}
};
},
notifier: {
options: {},
notify: {}
},
inferType: false,
help: "",
usage: "",
description: undefined,
version: undefined,
autoHelp: true,
autoVersion: true,
argv: process.argv.slice( 2 )
}
);
package.json
{
"bin": {
"sample": "bin/index.js"
},
}
Copy-paste example
bin/index.js
#!/usr/bin/env node
require( "@quase/cli" ).default( ( { options, input } ) => {
require( "../dist" ).default( options, input );
}, {
usage: "$ sample",
schema: {},
configFiles: "sample.config.js",
configKey: "sample"
} );