shell-ts v1.0.0
shell-ts
Library to execute command line tasks in nodejs and typescript
Install
# with npm
npm install shell-ts
# with yarn
yarn add shell-ts
Quick use and demo
Read Typescript starter project
Create Shell script
Minimal shell script
import { Shell, ShellInterface } from "shell-ts";
export default class YoloShell extends Shell implements ShellInterface {
public execute(): void {
console.log('I run my yolo script')
}
}
Shell class api
Shell.ts
is the abstract class that you need to extend.
Arguments
requiredOptions
List the options that are required. If an option is missing a MissingOptionException
is thrown.
protected requiredOptions: string[] = [];
Usage :
protected requiredOptions: string[] = ["id"];
// mycommand --id 3
// --- OK
// mycommand
// --- Exception
Methods
constructor
constructor({ args, options, config }: ParamsI)
args
: list of arguments of your command (string[]
) see the starteroptions
: options of your command (object
) see the starterconfig
: config of your project (object
) see the starter
execute
put your script code here
getArguments
List all arguments of your command
public getArguments(): string[]
getOptions
List all options of your command
public getOptions(): OptionsI
getOption
Get an option by key
public getOption(key: string): string | undefined
getConfigs
Get all config object
public getConfigs(): ConfigI | undefined
getConfig
Get a config by key
public getConfig(key: string): string | number | boolean | ConfigI | undefined
Usages :
/* config = {
db: {
user: "root"
},
debug: true
} */
this.getConfig('debug'); // true
this.getConfig('db.user'); // "root"
isMissingOption
Check if an option is missing in your command
public isMissingOption(key: string): boolean
Usages :
// mycommand --id 3
this.isMissingOption('id'); // false
this.isMissingOption('unknow'); // true
verbose
Log message only if verbose option passed in your command
protected verbose(message: string): void
Contributing
Clone repository and run npm install
.
Run tests with command npm run test
Commit your modifications with commitizen : npm run commit
4 years ago