node js child_process read stdout
//Prints stdout of childprocess(here: from spawning a python script) 
// line by line, the rest (like errors) as whole:
const { spawn } = require("child_process");
const { chunksToLinesAsync, chomp } = require('@rauschma/stringio');
const file = require.resolve('./dummyData.py');
async function main() {
    const ls = spawn("python" , [file]);
    await echoStdout(ls.stdout); 
    async function echoStdout(readable) {
        for await (const line of chunksToLinesAsync(readable)) { // (C)
        console.log('LINE: '+chomp(line))
        }
    }
    ls.stdout.on("data", data => {
        console.log(`stdout: ${data}`);
    });
    
    ls.stderr.on("data", data => {
        console.log(`stderr: ${data}`);
    });
    
    ls.on('error', (error) => {
        console.log(`error: ${error.message}`);
    });
    
    ls.on("close", code => {
        console.log(`child process exited with code ${code}`);
    }); 
}
main();
