@blackglory/geyser-js
TypeScript icon, indicating that this package has built-in type declarations

0.9.1 • Public • Published

geyser-js

Install

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

API

GeyserClient

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<GeyserClient>

  close(): Promise<void>

  getAllRateLimiterIds(timeout?: number): Promise<string[]>

  getRateLimiter(rateLimiterId: string, timeout?: number): Promise<IRateLimiterConfig | null>

  setRateLimiter(
    rateLimiterId: string
  , config: IRateLimiterConfig
  , timeout?: number
  ): Promise<void>

  removeRateLimiter(rateLimiterId: string, timeout?: number): Promise<void>

  /**
   * 重置速率限制器的状态.
   * 
   * @throws {RateLimiterNotFound}
   */
  resetRateLimiter(rateLimiterId: string, timeout?: number): Promise<void>

  /**
   * @throws {RateLimiterNotFound}
   */
  acquireToken(rateLimiterId: string, timeout?: number): Promise<void>
}

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

Readme

Keywords

none

Package Sidebar

Install

npm i @blackglory/geyser-js

Weekly Downloads

3

Version

0.9.1

License

MIT

Unpacked Size

20.4 kB

Total Files

23

Last publish

Collaborators

  • black_glory