0.3.2 • Published 2 years ago

@kyarame/topia v0.3.2

Weekly downloads
-
License
MIT
Repository
-
Last release
2 years ago

@kyarame/topia@0.3.2

An unofficial トピア API explorer.

Current トピア version: 4.14.0.

import * as Topia from "@kyarame/topia";

const config: Topia.Types.Config = {
  accessToken: process.env.ACCESS_TOKEN,
  identificationHash: process.env.IDENTIFICATION_HASH,
};

const client = new Topia.Client(config);
await client.initialize();

Installation

npm install @kyarame/topia
# or
yarn add @kyarame/topia

Build from sources

yarn build

Run examples

yarn build
yarn ts-node -r tsconfig-paths/register --files examples/<example-name>.ts

API

Client

The main client.

  • constructor(config?: Types.Config, APP_TOKEN_PORT?: number): Set client configs and the port on which the app token server will be listening.
  • Public fields and getters:
    • platform: Types.Platform
    • clientVersion: string
    • accessToken?: string
    • identificationHash?: string
    • refreshToken?: string
    • onRefresh?: (config: Types.Config) => void | Promise<void>: The function called when this.accessToken changes.
    • masterData?: Types.MasterData
    • appToken?: string
    • get appTokenPort(): number: Get the port of the app token server. Refer to examples/app-token.ts.
    • get config(): Types.Config: Get the config object.
    • room: RoomClient: Refer to the following subsection.
  • async initialize(): Initialize the client.
  • async waitForAppToken(): Wait for the app token to be provided. Refer to examples/app-token.ts.
  • async request<E>(endpoint: E, data?: Types.API[E]["req"], match?: Types.API[E]): Promise<Types.API[E]["res"]>: Request to the main API server.

RoomClient

type RoomId = number

  • Public fields and getters:

    • masterData?: Types.MasterData
    • idToken?: string: Firebase ID token.
    • idTokenExpires: number: The expire date of idToken.
    • onData?: (roomId: RoomId, path: string, diff: any) => void: The function called when the room data changes.
    • ws: Map<RoomId, WebSocket>: Websocket clients. Refer to the next subsection for WebSocket.
    • data: Map<RoomId, Partial<Types.RoomData>>: Room data.
  • setMasterData(masterData: Types.MasterData): Set the master data.

  • async add(info: Types.SimpleRoom, queries?: Types.RoomQuery[]): Track a room.
  • remove(roomId: RoomId): Remove a tracked room.
  • subscribe(roomId: RoomId, queries: Types.RoomQuery[]): Subscribe specified queries.
  • unsubscribe(roomId: RoomId, queries: Types.RoomQuery[]): Unsbscribe specified queries.
  • sendComment(roomId: RoomId, comment: Types.RoomComment): Send a (properly typed) comment.
  • _sendRawComment(roomId: RoomId, comment: Types._Comment): Send a raw comment.
  • sendGift(roomId: RoomId, details: { userId: number; nickname: string; giftId: number; comboCount: number }): Send one or more gifts.
  • More APIs will be added.
0.2.10

2 years ago

0.3.0

2 years ago

0.2.1

2 years ago

0.2.0

2 years ago

0.2.7

2 years ago

0.2.6

2 years ago

0.2.9

2 years ago

0.2.8

2 years ago

0.3.2

2 years ago

0.2.3

2 years ago

0.3.1

2 years ago

0.2.2

2 years ago

0.2.5

2 years ago

0.3.3

2 years ago

0.2.4

2 years ago

0.1.2

2 years ago

0.1.1

2 years ago

0.1.0

2 years ago