Skip to main content

Class: Easy

Defined in: src/core/easy.ts:58

Curl - Low-level wrapper around libcurl easy interface

Provides direct access to curl_easy_* functions with proper memory management for callbacks and string lists.

Constructors​

Constructor​

new Easy(options?): Curl

Defined in: src/core/easy.ts:64

Parameters​

options?​

CurlOptions = {}

Returns​

Curl

Methods​

cleanup()​

cleanup(): void

Defined in: src/core/easy.ts:423

Cleanup and release resources

Returns​

void


dupHandle()​

dupHandle(): Curl

Defined in: src/core/easy.ts:367

Duplicate this curl handle Returns a new Curl instance with the same options

Returns​

Curl


getContentType()​

getContentType(): string | null

Defined in: src/core/easy.ts:200

Get content type from response

Returns​

string | null


getEffectiveUrl()​

getEffectiveUrl(): string | null

Defined in: src/core/easy.ts:193

Get effective URL (after redirects)

Returns​

string | null


getHandle()​

getHandle(): unknown

Defined in: src/core/easy.ts:102

Get the underlying curl handle (for use with CurlMulti)

Returns​

unknown


getHttpVersion()​

getHttpVersion(): number

Defined in: src/core/easy.ts:256

Get HTTP version used

Returns​

number


getInfo()​

getInfo(info): string | number | bigint | string[] | null

Defined in: src/core/easy.ts:144

Get info from a completed transfer Automatically selects the correct getinfo variant based on info type

Parameters​

info​

number

Returns​

string | number | bigint | string[] | null


getLocalIp()​

getLocalIp(): string | null

Defined in: src/core/easy.ts:228

Get local IP address

Returns​

string | null


getLocalPort()​

getLocalPort(): number

Defined in: src/core/easy.ts:235

Get local port

Returns​

number


getPrimaryIp()​

getPrimaryIp(): string | null

Defined in: src/core/easy.ts:214

Get primary IP address

Returns​

string | null


getPrimaryPort()​

getPrimaryPort(): number

Defined in: src/core/easy.ts:221

Get primary port

Returns​

number


getRedirectCount()​

getRedirectCount(): number

Defined in: src/core/easy.ts:242

Get redirect count

Returns​

number


getRedirectUrl()​

getRedirectUrl(): string | null

Defined in: src/core/easy.ts:249

Get redirect URL (if any)

Returns​

string | null


getResponseCode()​

getResponseCode(): number

Defined in: src/core/easy.ts:186

Get response status code

Returns​

number


getTotalTime()​

getTotalTime(): number

Defined in: src/core/easy.ts:207

Get total transfer time in seconds

Returns​

number


impersonate()​

impersonate(target, defaultHeaders?): void

Defined in: src/core/easy.ts:316

Enable browser impersonation (requires curl-impersonate)

Parameters​

target​

string

Browser target (e.g., "chrome124", "firefox120", "safari17_0")

defaultHeaders?​

boolean = true

Whether to add default browser headers (default: true)

Returns​

void


perform()​

perform(): void

Defined in: src/core/easy.ts:342

Perform the request synchronously

Returns​

void


reset()​

reset(): void

Defined in: src/core/easy.ts:353

Reset the handle to initial state for reuse Clears all options but keeps connections alive

Returns​

void


setAkamai()​

setAkamai(akamai): void

Defined in: src/core/easy.ts:405

Apply Akamai HTTP/2 fingerprint

Akamai format: settings|window_update|streams|header_order Example: 1:65536;3:1000;4:6291456;6:262144|15663105|0|m,a,s,p

Requires curl-impersonate.

Parameters​

akamai​

string

Akamai fingerprint string

Returns​

void


setExtraFingerprint()​

setExtraFingerprint(options): void

Defined in: src/core/easy.ts:416

Apply extra fingerprint options for fine-grained TLS/HTTP2 control

Requires curl-impersonate.

Parameters​

options​

ExtraFingerprint

Extra fingerprint configuration

Returns​

void


setHeaderFunction()​

setHeaderFunction(fn): void

Defined in: src/core/easy.ts:272

Set header callback function

Parameters​

fn​

WriteCallback

Returns​

void


setHeaders()​

setHeaders(headers): void

Defined in: src/core/easy.ts:304

Set HTTP headers from array of "Header: Value" strings

Parameters​

headers​

string[]

Returns​

void


setJa3()​

setJa3(ja3, permute?): void

Defined in: src/core/easy.ts:391

Apply JA3 TLS fingerprint

JA3 format: tls_version,ciphers,extensions,curves,curve_formats Example: 771,4865-4866-4867-49195-49199,0-23-65281-10-11-35-16-5-13-18-51-45-43-27-17513,29-23-24,0

Requires curl-impersonate for full extension control.

Parameters​

ja3​

string

JA3 fingerprint string

permute?​

boolean = false

If true, don't enforce extension order (allows random permutation)

Returns​

void


setOpt()​

setOpt(option, value): void

Defined in: src/core/easy.ts:110

Set a curl option Automatically selects the correct setopt variant based on value type

Parameters​

option​

number

value​

unknown

Returns​

void


setReadFunction()​

setReadFunction(fn): void

Defined in: src/core/easy.ts:281

Set read callback function

Parameters​

fn​

ReadCallback

Returns​

void


setStringList()​

setStringList(option, values): void

Defined in: src/core/easy.ts:290

Set a curl_slist option from an array of strings.

Parameters​

option​

number

values​

string[]

Returns​

void


setWriteFunction()​

setWriteFunction(fn): void

Defined in: src/core/easy.ts:263

Set write callback function

Parameters​

fn​

WriteCallback

Returns​

void


hasImpersonateSupport()​

static hasImpersonateSupport(): boolean

Defined in: src/core/easy.ts:335

Check if impersonation is available

Returns​

boolean


version()​

static version(): string

Defined in: src/core/easy.ts:435

Get libcurl version string

Returns​

string


versionInfo()​

static versionInfo(): unknown

Defined in: src/core/easy.ts:442

Get detailed version information

Returns​

unknown