flik
v0.7.3
Published
Build auto-documenting CLIs with an easy-to-use, declarative API.
Downloads
26
Readme
flik
Build auto-documenting CLIs with an easy-to-use, declarative API.
CLI frameworks in NodeJS are a dime-a-dozen. I built flik
anyways because I didn't love any solution out there. In particular, there was always a little bit of jank when working with TypeScript. flik
is built from the ground-up to make the best use of TypeScript possible, especially when working with the dynamic nature of CLIs.
🔗 Installation
With NPM:
npm install -D flik
With Yarn:
yarn add -D flik
⚡️ Usage
W.I.P.
Building your first command
It's easy!™️
Just give your command some options & define some functionality:
// my-cool-cli/commands/hello-world.ts
import { createCommand } from 'flik';
export const helloWorld = createCommand(
{
/**
* The name of your command.
*/
command: 'hello',
/**
*
*/
description: "I'm just here to say hello",
/**
* Provide some example usage(s) for your command.
*
* These will be printed (with the binary & command automatically prefixed)
* in help text if the user provides the `--help` flag.
*/
examples: [
'testing testing one two three'
],
/**
* Define some strongly-typed inputs for your command.
* (We'll take a deeper look at this in the next section)
*/
inputs: { flags, positionalArgs, variadicArg },
/**
*
*/
cleanup: async () => {
console.log('I log something when the process is stopped.');
}
},
/**
* Do some stuff with your command!
*/
async () => {
console.log('hello!');
}
);
Working with inputs
TODO
Putting it all together
// my-cool-cli/index.ts
import { start } from 'flik';
import { helloWorld } from './commands/hello-world';
start({
/**
*
*/
binaryName: 'my-cool-cli',
/**
*
*/
version: '1.0.0',
/**
*
*/
commands: [helloWorld],
});