Compare commits

...

2 Commits

Author SHA1 Message Date
Derrick Hammer 41984ae588
*Update dist 2023-03-03 05:22:55 -05:00
Derrick Hammer 6c6f6c4954
*Add onchannel to allow creating additional messages 2023-03-03 05:22:29 -05:00
6 changed files with 22 additions and 4 deletions

6
dist/peer.d.ts vendored
View File

@ -9,6 +9,7 @@ export type OnData = (peer: Peer, data: any) => void;
export type OnReceive = OnData; export type OnReceive = OnData;
export type OnClose = OnData; export type OnClose = OnData;
export type OnSend = OnData; export type OnSend = OnData;
export type OnChannel = (peer: Peer, channel: any) => void;
export type OnOpenBound = (socket: Socket, data: any) => { export type OnOpenBound = (socket: Socket, data: any) => {
connect: boolean; connect: boolean;
} | Promise<{ } | Promise<{
@ -18,11 +19,13 @@ export type OnDataBound = (data: any) => void;
export type OnReceiveBound = OnDataBound; export type OnReceiveBound = OnDataBound;
export type OnCloseBound = OnDataBound; export type OnCloseBound = OnDataBound;
export type OnSendBound = OnDataBound; export type OnSendBound = OnDataBound;
export type OnChannelBound = (channel: any) => void;
export interface DataSocketOptions { export interface DataSocketOptions {
onopen?: OnOpen; onopen?: OnOpen;
onreceive?: OnReceive; onreceive?: OnReceive;
onsend?: OnSend; onsend?: OnSend;
onclose?: OnClose; onclose?: OnClose;
onchannel?: OnChannel;
emulateWebsocket?: boolean; emulateWebsocket?: boolean;
} }
export interface PeerOptions { export interface PeerOptions {
@ -41,8 +44,9 @@ export default class Peer {
private _onreceive; private _onreceive;
private _onsend; private _onsend;
private _onclose; private _onclose;
private _onchannel;
private _emulateWebsocket; private _emulateWebsocket;
constructor({ proxy, peer, muxer, onopen, onreceive, onsend, onclose, emulateWebsocket, }: PeerOptionsWithProxy & DataSocketOptions); constructor({ proxy, peer, muxer, onopen, onreceive, onsend, onclose, onchannel, emulateWebsocket, }: PeerOptionsWithProxy & DataSocketOptions);
private _channel?; private _channel?;
get channel(): any; get channel(): any;
init(): Promise<void>; init(): Promise<void>;

5
dist/peer.js vendored
View File

@ -14,8 +14,9 @@ class Peer {
_onreceive; _onreceive;
_onsend; _onsend;
_onclose; _onclose;
_onchannel;
_emulateWebsocket; _emulateWebsocket;
constructor({ proxy, peer, muxer, onopen, onreceive, onsend, onclose, emulateWebsocket = false, }) { constructor({ proxy, peer, muxer, onopen, onreceive, onsend, onclose, onchannel, emulateWebsocket = false, }) {
this._proxy = proxy; this._proxy = proxy;
this._peer = peer; this._peer = peer;
this._muxer = muxer; this._muxer = muxer;
@ -23,6 +24,7 @@ class Peer {
this._onreceive = onreceive?.bind(undefined, this); this._onreceive = onreceive?.bind(undefined, this);
this._onsend = onsend?.bind(undefined, this); this._onsend = onsend?.bind(undefined, this);
this._onclose = onclose?.bind(undefined, this); this._onclose = onclose?.bind(undefined, this);
this._onchannel = onchannel?.bind(undefined, this);
this._emulateWebsocket = emulateWebsocket; this._emulateWebsocket = emulateWebsocket;
} }
_channel; _channel;
@ -74,6 +76,7 @@ class Peer {
await self._onreceive?.(m); await self._onreceive?.(m);
}, },
}); });
await this._onchannel?.(this._channel);
await this._channel.open(); await this._channel.open();
} }
} }

2
dist/proxy.d.ts vendored
View File

