cli: add promisify spawn

This commit is contained in:
2024-06-19 22:42:20 +08:00
parent 10096bd147
commit 53fb219a05

12
cli.ts
View File

@@ -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<Buffer | string>) {
if (result.error)
@@ -16,3 +16,13 @@ export function checkedSpawnSync(
): SpawnSyncReturns<Buffer | string> {
return check(rawSpawnSync(command, args, options));
}
export function promisifySpawn<T extends ChildProcess>(p: T) {
return new Promise<T>((resolve, reject) => {
p.on("error", err => reject(err));
p.on("close", number => {
if (number != 0) return reject(number);
resolve(p);
});
});
}