UNPKG

@jsse/quick-maths

Version:
66 lines (62 loc) 1.56 kB
// src/cli.ts import process from "process"; // package.json var version = "0.0.2"; // src/quick-maths.ts function quickmaths() { let r = 0; r += 2 + 2; r -= 1; return r; } // src/cli.ts function isDebug() { const _debugEnvStr = (process.env["DEBUG"] ?? "false").toLowerCase(); const isNotDebug = _debugEnvStr === "false" || _debugEnvStr === "f" || _debugEnvStr === "0"; return !isNotDebug || !process.argv.some((arg) => arg.toLowerCase() === "--debug"); } function isTest() { return process.env["NODE_ENV"] === "test"; } function noop(..._args) { } var debug = isDebug() && !isTest() ? ( // eslint-disable-next-line @typescript-eslint/no-unsafe-argument,@typescript-eslint/no-explicit-any (...args) => console.log(...args) ) : noop; var echo = isTest() ? noop : console.log; async function cli(args) { const argv = args || []; if (debug) { debug("Debugging enabled"); } if (argv.includes("--help") || argv.includes("-h")) { echo("Usage: quick-maths"); return; } if (argv.includes("--version") || argv.includes("-v")) { echo(`quick-maths v${version}`); return; } const ti = Date.now(); const result = quickmaths(); const tf = Date.now(); echo( `2 plus 2 that's 4 minus 1 that's ${result} quick maths! (${tf - ti}ms)` ); } async function main(args) { const argv = args || process.argv.slice(2); await cli(argv); } if (process.env["NODE_ENV"] !== "test") { main().catch((e) => { console.error(e); process.exit(1); }).finally(() => { process.exit(0); }); } export { cli };