Refactored comments, added stub test

This commit is contained in:
Sascha Englert 2018-08-25 07:44:18 +02:00
parent 4c0d6331fb
commit a5e411fdad
2 changed files with 91 additions and 16 deletions

View File

@ -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 <randomString>
*/
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;

View File

@ -0,0 +1,3 @@
function testStub() {
console.log("this is a stub");
}