Options
All
  • Public
  • Public/Protected
  • All
Menu

Enumeration CurlFeature

Flags to be used with {@link "Curl".Curl.enable | Curl#enable} and {@link "Curl".Curl.disable | Curl#disable}

Index

Enumeration members

NoDataParsing

NoDataParsing: = 1 << 0

Data received is passed as a Buffer to the end event.

NoDataStorage

NoDataStorage: = 1 << 2

Data received is not stored inside this handle, implies NoDataParsing.

NoHeaderParsing

NoHeaderParsing: = 1 << 1

Header received is not parsed, it's passed as a Buffer to the end event.

NoHeaderStorage

NoHeaderStorage: = 1 << 3

Header received is not stored inside this handle, implies NoHeaderParsing.

NoStorage

NoStorage: = NoDataStorage | NoHeaderStorage

Same than NoDataStorage | NoHeaderStorage, implies Raw.

Raw

Raw: = NoDataParsing | NoHeaderParsing

Same than NoDataParsing | NoHeaderParsing

StreamResponse

StreamResponse: = 1 << 4

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}

remarks

Make sure your libcurl version is greater than or equal 7.69.1. Versions older than that one are not reliable for streams usage.

Generated using TypeDoc