| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 | "use strict";Object.defineProperty(exports, "__esModule", { value: true });exports.ParentNamespace = void 0;const namespace_1 = require("./namespace");class ParentNamespace extends namespace_1.Namespace {    constructor(server) {        super(server, "/_" + ParentNamespace.count++);        this.children = new Set();    }    /**     * @private     */    _initAdapter() {        const broadcast = (packet, opts) => {            this.children.forEach((nsp) => {                nsp.adapter.broadcast(packet, opts);            });        };        // @ts-ignore FIXME is there a way to declare an inner class in TypeScript?        this.adapter = { broadcast };    }    emit(ev, ...args) {        this.children.forEach((nsp) => {            nsp.emit(ev, ...args);        });        return true;    }    createChild(name) {        const namespace = new namespace_1.Namespace(this.server, name);        namespace._fns = this._fns.slice(0);        this.listeners("connect").forEach((listener) => namespace.on("connect", listener));        this.listeners("connection").forEach((listener) => namespace.on("connection", listener));        this.children.add(namespace);        this.server._nsps.set(name, namespace);        return namespace;    }    fetchSockets() {        // note: we could make the fetchSockets() method work for dynamic namespaces created with a regex (by sending the        // regex to the other Socket.IO servers, and returning the sockets of each matching namespace for example), but        // the behavior for namespaces created with a function is less clear        // note²: we cannot loop over each children namespace, because with multiple Socket.IO servers, a given namespace        // may exist on one node but not exist on another (since it is created upon client connection)        throw new Error("fetchSockets() is not supported on parent namespaces");    }}exports.ParentNamespace = ParentNamespace;ParentNamespace.count = 0;
 |