UNPKG

1.34 kBJavaScriptView Raw
1"use strict";
2Object.defineProperty(exports, "__esModule", { value: true });
3exports.ParentNamespace = void 0;
4const namespace_1 = require("./namespace");
5class ParentNamespace extends namespace_1.Namespace {
6 constructor(server) {
7 super(server, "/_" + ParentNamespace.count++);
8 this.children = new Set();
9 }
10 /**
11 * @private
12 */
13 _initAdapter() {
14 const broadcast = (packet, opts) => {
15 this.children.forEach((nsp) => {
16 nsp.adapter.broadcast(packet, opts);
17 });
18 };
19 // @ts-ignore FIXME is there a way to declare an inner class in TypeScript?
20 this.adapter = { broadcast };
21 }
22 emit(ev, ...args) {
23 this.children.forEach((nsp) => {
24 nsp.emit(ev, ...args);
25 });
26 return true;
27 }
28 createChild(name) {
29 const namespace = new namespace_1.Namespace(this.server, name);
30 namespace._fns = this._fns.slice(0);
31 this.listeners("connect").forEach((listener) => namespace.on("connect", listener));
32 this.listeners("connection").forEach((listener) => namespace.on("connection", listener));
33 this.children.add(namespace);
34 this.server._nsps.set(name, namespace);
35 return namespace;
36 }
37}
38exports.ParentNamespace = ParentNamespace;
39ParentNamespace.count = 0;