MCPcopy Create free account
hub / github.com/hydro-dev/Hydro / streamToBuffer

Function streamToBuffer

framework/utils/lib/utils.ts:103–125  ·  view source on GitHub ↗
(input: NodeJS.ReadableStream | superagent.Request, maxSize = 0)

Source from the content-addressed store, hash-verified

101 return 'req' in t;
102}
103export function streamToBuffer(input: NodeJS.ReadableStream | superagent.Request, maxSize = 0): Promise<Buffer> {
104 let stream: NodeJS.ReadableStream;
105 if (isSuperagentRequest(input)) {
106 const s = new PassThrough();
107 input.pipe(s);
108 stream = s;
109 } else stream = input;
110 return new Promise((resolve, reject) => {
111 const buffers = [];
112 let length = 0;
113 function onData(data) {
114 buffers.push(data);
115 length += data.length;
116 if (maxSize && length > maxSize) {
117 stream.removeListener('data', onData);
118 reject(new Error('buffer length exceeded'));
119 }
120 }
121 stream.on('error', reject);
122 stream.on('data', onData);
123 stream.on('end', () => resolve(Buffer.concat(buffers)));
124 });
125}
126
127export function bufferToStream(buffer: Buffer): NodeJS.ReadableStream {
128 const stream = new Duplex();

Callers 4

putMethod · 0.90
exportMethod · 0.90
applyFunction · 0.90
getMethod · 0.90

Calls 3

isSuperagentRequestFunction · 0.85
resolveFunction · 0.85
onMethod · 0.45

Tested by

no test coverage detected