@nodecg/types
Version:
Dynamic broadcast graphics rendered in a browser
103 lines (102 loc) • 3.95 kB
TypeScript
import type { Namespace, Server, Socket as ServerSocket } from "socket.io";
import type { Socket as ClientSocket } from "socket.io-client";
import type { NodeCG } from "./nodecg";
interface NodeCallback<T = undefined> {
(err: string, response: undefined): void;
(err: undefined, response: T): void;
}
export declare enum UnAuthErrCode {
CredentialsBadFormat = "credentials_bad_format",
CredentialsRequired = "credentials_required",
InternalError = "internal_error",
InvalidToken = "invalid_token",
TokenRevoked = "token_invalidated",
InvalidSession = "invalid_session"
}
export interface ProtocolError {
message: string;
code: UnAuthErrCode;
type: string;
}
export interface GraphicRegRequest {
timestamp: number;
pathName: string;
bundleName: string;
bundleVersion?: string;
bundleGit: NodeCG.Bundle.GitData;
}
export interface ServerToClientEvents {
protocol_error: (error: ProtocolError) => void;
"graphic:bundleRefresh": (bundleName: string) => void;
"graphic:refreshAll": (graphic: NodeCG.Bundle.Graphic) => void;
"graphic:refresh": (graphicInstance: NodeCG.GraphicsInstance) => void;
"graphic:kill": (graphicInstance: NodeCG.GraphicsInstance) => void;
"replicant:operations": (data: {
name: string;
namespace: string;
revision: number;
operations: NodeCG.Replicant.Operation<any>[];
}) => void;
message: (data: {
messageName: string;
bundleName: string;
content: unknown;
}) => void;
}
export interface ClientToServerEvents {
regenerateToken: (callback: NodeCallback) => Promise<void>;
"graphic:registerSocket": (request: GraphicRegRequest, callback: NodeCallback<boolean>) => void;
"graphic:queryAvailability": (request: string, callback: NodeCallback<boolean>) => void;
"graphic:requestBundleRefresh": (request: string, callback: NodeCallback) => void;
"graphic:requestRefreshAll": (request: NodeCG.Bundle.Graphic, callback: NodeCallback) => void;
"graphic:requestRefresh": (request: NodeCG.GraphicsInstance, callback: NodeCallback) => void;
"graphic:requestKill": (request: NodeCG.GraphicsInstance, callback: NodeCallback) => void;
"replicant:declare": (request: {
name: string;
namespace: string;
opts: NodeCG.Replicant.Options<any>;
}, callback: NodeCallback<{
value: any;
revision: number;
} | {
value: any;
revision: number;
schema: Record<string, any>;
schemaSum: string;
}>) => void;
"replicant:proposeOperations": (request: {
name: string;
namespace: string;
operations: NodeCG.Replicant.Operation<any>[];
opts: NodeCG.Replicant.Options<any>;
revision: number;
} | {
name: string;
namespace: string;
operations: NodeCG.Replicant.Operation<any>[];
opts: NodeCG.Replicant.Options<any>;
revision: number;
schema: Record<string, any>;
schemaSum: string;
}, callback: (rejectReason: string | undefined, data: {
value: any;
revision: number;
schema?: Record<string, any>;
schemaSum?: string;
}) => void) => void;
"replicant:read": (request: {
name: string;
namespace: string;
}, callback: NodeCallback<unknown>) => void;
message: (request: {
messageName: string;
bundleName: string;
content: unknown;
}, callback: NodeCallback<unknown>) => void;
joinRoom: (request: string, callback: NodeCallback) => void;
}
export type TypedClientSocket = ClientSocket<ServerToClientEvents, ClientToServerEvents>;
export type TypedSocketServer = Server<ClientToServerEvents, ServerToClientEvents>;
export type RootNS = Namespace<ClientToServerEvents, ServerToClientEvents>;
export type TypedServerSocket = ServerSocket<ClientToServerEvents, ServerToClientEvents>;
export {};