Data received is passed as a Buffer to the end event.
Data received is not stored inside this handle, implies NoDataParsing
.
Header received is not parsed, it's passed as a Buffer to the end event.
Header received is not stored inside this handle, implies NoHeaderParsing
.
Same than NoDataStorage | NoHeaderStorage
, implies Raw
.
Same than NoDataParsing | NoHeaderParsing
This will change the behavior of the internal WRITEFUNCTION
to push data into a stream instead of
buffering all the data into multiple Buffer
chunks.
As soon as the stream is available, it will be passed as the first argument for the stream
event.
Example usage:
const curl = new Curl()
curl.setOpt('URL', 'https://some-domain/upload')
curl.setStreamProgressCallback(() => {
// this will use the default progress callback from libcurl
return CurlProgressFunc.Continue
})
curl.on('end', (statusCode, data) => {
console.log('\n'.repeat(5))
console.log(
`curl - end - status: ${statusCode} - data length: ${data.length}`,
)
curl.close()
})
curl.on('error', (error, errorCode) => {
console.log('\n'.repeat(5))
console.error('curl - error: ', error, errorCode)
curl.close()
})
curl.on('stream', async (stream, _statusCode, _headers) => {
const writableStream = fs.createWriteStream('./test.out')
stream.pipe(writableStream)
})
curl.perform()
Using this implies NoDataStorage
.
To control the highWaterMark
option of the response stream, see {@link "Curl".Curl.setStreamResponseHighWaterMark | Curl#setStreamResponseHighWaterMark
}
Generated using TypeDoc
Flags to be used with {@link "Curl".Curl.enable |
Curl#enable
} and {@link "Curl".Curl.disable |Curl#disable
}