From 211b216a3427f65b3d4e20555f22083174fc659a Mon Sep 17 00:00:00 2001 From: Apricot-S Date: Wed, 26 Jun 2024 02:18:59 +0000 Subject: [PATCH] feat: add command (WIP) --- src/command.ts | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 src/command.ts diff --git a/src/command.ts b/src/command.ts new file mode 100644 index 0000000..0f53e1f --- /dev/null +++ b/src/command.ts @@ -0,0 +1,35 @@ +#!/usr/bin/env node + +import fs from 'fs'; +import { parseArgs } from 'node:util'; +import { convertLog, MODE } from './lib/convertLog.js'; + +const options = { + mode: { + type: 'string', + short: 'm', + multiple: false, + default: MODE.Log, + }, +} as const; + +const main = async () => { + const args = process.argv.slice(2); + const parsedArgs = parseArgs({ options, args }); + const mode = parsedArgs.values.mode!; + + const input = fs.readFileSync(process.stdin.fd, 'utf-8'); + const parsedInput = JSON.parse(input); + + const outputJson = convertLog(parsedInput, mode); + + const output = Array.isArray(outputJson) + ? outputJson.join('\n') + '\n' + : JSON.stringify(outputJson) + '\n'; + fs.writeSync(process.stdout.fd, output); +}; + +main().catch((error) => { + process.exitCode = 1; + console.error(error); +});