@@ -40,15 +40,11 @@ const ERROR_PACKET: Packet = { type: "error", data: "parser error" };
4040type BinaryType = "arraybuffer" | "blob" ;
4141
4242export const Parser = {
43- encodePacket (
44- { type, data } : Packet ,
45- supportsBinary : boolean ,
46- callback : ( encodedPacket : RawData ) => void ,
47- ) {
43+ encodePacket ( { type, data } : Packet , supportsBinary : boolean ) : RawData {
4844 if ( Buffer . isBuffer ( data ) ) {
49- return callback ( supportsBinary ? data : "b" + data . toString ( "base64" ) ) ;
45+ return supportsBinary ? data : "b" + data . toString ( "base64" ) ;
5046 } else {
51- return callback ( PACKET_TYPES . get ( type ) + ( data || "" ) ) ;
47+ return PACKET_TYPES . get ( type ) + ( data || "" ) ;
5248 }
5349 } ,
5450
@@ -81,21 +77,14 @@ export const Parser = {
8177 } ;
8278 } ,
8379
84- encodePayload ( packets : Packet [ ] , callback : ( encodedPayload : string ) => void ) {
85- // some packets may be added to the array while encoding, so the initial length must be saved
86- const length = packets . length ;
87- const encodedPackets = new Array ( length ) ;
88- let count = 0 ;
80+ encodePayload ( packets : Packet [ ] ) {
81+ const encodedPackets = [ ] ;
8982
90- packets . forEach ( ( packet , i ) => {
91- // force base64 encoding for binary packets
92- this . encodePacket ( packet , false , ( encodedPacket ) => {
93- encodedPackets [ i ] = encodedPacket ;
94- if ( ++ count === length ) {
95- callback ( encodedPackets . join ( SEPARATOR ) ) ;
96- }
97- } ) ;
98- } ) ;
83+ for ( const packet of packets ) {
84+ encodedPackets . push ( this . encodePacket ( packet , false ) ) ;
85+ }
86+
87+ return encodedPackets . join ( SEPARATOR ) ;
9988 } ,
10089
10190 decodePayload ( encodedPayload : string , binaryType ?: BinaryType ) : Packet [ ] {
0 commit comments