@soundworks/core 3.5.0 → 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/client/Socket.js CHANGED
@@ -119,6 +119,8 @@ class Socket {
119
119
 
120
120
  const stringSocketUrl = `${url}?binary=0&${queryParams}`;
121
121
  await new Promise((resolve, reject) => {
122
+ let connectionRefusedLogged = false;
123
+
122
124
  const trySocket = async () => {
123
125
  log(`[string socket] trying connection - url: ${stringSocketUrl}`);
124
126
  const ws = new _isomorphicWs.default(stringSocketUrl, webSocketOptions);
@@ -145,7 +147,11 @@ class Socket {
145
147
 
146
148
  ws.addEventListener('error', e => {
147
149
  if (e.type === 'error' && e.error.code === 'ECONNREFUSED') {
148
- console.log('[socket] connection refused - (retry in 1s)');
150
+ if (!connectionRefusedLogged) {
151
+ console.log('[socket] connection refused, waiting for the server to start');
152
+ connectionRefusedLogged = true;
153
+ }
154
+
149
155
  setTimeout(trySocket, 1000);
150
156
  }
151
157
  });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@soundworks/core",
3
- "version": "3.5.0",
3
+ "version": "3.6.0",
4
4
  "description": "full-stack javascript framework for distributed audio visual experiences on the web",
5
5
  "authors": [
6
6
  "Benjamin Matuszewski",
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;