UNPKG

kitten-cloud-function

Version:

用于编程猫源码云功能(云变量、云列表等)的客户端工具

108 lines (107 loc) 4.6 kB
import { CodemaoWork } from "./codemao/work/codemao-work"; import { KittenCloudOnlineUserNumber } from "./module/kitten-cloud-online-user-number"; import { KittenCloudWebSocket } from "./module/network/web-socket/kitten-cloud-web-socket"; import { Signal } from "./utils/signal"; import { WebSocketProxy } from "./utils/web-socket-proxy"; import { KittenCloudFunctionConfigLayer } from "./module/kitten-cloud-function-config-layer"; import { KittenCloudPublicVariableGroup } from "./module/cloud-data/group/kitten-cloud-public-variable-group"; import { KittenCloudSendMessageType } from "./module/network/kitten-cloud-send-message-type"; import { KittenCloudData } from "./module/cloud-data/kitten-cloud-data"; import { KittenCloudPrivateVariableGroup } from "./module/cloud-data/group/kitten-cloud-private-variable-group"; import { CodemaoUser } from "./codemao/user/codemao-user"; import { None } from "./utils/other"; import { KittenCloudListGroup } from "./module/cloud-data/group/kitten-cloud-list-group"; export declare let __diff: typeof import("diff") | None; /** * 源码云功能主类,用于管理源码云的连接、数据、事件等。 */ export declare class KittenCloudFunction extends KittenCloudFunctionConfigLayer { private static __caughtInstance; private static __caught?; /** * 当从全局 WebSocket 中捕获到源码云的连接,会将其转换为 KittenCloudFunction 实例并通过该信号通知。 * * 该功能会污染全局 WebSocket,仅在该信号被访问时才会启用。 * * 仅在浏览器中可用。 */ static get caught(): Signal<KittenCloudFunction>; private static startCatch; /** * 当前连接的作品。 */ readonly work: CodemaoWork; private readonly socket; /** * 源码云连接打开时触发该信号。 * * 源码云连接打开是指 WebSocket 连接成功,并且源码云功能完成了云功能初始化操作,这意味着在此之后可以正常使用云功能。 */ readonly opened: Signal<void>; /** * 源码云连接断开时触发该信号。 * * 源码云连接断开是指 WebSocket 连接断开,如果不是客户端主动断开且配置了自动重连,会自动重新连接。 */ readonly disconnected: Signal<void>; /** * 源码云连接关闭时触发该信号。 * * 源码云连接关闭是指 WebSocket 连接断开且之后不会再自动重连。 */ readonly closed: Signal<void>; /** * 源码云连接发生错误时触发该信号。 */ readonly errored: Signal<unknown>; /** * 该 Promise 实例会在源码云连接成功时被 resolve,并提供一个 {@link KittenCloudOnlineUserNumber} 实例作为参数。 * * 如果源码云连接失败,则该 Promise 实例会被 reject。 */ onlineUserNumber: Promise<KittenCloudOnlineUserNumber>; private onlineUserNumberResolve?; private onlineUserNumberReject?; /** 用于管理云私有变量。*/ privateVariable: KittenCloudPrivateVariableGroup; /** 用于管理云公有变量。*/ publicVariable: KittenCloudPublicVariableGroup; /** 用于管理云列表。*/ list: KittenCloudListGroup; /** * 创建一个新的 KittenCloudFunction 实例,当实例被创建时,会自动连接到源码云。 * * @param work 一个数字,表示要连接的作品的 ID。 */ constructor(workID: number); /** * 创建一个新的 KittenCloudFunction 实例,当实例被创建时,会自动连接到源码云。 * * @param work 一个 {@link CodemaoWork} 实例,表示要连接的作品。 */ constructor(work: CodemaoWork); constructor(argument: CodemaoWork | KittenCloudWebSocket | WebSocketProxy | WebSocket); /** * 等待连接打开,如果连接打开时出错则抛出异常。 */ waitOpen(this: this): Promise<void>; /** * 关闭该连接。 */ close(this: this): void; send(this: this, type: KittenCloudSendMessageType, message: unknown): void; private handleReceived; /** * 获取云数据实例。 * * @param index 该数据的名称或 cvid * @returns 对应云数据实例 * @throws 如果不存在该云数据实例,则抛出异常 */ get(this: this, index: string): Promise<KittenCloudData>; getAll(this: this): Promise<KittenCloudData[]>; private static _user; /** * 当前用户。 * * @returns CodemaoUser */ static get user(): CodemaoUser; }