UNPKG

@api.global/typedsocket

Version:

A library for creating typed WebSocket connections, supporting bi-directional communication with type safety.

35 lines (34 loc) 2.39 kB
import * as plugins from './typedsocket.plugins.js'; export type TTypedSocketSide = 'server' | 'client'; export declare class TypedSocket { /** * creates a typedsocket server * note: this will fail in browser environments as server libs are not bundled. */ static createServer(typedrouterArg: plugins.typedrequest.TypedRouter, smartexpressServerArg?: any): Promise<TypedSocket>; static createClient(typedrouterArg: plugins.typedrequest.TypedRouter, serverUrlArg: string, aliasArg?: string): Promise<TypedSocket>; static useWindowLocationOriginUrl: () => string; side: TTypedSocketSide; typedrouter: plugins.typedrequest.TypedRouter; get eventSubject(): plugins.smartrx.rxjs.Subject<plugins.smartsocket.TConnectionStatus>; private postMethod; private socketServerOrClient; constructor(sideArg: TTypedSocketSide, typedrouterArg: plugins.typedrequest.TypedRouter, postMethodArg: plugins.typedrequest.IPostMethod, socketServerOrClientArg: plugins.smartsocket.Smartsocket | plugins.smartsocket.SmartsocketClient); addTag<T extends plugins.typedrequestInterfaces.ITag = any>(nameArg: T['name'], payloadArg: T['payload']): void; createTypedRequest<T extends plugins.typedrequestInterfaces.ITypedRequest>(methodName: T['method'], targetConnection?: plugins.smartsocket.SocketConnection): plugins.typedrequest.TypedRequest<T>; /** * returns all matching target connection * @param asyncFindFuncArg * @returns */ findAllTargetConnections(asyncFindFuncArg: (connectionArg: plugins.smartsocket.SocketConnection) => Promise<boolean>): Promise<plugins.smartsocket.SocketConnection[]>; /** * returns a single target connection by returning the first one of all matching ones * @param asyncFindFuncArg * @returns */ findTargetConnection(asyncFindFuncArg: (connectionArg: plugins.smartsocket.SocketConnection) => Promise<boolean>): Promise<plugins.smartsocket.SocketConnection>; findAllTargetConnectionsByTag<TTag extends plugins.typedrequestInterfaces.ITag = any>(keyArg: TTag['name'], payloadArg?: TTag['payload']): Promise<plugins.smartsocket.SocketConnection[]>; findTargetConnectionByTag<TTag extends plugins.typedrequestInterfaces.ITag = any>(keyArg: TTag['name'], payloadArg?: TTag['payload']): Promise<plugins.smartsocket.SocketConnection>; stop(): Promise<void>; }