0.3.2 • Published 4 years ago
@kyarame/topia v0.3.2
@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/topiaBuild from sources
yarn buildRun examples
yarn build
yarn ts-node -r tsconfig-paths/register --files examples/<example-name>.tsAPI
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.PlatformclientVersion: stringaccessToken?: stringidentificationHash?: stringrefreshToken?: stringonRefresh?: (config: Types.Config) => void | Promise<void>: The function called whenthis.accessTokenchanges.masterData?: Types.MasterDataappToken?: stringget appTokenPort(): number: Get the port of the app token server. Refer toexamples/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 toexamples/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.MasterDataidToken?: string: Firebase ID token.idTokenExpires: number: The expire date ofidToken.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 forWebSocket.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.