@ -9,7 +9,7 @@ export default class Proxy {
private _listen; private _listen;
private _socketOptions; private _socketOptions;
private _autostart; private _autostart;
constructor({ swarm, protocol, onopen, onreceive, onsend, onclose, listen, autostart, emulateWebsocket, }: ProxyOptions); constructor({ swarm, protocol, onopen, onreceive, onsend, onclose, onchannel, listen, autostart, emulateWebsocket, }: ProxyOptions);
private _swarm; private _swarm;
get swarm(): any; get swarm(): any;
private _protocol; private _protocol;

3
dist/proxy.js vendored
View File

@ -9,7 +9,7 @@ class Proxy {
_listen; _listen;
_socketOptions; _socketOptions;
_autostart; _autostart;
constructor({ swarm, protocol, onopen, onreceive, onsend, onclose, listen = false, autostart = false, emulateWebsocket = false, }) { constructor({ swarm, protocol, onopen, onreceive, onsend, onclose, onchannel, listen = false, autostart = false, emulateWebsocket = false, }) {
this._swarm = swarm; this._swarm = swarm;
this._protocol = protocol; this._protocol = protocol;
this._listen = listen; this._listen = listen;
@ -19,6 +19,7 @@ class Proxy {
onreceive, onreceive,
onsend, onsend,
onclose, onclose,
onchannel,
emulateWebsocket, emulateWebsocket,
}; };
this.init(); this.init();

View File

@ -14,6 +14,7 @@ export type OnData = (peer: Peer, data: any) => void;
export type OnReceive = OnData; export type OnReceive = OnData;
export type OnClose = OnData; export type OnClose = OnData;
export type OnSend = OnData; export type OnSend = OnData;
export type OnChannel = (peer: Peer, channel: any) => void;
export type OnOpenBound = ( export type OnOpenBound = (
socket: Socket, socket: Socket,
@ -28,11 +29,14 @@ export type OnReceiveBound = OnDataBound;
export type OnCloseBound = OnDataBound; export type OnCloseBound = OnDataBound;
export type OnSendBound = OnDataBound; export type OnSendBound = OnDataBound;
export type OnChannelBound = (channel: any) => void;
export interface DataSocketOptions { export interface DataSocketOptions {
onopen?: OnOpen; onopen?: OnOpen;
onreceive?: OnReceive; onreceive?: OnReceive;
onsend?: OnSend; onsend?: OnSend;
onclose?: OnClose; onclose?: OnClose;
onchannel?: OnChannel;
emulateWebsocket?: boolean; emulateWebsocket?: boolean;
} }
@ -54,6 +58,7 @@ export default class Peer {
private _onreceive: OnReceiveBound; private _onreceive: OnReceiveBound;
private _onsend: OnSendBound; private _onsend: OnSendBound;
private _onclose: OnCloseBound; private _onclose: OnCloseBound;
private _onchannel: OnChannelBound;
private _emulateWebsocket: boolean; private _emulateWebsocket: boolean;
constructor({ constructor({
@ -64,6 +69,7 @@ export default class Peer {
onreceive, onreceive,
onsend, onsend,
onclose, onclose,
onchannel,
emulateWebsocket = false, emulateWebsocket = false,
}: PeerOptionsWithProxy & DataSocketOptions) { }: PeerOptionsWithProxy & DataSocketOptions) {
this._proxy = proxy; this._proxy = proxy;
@ -73,6 +79,7 @@ export default class Peer {
this._onreceive = onreceive?.bind(undefined, this); this._onreceive = onreceive?.bind(undefined, this);
this._onsend = onsend?.bind(undefined, this); this._onsend = onsend?.bind(undefined, this);
this._onclose = onclose?.bind(undefined, this); this._onclose = onclose?.bind(undefined, this);
this._onchannel = onchannel?.bind(undefined, this);
this._emulateWebsocket = emulateWebsocket; this._emulateWebsocket = emulateWebsocket;
} }
@ -130,6 +137,7 @@ export default class Peer {
}, },
}); });
await this._onchannel?.(this._channel);
await this._channel.open(); await this._channel.open();
} }
} }

View File

@ -20,6 +20,7 @@ export default class Proxy {
onreceive, onreceive,
onsend, onsend,
onclose, onclose,
onchannel,
listen = false, listen = false,
autostart = false, autostart = false,
emulateWebsocket = false, emulateWebsocket = false,
@ -33,6 +34,7 @@ export default class Proxy {
onreceive, onreceive,
onsend, onsend,
onclose, onclose,
onchannel,
emulateWebsocket, emulateWebsocket,
}; };
this.init(); this.init();