@eryx/http/Session Module

JSON

Summary

Classes

_pool: { [string]: { PoolEntry } }
_cookies: CookieJar.CookieJar
_timeout: number?
_connectTimeout: number?
_readTimeout: number?
_writeTimeout: number?
_verifySsl: boolean?
_maxRedirects: number?
_decompress: boolean?
_idleTimeout: number?
_maxConnectionsPerHost: number
Session:_prunePoolEntries(key: string){ PoolEntry }
Session:_getConnection(parsedUrl: { scheme: string, host: string, port: number }, timeouts: HttpConnection.TimeoutOptions?, verifySsl: boolean?)HttpConnection.HttpConnection
Session:_discardConnection(parsedUrl: { scheme: string, host: string, port: number }, targetConn: HttpConnection.HttpConnection?)()
Session:evict(url: string?)()
Session:request(method: string, url: string, options: request.RequestOptions?)HttpConnection.HttpResponse
Session:stream(method: string, url: string, options: request.RequestOptions?)HttpConnection.HttpResponseStream
Session:get(url: string, options: request.RequestOptions?)HttpConnection.HttpResponse
Session:post(url: string, body: string?, options: request.RequestOptions?)HttpConnection.HttpResponse
Session:put(url: string, body: string?, options: request.RequestOptions?)HttpConnection.HttpResponse
Session:delete(url: string, options: request.RequestOptions?)HttpConnection.HttpResponse
Session:head(url: string, options: request.RequestOptions?)HttpConnection.HttpResponse
Session:close()()

API Reference

Classes

Session

A pooled HTTP client session.

Sessions reuse keep-alive connections per origin, share a cookie jar across requests by default, and support both buffered and streamed requests.

Properties

_pool: { [string]: { PoolEntry } }
_cookies: CookieJar.CookieJar
_timeout: number?
_connectTimeout: number?
_readTimeout: number?
_writeTimeout: number?
_verifySsl: boolean?
_maxRedirects: number?
_decompress: boolean?
_idleTimeout: number?
_maxConnectionsPerHost: number

Session.new

Creates a new pooled HTTP client session.

Session.new(options: SessionOptions?)Session

Parameters

options: SessionOptions?

Session-wide defaults for requests and pooling.

Returns

The new session.

Session:_prunePoolEntries

Session:_prunePoolEntries(key: string){ PoolEntry }

Session:_getConnection

Session:_getConnection(parsedUrl: { scheme: string, host: string, port: number }, timeouts: HttpConnection.TimeoutOptions?, verifySsl: boolean?)HttpConnection.HttpConnection

Session:_discardConnection

Session:_discardConnection(parsedUrl: { scheme: string, host: string, port: number }, targetConn: HttpConnection.HttpConnection?)()

Session:evict

Evicts pooled connections from the session.

When url is provided, only the pool entry for that origin is removed. When omitted, all pooled connections are closed.

Session:evict(url: string?)()

Parameters

url: string?

Optional URL whose origin should be evicted.

Session:_resolveOptions

Session:_resolveOptions(options: request.RequestOptions?)request.RequestOptions

Session:request

Makes a buffered HTTP request using the session's pooled connections.

Safe requests may be retried once when a reused keep-alive socket has gone stale before any response is received.

Session:request(method: string, url: string, options: request.RequestOptions?)HttpConnection.HttpResponse

Parameters

method: string

The HTTP method.

url: string

The absolute URL to request.

options: request.RequestOptions?

Optional per-request overrides.

Returns

HttpConnection.HttpResponse

The buffered response.

Session:stream

Makes a streamed HTTP request using the session's pooled connections.

The returned response must be fully consumed or explicitly closed before its connection can be reused.

Session:stream(method: string, url: string, options: request.RequestOptions?)HttpConnection.HttpResponseStream

Parameters

method: string

The HTTP method.

url: string

The absolute URL to request.

options: request.RequestOptions?

Optional per-request overrides.

Returns

HttpConnection.HttpResponseStream

The streamed response.

Session:get

Convenience wrapper for GET.

Session:get(url: string, options: request.RequestOptions?)HttpConnection.HttpResponse

Parameters

url: string

The absolute URL to request.

options: request.RequestOptions?

Optional per-request overrides.

Returns

HttpConnection.HttpResponse

The buffered response.

Session:post

Convenience wrapper for POST.

Session:post(url: string, body: string?, options: request.RequestOptions?)HttpConnection.HttpResponse

Parameters

url: string

The absolute URL to request.

body: string?

Optional raw request body.

options: request.RequestOptions?

Optional per-request overrides.

Returns

HttpConnection.HttpResponse

The buffered response.

Session:put

Convenience wrapper for PUT.

Session:put(url: string, body: string?, options: request.RequestOptions?)HttpConnection.HttpResponse

Parameters

url: string

The absolute URL to request.

body: string?

Optional raw request body.

options: request.RequestOptions?

Optional per-request overrides.

Returns

HttpConnection.HttpResponse

The buffered response.

Session:delete

Convenience wrapper for DELETE.

Session:delete(url: string, options: request.RequestOptions?)HttpConnection.HttpResponse

Parameters

url: string

The absolute URL to request.

options: request.RequestOptions?

Optional per-request overrides.

Returns

HttpConnection.HttpResponse

The buffered response.

Session:head

Convenience wrapper for HEAD.

Session:head(url: string, options: request.RequestOptions?)HttpConnection.HttpResponse

Parameters

url: string

The absolute URL to request.

options: request.RequestOptions?

Optional per-request overrides.

Returns

HttpConnection.HttpResponse

The buffered response (body is empty).

Session:close

Closes every pooled connection and empties the session pool.

Session:close()()

Types

SessionOptions

Options for creating a Session.

timeout: number?

Applies one timeout to connect, read, and write phases when the more specific timeout fields are omitted.

connectTimeout: number?

Default timeout used while opening new pooled connections.

readTimeout: number?

Default timeout used while waiting for response bytes.

writeTimeout: number?

Default timeout used while sending request bytes.

verifySsl: boolean?
maxRedirects: number?
decompress: boolean?
idleTimeout: number?
maxConnectionsPerHost: number?

Maximum number of pooled connections per scheme/host/port.

cookies: CookieJar.CookieJar?

Shared cookie jar used when requests do not override it.