From c6259cfa620a242bd9e2ca3bd30793b673edaf81 Mon Sep 17 00:00:00 2001 From: ztimson Date: Sat, 27 Dec 2025 15:01:19 -0500 Subject: [PATCH] Better stdout capturing --- package.json | 2 +- src/cli.ts | 16 +++++----------- 2 files changed, 6 insertions(+), 12 deletions(-) diff --git a/package.json b/package.json index 02dba5d..5a31322 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@ztimson/node-utils", - "version": "1.0.5", + "version": "1.0.6", "description": "CSS Utility Classes", "author": "ztimson", "license": "MIT", diff --git a/src/cli.ts b/src/cli.ts index f9bbb11..bb02e64 100644 --- a/src/cli.ts +++ b/src/cli.ts @@ -1,17 +1,11 @@ -import {execSync, spawn} from 'node:child_process'; +import {exec, execSync} from 'node:child_process'; export function $(str: TemplateStringsArray, ...args: string[]): Promise { let cmd = str.reduce((acc, part, i) => acc + part + (args[i] || ''), ''); - return new Promise((res, rej) => { - const proc = spawn(cmd, {shell: true}); - let stdout = '', stderr = ''; - proc.stdout.on('data', (data) => stdout += data); - proc.stderr.on('data', (data) => stderr += data); - proc.on('close', (code) => { - if(code !== 0) return rej(new Error(stderr || stdout)); - res(stdout.trim()); - }); - }); + return new Promise((res, rej) => exec(cmd, (err, stdout, stderr) => { + if(err) return rej(stderr || err); + return res((stdout || stderr).trim()); + })) } export function $Sync(str: TemplateStringsArray, ...args: string[]): string {