Package Exports
- make-runnable
- make-runnable/custom
- make-runnable/custom.js
- make-runnable/index.js
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (make-runnable) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
Run Exported Functions Directly From The Command Line
What's the quickest way to trial a function you're exporting?
Doing this in your shell?
$node
>require('./your_file').addOneTo(3)
4No. That's annoying. And you have to repeat it all every time you change your_file.js.
Rather insert the following at the end of your_file.js to expose its exports to the command line:
require('make-runnable');That's it. Now you can do:
$node your_file.js addOneTo 3
4Syntax
Call your function with several args:
node [your_file] [function_name] firstArg secondArg Or call it with a single object:
node [your_file] [function_name] --key1 value1 --key2 value2 Full Example
Let's say you have the following file:
your_file.js
module.exports = {
addTogether: function(x,y){
return x + y
}, doSomethingWithObject: function(object){
object.newKey = "easy AF";
return object;
}, simpleValue: 'also works'
};
require('make-runnable');You can now do the following:
$sh
node your_file.js addTogether 1 2
> 3
node your_file.js doSomethingWithObject --x 1 --y hello
> {x: 1, y: 'hello', newKey: 'easy AF'}
node your_file.js simpleValue
> also worksHow does it work?
require.main === moduleis used to check if the module is being run directly, or imported.- If it's being run directly, then yargs is used to parse
process.argvso that the target function may be called with the desired arguments.
What if you want to:
Run a function directly exported by a module, not nested inside an exported object
Just leave off the function name, like so:
say_hello.js
module.exports = function(){console.log('hello');};$sh
node say_hello.js
> helloView the output of a function that doesn't print anything
The output is automatically printed.
View the resolved value of a Promise returned by a function
That happens automatically.
Remove the --------make-runnable-output-------- frame from printed output
You can pass in a custom option to make-runnable to remove that, like this:
require('make-runnable/custom')({
printOutputFrame: false
})Remove printed output
You can pass in a custom option to make-runnable to hide the output message and frame generated by make-runnable:
require('make-runnable/custom')({
printOutput: false
})Remove printed errors
You can pass in a custom option to make-runnable to hide error messages and frames generated by make-runnable:
require('make-runnable/custom')({
printErrorOutput: false
})Pass in multiple objects to the function being called
While you can pass a single object, or multiple primitives, multiple objects are not currently supported. PRs welcome!