An open API service indexing awesome lists of open source software.

https://github.com/blackglory/geyser-js

🌲 The JavaScript SDK for Geyser
https://github.com/blackglory/geyser-js

browser esm library nodejs npm-package typescript

Last synced: 3 months ago
JSON representation

🌲 The JavaScript SDK for Geyser

Awesome Lists containing this project

README

          

# geyser-js
## Install
```sh
npm install --save @blackglory/geyser-js
# or
yarn add @blackglory/geyser-js
```

## API
### GeyserClient
```ts
interface IRateLimiterConfig extends JSONObject {
duration: number | null
limit: number | null
}

interface IGeyserClientOptions {
server: string
timeout?: number
retryIntervalForReconnection?: number
}

class GeyserClient {
static create(options: IGeyserClientOptions): Promise

close(): Promise

getAllRateLimiterIds(signal?: AbortSignal): Promise

getRateLimiter(
rateLimiterId: string
, signal?: AbortSignal
): Promise

setRateLimiter(
rateLimiterId: string
, config: IRateLimiterConfig
, signal?: AbortSignal
): Promise

removeRateLimiter(rateLimiterId: string, signal?: AbortSignal): Promise

/**
* 重置速率限制器的状态.
*
* @throws {RateLimiterNotFound}
*/
resetRateLimiter(rateLimiterId: string, signal?: AbortSignal): Promise

/**
* @throws {RateLimiterNotFound}
*/
acquireToken(rateLimiterId: string, signal?: AbortSignal): Promise
}

/**
* 速率限制器在未经配置的情况下, 相当于不存在.
*/
class RateLimiterNotFound extends CustomError {}
```