"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = exports.connect = exports.io = exports.Socket = exports.Manager = exports.protocol = void 0; const url_js_1 = require("./url.js"); const manager_js_1 = require("./manager.js"); Object.defineProperty(exports, "Manager", { enumerable: true, get: function () { return manager_js_1.Manager; } }); const socket_js_1 = require("./socket.js"); Object.defineProperty(exports, "Socket", { enumerable: true, get: function () { return socket_js_1.Socket; } }); const debug_1 = __importDefault(require("debug")); // debug() const debug = debug_1.default("socket.io-client"); // debug() /** * Managers cache. */ const cache = {}; function lookup(uri, opts) { if (typeof uri === "object") { opts = uri; uri = undefined; } opts = opts || {}; const parsed = url_js_1.url(uri, opts.path || "/socket.io"); const source = parsed.source; const id = parsed.id; const path = parsed.path; const sameNamespace = cache[id] && path in cache[id]["nsps"]; const newConnection = opts.forceNew || opts["force new connection"] || false === opts.multiplex || sameNamespace; let io; if (newConnection) { debug("ignoring socket cache for %s", source); io = new manager_js_1.Manager(source, opts); } else { if (!cache[id]) { debug("new io instance for %s", source); cache[id] = new manager_js_1.Manager(source, opts); } io = cache[id]; } if (parsed.query && !opts.query) { opts.query = parsed.queryKey; } return io.socket(parsed.path, opts); } exports.io = lookup; exports.connect = lookup; exports.default = lookup; // so that "lookup" can be used both as a function (e.g. `io(...)`) and as a // namespace (e.g. `io.connect(...)`), for backward compatibility Object.assign(lookup, { Manager: manager_js_1.Manager, Socket: socket_js_1.Socket, io: lookup, connect: lookup, }); /** * Protocol version. * * @public */ var socket_io_parser_1 = require("socket.io-parser"); Object.defineProperty(exports, "protocol", { enumerable: true, get: function () { return socket_io_parser_1.protocol; } }); module.exports = lookup;