-
Notifications
You must be signed in to change notification settings - Fork 3
Description
Hi!
First, thanks for sharing this library. I'm opening this to discuss whether and how spawnAsync could support exposing the raw binary stdout content.
My use case is the following: I am using [pandoc] to convert HTML content to a binary format (.docx in my case). Pandoc outputs the raw docx content to stdout, but since spawnAsync concatenates the output in a string, the binary content is scrambled which makes the docx corrupted (probably because concatenating the binary output to a string force-converts to utf8).
For this reason I couldn't use spawnAsync and had to use the built-in spawn function and basically reimplement error handling and reading from the process stdout stream.
Of course we don't want this change to break backwards compatibility, so SpawnResult.stdout should still contain a string.
What I'd imagine is a new attribute on SpawnResult containing the raw Buffer[] content, e.g.:
process = spawnAsync('pandoc', ['--from=html', '--to=docx']);
process.child.stdin.end("<h1>Hello, world</h1>");
result = await process;
const docxContent = Buffer.concat(result.raw); // <--I'd be happy to work on this, if this sounds like a reasonable feature to add!