cnyks is a CLI runner for nodejs modules.
Aka : cnyks any ES6 class and 💥boom✨ you got the greatest command line runner ever (no fingerprint at all)
cnyks
will analyze your class/instance prototype and reflect the API it exposes, hence, any module can be handled by cnyks. There is no API to abide, compose your class the way you like.
"use strict";
var sleep = require('nyks/async/sleep');
module.exports = class {
test(name) {
console.log(name);
}
async hello(name) {
await sleep(1000);
return `Hello ${name}`;
}
static test(){
console.log("Got test");
}
}
Now, just cnyks' it !
cnyks foo.js
npm install -g cnyks
cnyks path/to/your/module.js
# enjoy !
--ir://
is a "namespace" for all cnyks dedicated arguments--ir://run=method_name
run "method_name" on your module, then quit--ir://start=method_name
run "method_name" on your module, then start the interactive loop--ir://json
(to be used with "run") silence ir helpers, format output as JSON--ir://run=hello --name=bar
run method "hello" with argumentname
set to 'bar' (i.e.function hello(name) { }
)--ir://run=hello --name::json='[1,2,3]'
run method "hello" with argumentname
set to[1, 2, 3]
(as a javascript array).
Cnyks expose a cnyksify plugin for browserify.
browserify --node entry.js --plugin cnyks/ify > bundle.js
node bundle.js
=> start runner
Just add this 2 lines footer to your module/class so it can be use by clyks directly
//at the end of your module
module.exports = SomeClass;
if(module.parent === null) //ensure module is called directly, i.e. not required
require('cnyks')(SomeClass); //start runner
Now just node someapp.js
to start cnyks runner.
Cnyks also allows you to declare async function through generators (internaly using co ).
require('cnyks/ify')
: a browserify pluginrequire('cnyks/prompt/bool')(prompt, default)
: prompt (using [read]) for a boolean
- Get rich or die tryin'
cli, reflection API, commander, cnyks, interactive runner, async/await, co, promise, Promises, yield, "Let's have a beer & talk in Paris"