Init. Map does not function and only working on backend at the moment.
This commit is contained in:
88
node_modules/socket.io-parser/build/cjs/binary.js
generated
vendored
Normal file
88
node_modules/socket.io-parser/build/cjs/binary.js
generated
vendored
Normal file
@ -0,0 +1,88 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.reconstructPacket = exports.deconstructPacket = void 0;
|
||||
const is_binary_js_1 = require("./is-binary.js");
|
||||
/**
|
||||
* Replaces every Buffer | ArrayBuffer | Blob | File in packet with a numbered placeholder.
|
||||
*
|
||||
* @param {Object} packet - socket.io event packet
|
||||
* @return {Object} with deconstructed packet and list of buffers
|
||||
* @public
|
||||
*/
|
||||
function deconstructPacket(packet) {
|
||||
const buffers = [];
|
||||
const packetData = packet.data;
|
||||
const pack = packet;
|
||||
pack.data = _deconstructPacket(packetData, buffers);
|
||||
pack.attachments = buffers.length; // number of binary 'attachments'
|
||||
return { packet: pack, buffers: buffers };
|
||||
}
|
||||
exports.deconstructPacket = deconstructPacket;
|
||||
function _deconstructPacket(data, buffers) {
|
||||
if (!data)
|
||||
return data;
|
||||
if ((0, is_binary_js_1.isBinary)(data)) {
|
||||
const placeholder = { _placeholder: true, num: buffers.length };
|
||||
buffers.push(data);
|
||||
return placeholder;
|
||||
}
|
||||
else if (Array.isArray(data)) {
|
||||
const newData = new Array(data.length);
|
||||
for (let i = 0; i < data.length; i++) {
|
||||
newData[i] = _deconstructPacket(data[i], buffers);
|
||||
}
|
||||
return newData;
|
||||
}
|
||||
else if (typeof data === "object" && !(data instanceof Date)) {
|
||||
const newData = {};
|
||||
for (const key in data) {
|
||||
if (Object.prototype.hasOwnProperty.call(data, key)) {
|
||||
newData[key] = _deconstructPacket(data[key], buffers);
|
||||
}
|
||||
}
|
||||
return newData;
|
||||
}
|
||||
return data;
|
||||
}
|
||||
/**
|
||||
* Reconstructs a binary packet from its placeholder packet and buffers
|
||||
*
|
||||
* @param {Object} packet - event packet with placeholders
|
||||
* @param {Array} buffers - binary buffers to put in placeholder positions
|
||||
* @return {Object} reconstructed packet
|
||||
* @public
|
||||
*/
|
||||
function reconstructPacket(packet, buffers) {
|
||||
packet.data = _reconstructPacket(packet.data, buffers);
|
||||
delete packet.attachments; // no longer useful
|
||||
return packet;
|
||||
}
|
||||
exports.reconstructPacket = reconstructPacket;
|
||||
function _reconstructPacket(data, buffers) {
|
||||
if (!data)
|
||||
return data;
|
||||
if (data && data._placeholder === true) {
|
||||
const isIndexValid = typeof data.num === "number" &&
|
||||
data.num >= 0 &&
|
||||
data.num < buffers.length;
|
||||
if (isIndexValid) {
|
||||
return buffers[data.num]; // appropriate buffer (should be natural order anyway)
|
||||
}
|
||||
else {
|
||||
throw new Error("illegal attachments");
|
||||
}
|
||||
}
|
||||
else if (Array.isArray(data)) {
|
||||
for (let i = 0; i < data.length; i++) {
|
||||
data[i] = _reconstructPacket(data[i], buffers);
|
||||
}
|
||||
}
|
||||
else if (typeof data === "object") {
|
||||
for (const key in data) {
|
||||
if (Object.prototype.hasOwnProperty.call(data, key)) {
|
||||
data[key] = _reconstructPacket(data[key], buffers);
|
||||
}
|
||||
}
|
||||
}
|
||||
return data;
|
||||
}
|
Reference in New Issue
Block a user