UNPKG

tranquil-stream

Version:

Working with streams, keeping it simple.

21 lines (20 loc) 590 B
export async function jsonStreamToObject( stream: NodeJS.ReadWriteStream ): Promise<Record<string, any>> { return new Promise((resolve, reject) => { let response = ''; stream.on('data', data => (response += data)); // eslint-disable-line no-return-assign stream.on('error', err => reject(err)); stream.on('end', () => { try { resolve(JSON.parse(response)); } catch (e) { reject( new Error( 'Stream did not resolve to a JSON object, you may need to process it another way.' ) ); } }); }); }