@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
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.