前端代码
This commit is contained in:
65
node_modules/engine.io-client/build/cjs/util.js
generated
vendored
Normal file
65
node_modules/engine.io-client/build/cjs/util.js
generated
vendored
Normal file
@ -0,0 +1,65 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.pick = pick;
|
||||
exports.installTimerFunctions = installTimerFunctions;
|
||||
exports.byteLength = byteLength;
|
||||
exports.randomString = randomString;
|
||||
const globals_node_js_1 = require("./globals.node.js");
|
||||
function pick(obj, ...attr) {
|
||||
return attr.reduce((acc, k) => {
|
||||
if (obj.hasOwnProperty(k)) {
|
||||
acc[k] = obj[k];
|
||||
}
|
||||
return acc;
|
||||
}, {});
|
||||
}
|
||||
// Keep a reference to the real timeout functions so they can be used when overridden
|
||||
const NATIVE_SET_TIMEOUT = globals_node_js_1.globalThisShim.setTimeout;
|
||||
const NATIVE_CLEAR_TIMEOUT = globals_node_js_1.globalThisShim.clearTimeout;
|
||||
function installTimerFunctions(obj, opts) {
|
||||
if (opts.useNativeTimers) {
|
||||
obj.setTimeoutFn = NATIVE_SET_TIMEOUT.bind(globals_node_js_1.globalThisShim);
|
||||
obj.clearTimeoutFn = NATIVE_CLEAR_TIMEOUT.bind(globals_node_js_1.globalThisShim);
|
||||
}
|
||||
else {
|
||||
obj.setTimeoutFn = globals_node_js_1.globalThisShim.setTimeout.bind(globals_node_js_1.globalThisShim);
|
||||
obj.clearTimeoutFn = globals_node_js_1.globalThisShim.clearTimeout.bind(globals_node_js_1.globalThisShim);
|
||||
}
|
||||
}
|
||||
// base64 encoded buffers are about 33% bigger (https://en.wikipedia.org/wiki/Base64)
|
||||
const BASE64_OVERHEAD = 1.33;
|
||||
// we could also have used `new Blob([obj]).size`, but it isn't supported in IE9
|
||||
function byteLength(obj) {
|
||||
if (typeof obj === "string") {
|
||||
return utf8Length(obj);
|
||||
}
|
||||
// arraybuffer or blob
|
||||
return Math.ceil((obj.byteLength || obj.size) * BASE64_OVERHEAD);
|
||||
}
|
||||
function utf8Length(str) {
|
||||
let c = 0, length = 0;
|
||||
for (let i = 0, l = str.length; i < l; i++) {
|
||||
c = str.charCodeAt(i);
|
||||
if (c < 0x80) {
|
||||
length += 1;
|
||||
}
|
||||
else if (c < 0x800) {
|
||||
length += 2;
|
||||
}
|
||||
else if (c < 0xd800 || c >= 0xe000) {
|
||||
length += 3;
|
||||
}
|
||||
else {
|
||||
i++;
|
||||
length += 4;
|
||||
}
|
||||
}
|
||||
return length;
|
||||
}
|
||||
/**
|
||||
* Generates a random 8-characters string.
|
||||
*/
|
||||
function randomString() {
|
||||
return (Date.now().toString(36).substring(3) +
|
||||
Math.random().toString(36).substring(2, 5));
|
||||
}
|
Reference in New Issue
Block a user