kitten-cloud-function
Version:
用于编程猫源码云功能(云变量、云列表等)的客户端工具
108 lines (107 loc) • 4.6 kB
TypeScript
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;
}