0.3.2 • Published 2 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/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 whenthis.accessToken
changes.masterData?: Types.MasterData
appToken?: string
get 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.MasterData
idToken?: 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.