Skip to main content

Class: Easy

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

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:59

Parameters

options?

CurlOptions = {}

Returns

Curl

Methods

cleanup()

cleanup(): void

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

Cleanup and release resources

Returns

void


dupHandle()

dupHandle(): Curl

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

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:195

Get content type from response

Returns

string | null


getEffectiveUrl()

getEffectiveUrl(): string | null

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

Get effective URL (after redirects)

Returns

string | null


getHandle()

getHandle(): unknown

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

Get the underlying curl handle (for use with CurlMulti)

Returns

unknown


getHttpVersion()

getHttpVersion(): number

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

Get HTTP version used

Returns

number


getInfo()

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

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

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:223

Get local IP address

Returns

string | null


getLocalPort()

getLocalPort(): number

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

Get local port

Returns

number


getPrimaryIp()

getPrimaryIp(): string | null

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

Get primary IP address

Returns

string | null


getPrimaryPort()

getPrimaryPort(): number

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

Get primary port

Returns

number


getRedirectCount()

getRedirectCount(): number

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

Get redirect count

Returns

number


getRedirectUrl()

getRedirectUrl(): string | null

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

Get redirect URL (if any)

Returns

string | null


getResponseCode()

getResponseCode(): number

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

Get response status code

Returns

number


getTotalTime()

getTotalTime(): number

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

Get total transfer time in seconds

Returns

number


impersonate()

impersonate(target, defaultHeaders?): void

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

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:327

Perform the request synchronously

Returns

void


reset()

reset(): void

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

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:392

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:405

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:267

Set header callback function

Parameters

fn

WriteCallback

Returns

void


setHeaders()

setHeaders(headers): void

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

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:376

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:105

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:276

Set read callback function

Parameters

fn

ReadCallback

Returns

void


setWriteFunction()

setWriteFunction(fn): void

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

Set write callback function

Parameters

fn

WriteCallback

Returns

void


hasImpersonateSupport()

static hasImpersonateSupport(): boolean

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

Check if impersonation is available

Returns

boolean


version()

static version(): string

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

Get libcurl version string

Returns

string


versionInfo()

static versionInfo(): unknown

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

Get detailed version information

Returns

unknown