An easy way to write TypeScript cli script application.
npm install optc  
An easy way to write a single-file TypeScript command line application.
``bash`
npm i -g optc
See example echo.ts.
`ts
#!/usr/bin/env optc
export const name = 'echo';
export const version = '0.0.0';
// Echo some message
export default function (text: string) {
console.log(text);
return text;
}
// Greet someone
export function greet(name?: string, option?: { prefix: string }) {
const text = ${option?.prefix ?? 'Hello'}, ${name ?? 'Stranger'};`
console.log(text);
return text;
}
When running the above CLI script, Optc will automatically generate a default command with a required paramter text, and a subcommand greet with an optional paramter name.
`bash
optc examples/echo.ts wordword
optc examples/echo.ts greet world
optc examples/echo.ts --version
optc examples/echo.ts --help
flag:You can see more examples in the ./examples.
$3
Optc has some builtin functions based on some famous libs.
+
cd(dir: string): Change directory
+ pwd(): Print working directory
+ $cmd : Exec command like zx
+ path: Node.js Path API
+ fs: fs-extra
+ glob: globby
+ http: axios$3
You can init a node module at
~/.optc/, and create ~/.optc/dep.ts to import all your custom libraries, functions and so on to your script execution environment.`ts
// ~/.optc/dep.ts// Make sure that you have install "kolorist" in
~/.optc/
import kolorist from 'kolorist'export default function(global: any) {
global.color = kolorist
}
``+ Optc extracts type infomation from the abstract syntax tree of the code (based on babel), so you can not do some type magic (union type, generic type and so on) on the types of paramters.
+ Global code snippets can not have the type of global functions. Currently, it links to the local type declaration file.
+ argc: A handy way to handle sh/bash cli parameters.
+ zx: A tool for writing better scripts
+ cac: Simple yet powerful framework for building command-line apps.
MIT License © 2023 XLor