Vanilla JavaScript CLI Script

Build a command-line utility in vanilla JavaScript using process.argv parsing, readline for interactive prompts, chalk-free colored output with ANSI codes,.

Javascript Cli Tooling

Code

snippet
import { readFile, writeFile } from 'fs/promises';
import { createInterface } from 'readline';

const args = Object.fromEntries(
  process.argv.slice(2).map((a) => {
    const [k, v] = a.split('=');
    return [k.replace('--', ''), v ?? true];
  }),
);

const rl = createInterface({ input: process.stdin, output: process.stdout });
const ask = (q) => new Promise((r) => rl.question(q, r));

const name = args.name ?? (await ask('Project name: '));
await writeFile(`${name}/package.json`, JSON.stringify({ name }, null, 2));
rl.close();