nodejs-smart-libraries
stmux
https://www.npmjs.com/package/stmux
Simple Terminal Multiplexing for Node Environments
This utility is primarily intended to be used from within a package.json script to easily side-by-side run various NPM-based commands in a Node.js build-time environment.
blessed、blessed-contrib
https://www.npmjs.com/package/blessed
https://www.npmjs.com/package/blessed-contrib
A curses-like library with a high level terminal interface API for node.js.
shimmer
https://www.npmjs.com/package/shimmer
shimmer does a bunch of the work necessary to wrap other methods in a wrapper you provide.
v8-profiler-next
https://www.npmjs.com/package/v8-profiler-next
v8-profiler-next provides node bindings for the v8 profiler.
heapdump
https://www.npmjs.com/package/heapdump
Make a dump of the V8 heap for later inspection.
yargs
https://github.com/yargs/yargs
Yargs helps you build interactive command line tools, by parsing arguments and generating an elegant user interface.
# tsnd src/index.ts add --title 'title-A' --body 'body-A' 
import yargs, { Arguments, Argv, CommandModule } from 'yargs'
import { hideBin } from "yargs/helpers";
console.log(process.argv)
type PrepareArgs = { title: string, body: string }
class ABC implements CommandModule<{}, PrepareArgs>{
    constructor(
      public command = "add", 
      public describe = "Add a new note"){
    }
    builder(argv: Argv<{}>): Argv<PrepareArgs>{
        return argv
      .option("title", {
        desc: "name prefix",
        type: "string",
        demandOption: true,
      })
      .option("body", {
        desc: "directory containing video files",
        type: "string",
        demandOption: true,
      });
    }
    async handler(args: Arguments<PrepareArgs>){
        console.log(args.title, args.body)
    }
}    
// Create add command 
yargs(hideBin(process.argv))    // 删除 process.argv 包含的头两个字段: /bin/node, filePath
    .scriptName("yargs-test")
    .command(new ABC() as any)
    .command(new XXX() as any)  // XXX is another command
    .parseAsync();