UNPKG

dlovely-websocket

Version:

WebSocket For Dlovely

55 lines (54 loc) 1.73 kB
/// <reference types="@types/node/tls" /> /// <reference types="@types/node/events" /> import { EventEmitter } from 'events' import tls from 'tls' import { AppConnection } from './SocketConnect' import { socketControl } from './SocketControl' export declare namespace SocketApp { interface ProtocolCallback { (conn: AppConnection, protocols?: string[]): string | undefined } type Options = tls.TlsOptions & { secure?: boolean debugger?: boolean } & ( | { selectProtocol: ProtocolCallback } | { validProtocols: string[] } | {} ) type ConnectCallback<Data = any> = ( data: Data, conn: AppConnection, next: () => void ) => void type SocketCallBack = (conn: AppConnection) => void interface ControlOptions extends Record<'default', Record<string, Record<string, any>>> {} type Roles = keyof ControlOptions & string type StoreNames<Role extends Roles> = keyof ControlOptions[Role] & string type Store< Role extends Roles, Name extends StoreNames<Role> > = ControlOptions[Role][Name] & Record<string, any> interface ConnectionExtraParams { keepRole?: () => void } } export declare class SocketApp extends EventEmitter { private readonly socket constructor(secure: boolean, options?: SocketApp.Options) _selectProtocol?: SocketApp.ProtocolCallback listen(port: number, callback?: () => void): void listen(port: number, host: string, callback?: () => void): void close(callback?: () => void): void private signs sign<Data = any>( sign: string, ...cbs: SocketApp.ConnectCallback<Data>[] ): this control: typeof socketControl }