cbcore-ts
Version:
CBCore is a library to build web applications using pure Typescript.
71 lines (70 loc) • 4.42 kB
TypeScript
import { Socket } from "socket.io-client";
import { UIObject } from "../../uicore-ts";
import { CBCore } from "./CBCore";
import { CBSocketMessage, CBSocketMessageCompletionFunction, CBSocketMessageHandlerFunction, CBSocketMessageSendResponseFunction, CBSocketMultipleMessagecompletionFunction, SocketClientInterface } from "./CBDataInterfaces";
import { CBSocketCallbackHolder } from "./CBSocketCallbackHolder";
declare interface CBSocketClientMessageToBeSent {
key: string;
message: any;
inResponseToMessage: CBSocketMessage<any>;
keepWaitingForResponses: boolean;
isBoundToUserWithID: string;
completionPolicy: string;
didSendFunction?: () => void;
completion: CBSocketMessageCompletionFunction;
}
declare interface CBSocketClientErrorMessage {
_isCBSocketErrorMessage: boolean;
messageData: any;
}
export declare function IS_SOCKET_ERROR(object: any): object is CBSocketClientErrorMessage;
export declare function IS_NOT_SOCKET_ERROR(object: any): boolean;
export declare class CBSocketClient extends UIObject {
_socket: Socket;
_isConnectionEstablished: boolean;
_collectMessagesToSendLater: boolean;
_messagesToBeSent: CBSocketClientMessageToBeSent[];
static _sharedInstance: CBSocketClient;
_core: CBCore;
_subscribedKeys: {
[x: string]: boolean;
};
_callbackHolder: CBSocketCallbackHolder;
static responseMessageKey: string;
static multipleMessageKey: string;
static disconnectionMessage: CBSocketClientErrorMessage;
constructor(core: CBCore);
get socket(): Socket<import("@socket.io/component-emitter").DefaultEventsMap, import("@socket.io/component-emitter").DefaultEventsMap>;
cancelUnsentMessages(messagesToCancel: CBSocketClientMessageToBeSent[]): void;
sendUnsentMessages(receiveResponsesTogether?: boolean, completion?: CBSocketMultipleMessagecompletionFunction): void;
static completionPolicy: {
readonly all: "all";
readonly allDifferent: "allDifferent";
readonly first: "first";
readonly last: "last";
readonly firstAndLast: "firstAndLast";
readonly firstAndLastIfDifferent: "firstAndLastIfDifferent";
readonly directOnly: "directOnly";
readonly firstOnly: "firstOnly";
readonly storedOrFirst: "storedOrFirst";
};
sendUserBoundMessageForKeyWithPolicy(key: keyof SocketClientInterface, message: any, completionPolicy: keyof typeof CBSocketClient.completionPolicy, completion?: CBSocketMessageCompletionFunction): void;
sendUserBoundMessageForKey(key: keyof SocketClientInterface, message: any, completion?: CBSocketMessageCompletionFunction): void;
sendMessageForKeyWithPolicy(key: keyof SocketClientInterface, message: any, completionPolicy: keyof typeof CBSocketClient.completionPolicy, completion?: CBSocketMessageCompletionFunction): void;
sendMessageForKey(key: keyof SocketClientInterface, message: any, completion?: CBSocketMessageCompletionFunction): void;
resultForMessageForKey(key: keyof SocketClientInterface, message: any, completionPolicy?: keyof typeof CBSocketClient.completionPolicy, isUserBound?: boolean): Promise<{
responseMessage: any;
result: any;
errorResult: any;
respondWithMessage: CBSocketMessageSendResponseFunction;
}>;
_sendMessageForKey(key: string, message: any, inResponseToMessage?: CBSocketMessage<any>, keepMessageConnectionOpen?: boolean, completionPolicy?: keyof typeof CBSocketClient.completionPolicy, isUserBound?: boolean, didSendFunction?: () => void, completion?: CBSocketMessageCompletionFunction): CBSocketClientMessageToBeSent | undefined;
sendMessagesAsGroup<FunctionReturnType extends object>(functionToCall: () => FunctionReturnType): FunctionReturnType;
sendAndReceiveMessagesAsGroup<FunctionReturnType extends object>(functionToCall: () => FunctionReturnType, completion?: CBSocketMultipleMessagecompletionFunction): FunctionReturnType;
didReceiveMessageForKey(key: string, message: CBSocketMessage<any>): void;
addTargetForMessagesForKeys(keys: string[], handlerFunction: CBSocketMessageHandlerFunction): void;
addTargetForMessagesForKey(key: string, handlerFunction: CBSocketMessageHandlerFunction): void;
addTargetForOneMessageForKey(key: string, handlerFunction: CBSocketMessageHandlerFunction): void;
}
export declare const SocketClient: SocketClientInterface;
export {};