Skip to main content

Class: Easy

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

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

Parameters

options?

CurlOptions = {}

Returns

Curl

Methods

cleanup()

cleanup(): void

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

Cleanup and release resources

Returns

void


dupHandle()

dupHandle(): Curl

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

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

Get content type from response

Returns

string | null


getEffectiveUrl()

getEffectiveUrl(): string | null

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

Get effective URL (after redirects)

Returns

string | null


getHandle()

getHandle(): unknown

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

Get the underlying curl handle (for use with CurlMulti)

Returns

unknown


getHttpVersion()

getHttpVersion(): number

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

Get HTTP version used

Returns

number


getInfo()

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

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

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

Get local IP address

Returns

string | null


getLocalPort()

getLocalPort(): number

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

Get local port

Returns

number


getPrimaryIp()

getPrimaryIp(): string | null

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

Get primary IP address

Returns

string | null


getPrimaryPort()

getPrimaryPort(): number

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

Get primary port

Returns

number


getRedirectCount()

getRedirectCount(): number

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

Get redirect count

Returns

number


getRedirectUrl()

getRedirectUrl(): string | null

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

Get redirect URL (if any)

Returns

string | null


getResponseCode()

getResponseCode(): number

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

Get response status code

Returns

number


getTotalTime()

getTotalTime(): number

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

Get total transfer time in seconds

Returns

number


impersonate()

impersonate(target, defaultHeaders?): void

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

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

Perform the request synchronously

Returns

void


reset()

reset(): void

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

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

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

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

Set header callback function

Parameters

fn

WriteCallback

Returns

void


setHeaders()

setHeaders(headers): void

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

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

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

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

Parameters

option

number

value

unknown

Returns

void


setWriteFunction()

setWriteFunction(fn): void

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

Set write callback function

Parameters

fn

WriteCallback

Returns

void


hasImpersonateSupport()

static hasImpersonateSupport(): boolean

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

Check if impersonation is available

Returns

boolean


version()

static version(): string

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

Get libcurl version string

Returns

string


versionInfo()

static versionInfo(): unknown

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

Get detailed version information

Returns

unknown