diff --git a/types/socket.io-p2p/index.d.ts b/types/socket.io-p2p/index.d.ts index e0f461111c..e3f50790cf 100644 --- a/types/socket.io-p2p/index.d.ts +++ b/types/socket.io-p2p/index.d.ts @@ -8,6 +8,12 @@ export as namespace Socketiop2p; export = SocketioP2PStatic; +/** + * Creates the P2P object + * @param socket Socket.io socket + * @param opts Object of viable options + * @param cb Optional callback + */ declare function SocketioP2PStatic( socket: any, opts: SocketioP2PStatic.P2POptions, @@ -16,32 +22,98 @@ declare function SocketioP2PStatic( declare namespace SocketioP2PStatic { interface PeerOpts { - initiator?: boolean; // false - channelConfig?: object; // {} - channelName?: string; // random string - config?: object; // { iceServers: [{ urls: 'stun:stun.l.google.com:19302' }, { urls: 'stun:global.stun.twilio.com:3478?transport=udp' }] } - constraints?: object; // {} - offerConstraints?: object; // {} - answerConstraints?: object; // {} - sdpTransfrom?: (sdp: any) => any; // (sdp) => sdp - stream?: boolean; // false - streams?: any[]; // [] - trickle?: boolean; // true - wrtc?: RTCPeerConnection | RTCSessionDescription | RTCIceCandidate; // {} - objectMode?: boolean; // false + /** + * Set to true if this is the initiating peer + * @default false + */ + initiator?: boolean; + /** + * Custom WebRTC channel configuration (used by createDataChannel) + * @default {} + */ + channelConfig?: object; + /** + * Custom WebRTC data channel name + * @default + */ + channelName?: string; + /** + * Custom WebRTC configuration (used by RTCPeerConnection constructor) + * @default {iceServers:[{urls:'stun:stun.l.google.com:19302'},{urls:'stun:global.stun.twilio.com:3478?transport=udp'}]} + */ + config?: object; + /** + * Custom WebRTC video/voice constrainst (used by RTCPeerConnection constructor) + * @default {} + */ + constraints?: object; + /** + * Custom offer contstraints (used by createOffer methode) + * @default {} + */ + offerConstraints?: object; + /** + * Custom answer constraints (used by createAnswer method) + */ + answerConstraints?: object; + /** + * Function to transform generated SDP signaling data (for advanced users) + * @default (sdp)=>sdp + */ + sdpTransfrom?: (sdp: any) => any; + /** + * If video/voice is desired, pass stream from getUserMedia + * @default false + */ + stream?: boolean; + /** + * An array of MediaStreams returned from getUserMedia + * @default [] + */ + streams?: MediaStream[]; + /** + * Set to false to disable trickle ICE and get single 'signal' event (slower) + * @default true + */ + trickle?: boolean; + /** + * Custom WebRTC implementation, mainly useful in node to specify the wrtc package + * @default {} + */ + wrtc?: RTCPeerConnection | RTCSessionDescription | RTCIceCandidate; + /** + * Set to true to create the stream in Object Mode. In this mode, incoming string data is not automatically converted to Buffer objects + * @default false + */ + objectMode?: boolean; } interface P2POptions { - numClients?: number; // 5 - autoUpgrade?: boolean; // true + /** + * Max number of peers each client can connect to + * @default 5 + */ + numClients?: number; + /** + * Upgrade to p2p connection (from s.io one) when peers are ready + * @default true + */ + autoUpgrade?: boolean; + /** + * Object of options passed to underlying peers + * @default {} + */ peerOpts?: PeerOpts; } interface Socketiop2p { (socket: any, opts: P2POptions, cb?: () => void): Socketiop2p; on(event: string, callback: (data: any) => void): void; - emit(data: any, cb: () => void): void; + emit(data: any, cb?: () => void): void; + /** + * Upgrade the connection to p2p + */ upgrade(): void; disconnect(): void; binarySlice(arr: any[], interval: number, cb: () => void): void; diff --git a/types/socket.io-p2p/socket.io-p2p-tests.ts b/types/socket.io-p2p/socket.io-p2p-tests.ts index e69de29bb2..29d9ef537a 100644 --- a/types/socket.io-p2p/socket.io-p2p-tests.ts +++ b/types/socket.io-p2p/socket.io-p2p-tests.ts @@ -0,0 +1,3 @@ +function testStub() { + console.log("this is a stub"); +}