From 53fb219a0572ffdae937032e9c992a4cce7d19ea Mon Sep 17 00:00:00 2001 From: Yingchi Long Date: Wed, 19 Jun 2024 22:42:20 +0800 Subject: [PATCH] cli: add promisify spawn --- cli.ts | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/cli.ts b/cli.ts index 9f40712..d48b4c6 100644 --- a/cli.ts +++ b/cli.ts @@ -1,4 +1,4 @@ -import { SpawnSyncOptionsWithBufferEncoding, SpawnSyncReturns, spawnSync as rawSpawnSync } from "child_process"; +import { ChildProcess, SpawnSyncOptionsWithBufferEncoding, SpawnSyncReturns, spawnSync as rawSpawnSync } from "child_process"; export function check(result: SpawnSyncReturns) { if (result.error) @@ -16,3 +16,13 @@ export function checkedSpawnSync( ): SpawnSyncReturns { return check(rawSpawnSync(command, args, options)); } + +export function promisifySpawn(p: T) { + return new Promise((resolve, reject) => { + p.on("error", err => reject(err)); + p.on("close", number => { + if (number != 0) return reject(number); + resolve(p); + }); + }); +}