runit-on-cli
v1.0.8
Published
Run node modules directly on CLI
Readme
runit-on-cli
Run node modules directly on CLI
Install
npm install -g runit-on-cliAPI
$ runit-on-cli <module-name> <named-export> [-c] [-f [functionName]] [-n [version]] [-p [parameters...]] [-s] [-t [transformFunction]] [-u [subModule]]-c, --call-module-as-function: call the exported module as a function intead of object-f, --function-name [functionName]: call a specific function from exported module-n, --npm-module-version [version]: run a specific version of the npm module-p, --params [parameters...]: list of params that will be passed to the module/function call-s, --silent: print only the module output, without progress or logs-t, --transform-output [transformFunction]: define a function to modify module/function return-u, --sub-module [subModule]: import a submodule, such as 'crypto-js/sha256'
Examples
Running a module with default export, passing one string parameter:
$ runit-on-cli jwt-decode -p \"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c\"
The above example using silent mode (-s option) will output only the return content:
{ sub: '1234567890', name: 'John Doe', iat: 1516239022 }Running a module with a named export, passing two parameters, an object and an array:
$ runit-on-cli -s lodash orderBy -p '[{name:"banana"},{name:"apple"}]' '["name"]'[ { name: 'apple' }, { name: 'banana' } ]Passing a parameter from a file content:
$ runit-on-cli -s lodash orderBy -p "$(cat ./users.json)" '["first"]'[
{ first: 'ane', last: 'mcfly' },
{ first: 'john', last: 'mayer' },
{ first: 'mary', last: 'jane' }
]A more complex example using lodash map:
$ runit-on-cli -s lodash map -p "$(cat ./users.json)" 'e => {e.full = e.first + " " + e.last; return e;}'[
{ first: 'mary', last: 'jane', full: 'mary jane' },
{ first: 'john', last: 'mayer', full: 'john mayer' },
{ first: 'ane', last: 'mcfly', full: 'ane mcfly' }
]Running async functions and transform the output to return a specific property:
$ runit-on-cli -s axios get -p \'http://universities.hipolabs.com\' -t 'output.data'{
data: {
author: { name: 'hipo', website: 'http://hipolabs.com' },
github: 'https://github.com/Hipo/university-domains-list',
example: 'http://universities.hipolabs.com/search?name=middle&country=Turkey'
}
}A more complex example of using -t option:
$ runit-on-cli -s moment -t 'moment().add(7, "days").format("YYYY/MM/DD")'2021/08/01Using the -t option is possible to use the node environment, actually.
Using the node environment by -t option:
$ runit-on-cli -s axios get -p \'http://universities.hipolabs.com\' -t 'Object.keys(output.data)'[ 'author', 'github', 'example' ]Call a specific function from exported module:
$ runit-on-cli chalk -f blue -p \"Hello World\"
The same result is got by using -t option: runit-on-cli chalk -p \"Hello World\" -t 'chalk.blue(output)'
Another example of calling a specific function from exported module:
$ runit-on-cli -s faker -f phone.phoneNumber550-681-2495Running a module with a named export, without parameters:
$ runit-on-cli -s uuid v42a7bb8f8-ac20-46ea-a0eb-ea58df26d48eRunning the exported module as a function intead of object, and call a specific function:
$ runit-on-cli moment -c -f add -p 7 \'days\'
The -c options is necessary for this case because moment export is a function: moment().add(7,'days')
Running a submodule:
$ runit-on-cli crypto-js -u sha256 -p \'test\'
License
MIT © Danilo Sampaio
