@soundworks/core 3.5.1 → 3.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/server/Server.js +44 -7
package/package.json
CHANGED
package/server/Server.js
CHANGED
|
@@ -5,8 +5,6 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
7
|
|
|
8
|
-
var _events = _interopRequireDefault(require("events"));
|
|
9
|
-
|
|
10
8
|
var _fs = _interopRequireDefault(require("fs"));
|
|
11
9
|
|
|
12
10
|
var _http = _interopRequireDefault(require("http"));
|
|
@@ -170,14 +168,15 @@ class Server {
|
|
|
170
168
|
*/
|
|
171
169
|
|
|
172
170
|
this._routes = {};
|
|
173
|
-
/**
|
|
174
|
-
* @private
|
|
175
|
-
*/
|
|
171
|
+
/** @private */
|
|
176
172
|
|
|
177
173
|
this._htmlTemplateConfig = {
|
|
178
174
|
engine: null,
|
|
179
175
|
directory: null
|
|
180
176
|
};
|
|
177
|
+
/** @private */
|
|
178
|
+
|
|
179
|
+
this._listeners = new Map();
|
|
181
180
|
}
|
|
182
181
|
/**
|
|
183
182
|
*
|
|
@@ -300,6 +299,7 @@ class Server {
|
|
|
300
299
|
});
|
|
301
300
|
}
|
|
302
301
|
|
|
302
|
+
await this._emit('inited');
|
|
303
303
|
return Promise.resolve();
|
|
304
304
|
}
|
|
305
305
|
/**
|
|
@@ -501,7 +501,7 @@ class Server {
|
|
|
501
501
|
|
|
502
502
|
const ifaces = _os.default.networkInterfaces();
|
|
503
503
|
|
|
504
|
-
this.router.listen(port, () => {
|
|
504
|
+
this.router.listen(port, async () => {
|
|
505
505
|
_logger.default.title(`${protocol} server listening on`);
|
|
506
506
|
|
|
507
507
|
Object.keys(ifaces).forEach(dev => {
|
|
@@ -511,11 +511,11 @@ class Server {
|
|
|
511
511
|
}
|
|
512
512
|
});
|
|
513
513
|
});
|
|
514
|
+
await this._emit('started');
|
|
514
515
|
resolve();
|
|
515
516
|
});
|
|
516
517
|
});
|
|
517
518
|
});
|
|
518
|
-
await this.pluginManager.start();
|
|
519
519
|
return Promise.resolve();
|
|
520
520
|
} catch (err) {
|
|
521
521
|
console.error(err);
|
|
@@ -526,6 +526,7 @@ class Server {
|
|
|
526
526
|
async stop() {
|
|
527
527
|
this.sockets.terminate();
|
|
528
528
|
this.httpServer.close();
|
|
529
|
+
await this._emit('stopped');
|
|
529
530
|
return Promise.resolve();
|
|
530
531
|
}
|
|
531
532
|
/**
|
|
@@ -703,6 +704,42 @@ class Server {
|
|
|
703
704
|
return db;
|
|
704
705
|
}
|
|
705
706
|
|
|
707
|
+
addListener(channel, callback) {
|
|
708
|
+
if (!this._listeners.has(channel)) {
|
|
709
|
+
const listeners = new Set();
|
|
710
|
+
|
|
711
|
+
this._listeners.set(channel, listeners);
|
|
712
|
+
}
|
|
713
|
+
|
|
714
|
+
const listeners = this._listeners.get(channel);
|
|
715
|
+
|
|
716
|
+
listeners.add(callback);
|
|
717
|
+
}
|
|
718
|
+
|
|
719
|
+
removeListener(channel, callback) {
|
|
720
|
+
if (this._listeners.has(channel)) {
|
|
721
|
+
const listeners = this._listeners.get(channel);
|
|
722
|
+
|
|
723
|
+
listeners.delete(callback);
|
|
724
|
+
|
|
725
|
+
if (listeners.size === 0) {
|
|
726
|
+
this._listeners.delete(channel);
|
|
727
|
+
}
|
|
728
|
+
}
|
|
729
|
+
}
|
|
730
|
+
/** @private */
|
|
731
|
+
|
|
732
|
+
|
|
733
|
+
async _emit(channel) {
|
|
734
|
+
if (this._listeners.has(channel)) {
|
|
735
|
+
const listeners = this._listeners.get(channel);
|
|
736
|
+
|
|
737
|
+
for (let callback of listeners) {
|
|
738
|
+
await callback();
|
|
739
|
+
}
|
|
740
|
+
}
|
|
741
|
+
}
|
|
742
|
+
|
|
706
743
|
}
|
|
707
744
|
|
|
708
745
|
var _default = Server;
|