"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(); } _initAdapter() { } emit(...args) { this.children.forEach(nsp => { nsp._rooms = this._rooms; nsp._flags = this._flags; nsp.emit.apply(nsp, args); }); this._rooms.clear(); this._flags = {}; return true; } createChild(name) { const namespace = new namespace_1.Namespace(this.server, name); namespace._fns = this._fns.slice(0); this.listeners("connect").forEach(listener => // @ts-ignore namespace.on("connect", listener)); this.listeners("connection").forEach(listener => // @ts-ignore namespace.on("connection", listener)); this.children.add(namespace); this.server._nsps.set(name, namespace); return namespace; } } exports.ParentNamespace = ParentNamespace; ParentNamespace.count = 0;