@soundworks/core 3.6.0 → 4.0.0-alpha.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/.eslintrc +16 -0
- package/LICENSE +1 -1
- package/README.md +32 -30
- package/package.json +57 -26
- package/src/client/Client.js +391 -0
- package/src/client/Context.js +225 -0
- package/src/client/ContextManager.js +111 -0
- package/src/client/Plugin.js +66 -0
- package/src/client/PluginManager.js +123 -0
- package/src/client/SharedState.js +84 -0
- package/src/client/Socket.js +389 -0
- package/src/client/StateManager.js +67 -0
- package/src/client/index.js +77 -0
- package/src/common/BasePlugin.js +163 -0
- package/src/common/BasePluginManager.js +227 -0
- package/src/common/BaseSharedState.js +473 -0
- package/src/common/BaseStateManager.js +200 -0
- package/{common → src/common}/ParameterBag.js +82 -122
- package/{common → src/common}/SharedStatePrivate.js +56 -64
- package/src/common/constants.js +51 -0
- package/src/common/logger.js +154 -0
- package/src/common/promise-store.js +25 -0
- package/src/common/sockets-utils.js +73 -0
- package/src/common/utils.js +22 -0
- package/src/server/Client.js +50 -0
- package/src/server/Context.js +99 -0
- package/src/server/ContextManager.js +266 -0
- package/src/server/Plugin.js +77 -0
- package/src/server/PluginManager.js +150 -0
- package/src/server/Server.js +849 -0
- package/src/server/SharedState.js +86 -0
- package/{server → src/server}/Socket.js +119 -94
- package/{server → src/server}/Sockets.js +73 -61
- package/{common/SharedStateManagerServer.js → src/server/StateManager.js} +183 -131
- package/src/server/audit-network-latency.worker.js +57 -0
- package/src/server/audit-schema.js +42 -0
- package/src/server/index.js +45 -0
- package/tsconfig.json +21 -0
- package/types/client/Client.d.ts +194 -0
- package/types/client/Client.d.ts.map +1 -0
- package/types/client/Context.d.ts +139 -0
- package/types/client/Context.d.ts.map +1 -0
- package/types/client/ContextManager.d.ts +45 -0
- package/types/client/ContextManager.d.ts.map +1 -0
- package/types/client/Plugin.d.ts +53 -0
- package/types/client/Plugin.d.ts.map +1 -0
- package/types/client/PluginManager.d.ts +96 -0
- package/types/client/PluginManager.d.ts.map +1 -0
- package/types/client/SharedState.d.ts +85 -0
- package/types/client/SharedState.d.ts.map +1 -0
- package/types/client/Socket.d.ts +138 -0
- package/types/client/Socket.d.ts.map +1 -0
- package/types/client/StateManager.d.ts +72 -0
- package/types/client/StateManager.d.ts.map +1 -0
- package/types/client/index.d.ts +11 -0
- package/types/client/index.d.ts.map +1 -0
- package/types/common/BasePlugin.d.ts +145 -0
- package/types/common/BasePlugin.d.ts.map +1 -0
- package/types/common/BasePluginManager.d.ts +88 -0
- package/types/common/BasePluginManager.d.ts.map +1 -0
- package/types/common/BaseSharedState.d.ts +173 -0
- package/types/common/BaseSharedState.d.ts.map +1 -0
- package/types/common/BaseStateManager.d.ts +70 -0
- package/types/common/BaseStateManager.d.ts.map +1 -0
- package/types/common/ParameterBag.d.ts +143 -0
- package/types/common/ParameterBag.d.ts.map +1 -0
- package/types/common/SharedStatePrivate.d.ts +20 -0
- package/types/common/SharedStatePrivate.d.ts.map +1 -0
- package/types/common/constants.d.ts +35 -0
- package/types/common/constants.d.ts.map +1 -0
- package/types/common/logger.d.ts +16 -0
- package/types/common/logger.d.ts.map +1 -0
- package/types/common/promise-store.d.ts +4 -0
- package/types/common/promise-store.d.ts.map +1 -0
- package/types/common/sockets-utils.d.ts +9 -0
- package/types/common/sockets-utils.d.ts.map +1 -0
- package/types/common/utils.d.ts +5 -0
- package/types/common/utils.d.ts.map +1 -0
- package/types/server/Client.d.ts +40 -0
- package/types/server/Client.d.ts.map +1 -0
- package/types/server/Context.d.ts +59 -0
- package/types/server/Context.d.ts.map +1 -0
- package/types/server/ContextManager.d.ts +69 -0
- package/types/server/ContextManager.d.ts.map +1 -0
- package/types/server/Plugin.d.ts +70 -0
- package/types/server/Plugin.d.ts.map +1 -0
- package/types/server/PluginManager.d.ts +91 -0
- package/types/server/PluginManager.d.ts.map +1 -0
- package/types/server/Server.d.ts +223 -0
- package/types/server/Server.d.ts.map +1 -0
- package/types/server/SharedState.d.ts +86 -0
- package/types/server/SharedState.d.ts.map +1 -0
- package/types/server/Socket.d.ts +128 -0
- package/types/server/Socket.d.ts.map +1 -0
- package/types/server/Sockets.d.ts +73 -0
- package/types/server/Sockets.d.ts.map +1 -0
- package/types/server/StateManager.d.ts +190 -0
- package/types/server/StateManager.d.ts.map +1 -0
- package/types/server/audit-network-latency.worker.d.ts +2 -0
- package/types/server/audit-network-latency.worker.d.ts.map +1 -0
- package/types/server/audit-schema.d.ts +27 -0
- package/types/server/audit-schema.d.ts.map +1 -0
- package/types/server/index.d.ts +7 -0
- package/types/server/index.d.ts.map +1 -0
- package/client/AbstractExperience.js +0 -54
- package/client/AbstractPlugin.js +0 -230
- package/client/Client.js +0 -190
- package/client/PluginManager.js +0 -267
- package/client/Socket.js +0 -338
- package/client/index.js +0 -48
- package/client.js +0 -28
- package/common/SharedState.js +0 -480
- package/common/SharedStateManagerClient.js +0 -194
- package/common/Signal.js +0 -40
- package/common/SignalAll.js +0 -44
- package/common/shared-state-utils.js +0 -90
- package/common/sockets-encoder-decoder.js +0 -73
- package/server/AbstractExperience.js +0 -126
- package/server/AbstractPlugin.js +0 -211
- package/server/Client.js +0 -70
- package/server/PluginManager.js +0 -177
- package/server/Server.js +0 -746
- package/server/index.js +0 -49
- package/server/utils/logger.js +0 -134
- package/server.js +0 -28
package/client/Socket.js
DELETED
|
@@ -1,338 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.default = void 0;
|
|
7
|
-
|
|
8
|
-
var _debug = _interopRequireDefault(require("debug"));
|
|
9
|
-
|
|
10
|
-
var _isomorphicWs = _interopRequireDefault(require("isomorphic-ws"));
|
|
11
|
-
|
|
12
|
-
var _socketsEncoderDecoder = require("../common/sockets-encoder-decoder.js");
|
|
13
|
-
|
|
14
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
15
|
-
|
|
16
|
-
const log = (0, _debug.default)('soundworks:socket'); // https://stackoverflow.com/questions/17575790/environment-detection-node-js-or-browser
|
|
17
|
-
|
|
18
|
-
const isBrowser = new Function("try {return this===window;}catch(e){ return false;}"); // close
|
|
19
|
-
// Fired when a connection with a websocket is closed.
|
|
20
|
-
// Also available via the onclose property
|
|
21
|
-
// error
|
|
22
|
-
// Fired when a connection with a websocket has been closed because of an error, such as whensome data couldn't be sent.
|
|
23
|
-
// Also available via the onerror property.
|
|
24
|
-
// message
|
|
25
|
-
// Fired when data is received through a websocket.
|
|
26
|
-
// Also available via the onmessage property.
|
|
27
|
-
// open
|
|
28
|
-
// Fired when a connection with a websocket is opened.
|
|
29
|
-
// Also available via the onopen property.
|
|
30
|
-
// @todo - use isomorphic ws ? (does seems like a perfect idea)
|
|
31
|
-
|
|
32
|
-
/**
|
|
33
|
-
* Simple wrapper with simple pubsub system built on top of `ws` socket.
|
|
34
|
-
* The abstraction actually open two different sockets:
|
|
35
|
-
* - one configured for string (JSON compatible) messages
|
|
36
|
-
* - one configured with `binaryType=arraybuffer` for streaming data more
|
|
37
|
-
* efficiently.
|
|
38
|
-
* The sockets also re-emits all "native" ws events.
|
|
39
|
-
*
|
|
40
|
-
* An instance of `Socket` is automatically created by the `soundworks.Client`.
|
|
41
|
-
* @see {@link client.Client#socket}
|
|
42
|
-
*
|
|
43
|
-
* @see https://github.com/websockets/ws
|
|
44
|
-
*
|
|
45
|
-
* @memberof client
|
|
46
|
-
*/
|
|
47
|
-
|
|
48
|
-
class Socket {
|
|
49
|
-
constructor() {
|
|
50
|
-
/**
|
|
51
|
-
* WebSocket instance (string protocol - binaryType = 'string').
|
|
52
|
-
*/
|
|
53
|
-
|
|
54
|
-
/** @private */
|
|
55
|
-
this.ws = null;
|
|
56
|
-
/**
|
|
57
|
-
* WebSocket instance (binary protocol - binaryType = 'arraybuffer').
|
|
58
|
-
*/
|
|
59
|
-
|
|
60
|
-
/** @private */
|
|
61
|
-
|
|
62
|
-
this.binaryWs = null;
|
|
63
|
-
this._stringListeners = new Map();
|
|
64
|
-
this._binaryListeners = new Map();
|
|
65
|
-
}
|
|
66
|
-
/**
|
|
67
|
-
* Initialize a websocket connection with the server. This is automatically
|
|
68
|
-
* called in `client.init()`
|
|
69
|
-
* @param {String} clientType - `client.type` {@link client}
|
|
70
|
-
* @param {Object} options - Options of the socket
|
|
71
|
-
* @param {Array<String>} options.path - Defines where socket should find the `socket.io` file
|
|
72
|
-
*/
|
|
73
|
-
|
|
74
|
-
/** @private */
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
async init(clientType, config) {
|
|
78
|
-
// unique key that allows to associate the two sockets to the same client.
|
|
79
|
-
// note: the key is only used to pair to two sockets, so its usage is very
|
|
80
|
-
// limited in time therefore a random number should hopefully be sufficient.
|
|
81
|
-
const key = (Math.random() + '').replace(/^0\./, ''); // open web sockets
|
|
82
|
-
|
|
83
|
-
let {
|
|
84
|
-
path
|
|
85
|
-
} = config.env.websockets; // @note: keep this check
|
|
86
|
-
// backward compatibility w/ assetsDomain and websocket old config way
|
|
87
|
-
// cf. https://github.com/collective-soundworks/soundworks/issues/35
|
|
88
|
-
|
|
89
|
-
if (config.env.subpath) {
|
|
90
|
-
path = `${config.env.subpath}/${path}`;
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
let url;
|
|
94
|
-
let webSocketOptions;
|
|
95
|
-
|
|
96
|
-
if (isBrowser()) {
|
|
97
|
-
const protocol = window.location.protocol.replace(/^http?/, 'ws');
|
|
98
|
-
const {
|
|
99
|
-
hostname,
|
|
100
|
-
port
|
|
101
|
-
} = window.location;
|
|
102
|
-
url = `${protocol}//${hostname}:${port}/${path}`;
|
|
103
|
-
webSocketOptions = [];
|
|
104
|
-
} else {
|
|
105
|
-
const protocol = config.env.useHttps ? 'wss:' : 'ws:';
|
|
106
|
-
const {
|
|
107
|
-
serverIp,
|
|
108
|
-
port
|
|
109
|
-
} = config.env;
|
|
110
|
-
url = `${protocol}//${serverIp}:${port}/${path}`;
|
|
111
|
-
webSocketOptions = {
|
|
112
|
-
rejectUnauthorized: false
|
|
113
|
-
};
|
|
114
|
-
}
|
|
115
|
-
|
|
116
|
-
const queryParams = `clientType=${clientType}&key=${key}`; // ----------------------------------------------------------
|
|
117
|
-
// init string socket
|
|
118
|
-
// ----------------------------------------------------------
|
|
119
|
-
|
|
120
|
-
const stringSocketUrl = `${url}?binary=0&${queryParams}`;
|
|
121
|
-
await new Promise((resolve, reject) => {
|
|
122
|
-
let connectionRefusedLogged = false;
|
|
123
|
-
|
|
124
|
-
const trySocket = async () => {
|
|
125
|
-
log(`[string socket] trying connection - url: ${stringSocketUrl}`);
|
|
126
|
-
const ws = new _isomorphicWs.default(stringSocketUrl, webSocketOptions);
|
|
127
|
-
ws.addEventListener('open', connectEvent => {
|
|
128
|
-
// parse incoming messages for pubsub
|
|
129
|
-
this.ws = ws;
|
|
130
|
-
this.ws.addEventListener('message', e => {
|
|
131
|
-
const [channel, args] = (0, _socketsEncoderDecoder.unpackStringMessage)(e.data);
|
|
132
|
-
|
|
133
|
-
this._emit(false, channel, ...args);
|
|
134
|
-
}); // broadcast all `WebSocket` native events
|
|
135
|
-
|
|
136
|
-
['close', 'error', 'upgrade', 'message'].forEach(eventName => {
|
|
137
|
-
this.ws.addEventListener(eventName, e => {
|
|
138
|
-
this._emit(false, eventName, e);
|
|
139
|
-
});
|
|
140
|
-
}); // forward open event
|
|
141
|
-
|
|
142
|
-
this._emit(false, 'open', connectEvent); // continue with raw socket
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
resolve();
|
|
146
|
-
}); // cf. https://github.com/collective-soundworks/soundworks/issues/17
|
|
147
|
-
|
|
148
|
-
ws.addEventListener('error', e => {
|
|
149
|
-
if (e.type === 'error' && e.error.code === 'ECONNREFUSED') {
|
|
150
|
-
if (!connectionRefusedLogged) {
|
|
151
|
-
console.log('[socket] connection refused, waiting for the server to start');
|
|
152
|
-
connectionRefusedLogged = true;
|
|
153
|
-
}
|
|
154
|
-
|
|
155
|
-
setTimeout(trySocket, 1000);
|
|
156
|
-
}
|
|
157
|
-
});
|
|
158
|
-
};
|
|
159
|
-
|
|
160
|
-
trySocket();
|
|
161
|
-
}); // // ----------------------------------------------------------
|
|
162
|
-
// // init binary socket
|
|
163
|
-
// // ----------------------------------------------------------
|
|
164
|
-
|
|
165
|
-
const binarySocketUrl = `${url}?binary=1&${queryParams}`;
|
|
166
|
-
await new Promise((resolve, reject) => {
|
|
167
|
-
log(`[binary socket] trying connection - url: ${binarySocketUrl}`);
|
|
168
|
-
const ws = new _isomorphicWs.default(binarySocketUrl, webSocketOptions);
|
|
169
|
-
ws.binaryType = 'arraybuffer';
|
|
170
|
-
ws.addEventListener('open', connectEvent => {
|
|
171
|
-
// parse incoming messages for pubsub
|
|
172
|
-
this.binaryWs = ws;
|
|
173
|
-
this.binaryWs.addEventListener('message', e => {
|
|
174
|
-
const [channel, data] = (0, _socketsEncoderDecoder.unpackBinaryMessage)(e.data);
|
|
175
|
-
|
|
176
|
-
this._emit(true, channel, data);
|
|
177
|
-
}); // broadcast all `WebSocket` native events
|
|
178
|
-
|
|
179
|
-
['close', 'error', 'upgrade', 'message'].forEach(eventName => {
|
|
180
|
-
this.binaryWs.addEventListener(eventName, e => {
|
|
181
|
-
this._emit(true, eventName, e);
|
|
182
|
-
});
|
|
183
|
-
}); // forward open event
|
|
184
|
-
|
|
185
|
-
this._emit(true, 'open', connectEvent);
|
|
186
|
-
|
|
187
|
-
resolve();
|
|
188
|
-
});
|
|
189
|
-
}); // everyone is connected
|
|
190
|
-
|
|
191
|
-
return Promise.resolve();
|
|
192
|
-
}
|
|
193
|
-
/** @private */
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
_emit(binary, channel, ...args) {
|
|
197
|
-
const listeners = binary ? this._binaryListeners : this._stringListeners;
|
|
198
|
-
|
|
199
|
-
if (listeners.has(channel)) {
|
|
200
|
-
const callbacks = listeners.get(channel);
|
|
201
|
-
callbacks.forEach(callback => callback(...args));
|
|
202
|
-
}
|
|
203
|
-
}
|
|
204
|
-
/** @private */
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
_addListener(listeners, channel, callback) {
|
|
208
|
-
if (!listeners.has(channel)) {
|
|
209
|
-
listeners.set(channel, new Set());
|
|
210
|
-
}
|
|
211
|
-
|
|
212
|
-
const callbacks = listeners.get(channel);
|
|
213
|
-
callbacks.add(callback);
|
|
214
|
-
}
|
|
215
|
-
/** @private */
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
_removeListener(listeners, channel, callback) {
|
|
219
|
-
if (listeners.has(channel)) {
|
|
220
|
-
const callbacks = listeners.get(channel);
|
|
221
|
-
callbacks.delete(callback);
|
|
222
|
-
|
|
223
|
-
if (callbacks.size === 0) {
|
|
224
|
-
listeners.delete(channel);
|
|
225
|
-
}
|
|
226
|
-
}
|
|
227
|
-
}
|
|
228
|
-
/** @private */
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
_removeAllListeners(listeners, channel) {
|
|
232
|
-
if (listeners.has(channel)) {
|
|
233
|
-
listeners.delete(channel);
|
|
234
|
-
}
|
|
235
|
-
}
|
|
236
|
-
/**
|
|
237
|
-
* Send JSON compatible messages on a given channel
|
|
238
|
-
*
|
|
239
|
-
* @param {String} channel - The channel of the message
|
|
240
|
-
* @param {...*} args - Arguments of the message (as many as needed, of any type)
|
|
241
|
-
*/
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
send(channel, ...args) {
|
|
245
|
-
const msg = (0, _socketsEncoderDecoder.packStringMessage)(channel, ...args);
|
|
246
|
-
this.ws.send(msg);
|
|
247
|
-
}
|
|
248
|
-
/**
|
|
249
|
-
* Listen JSON compatible messages on a given channel
|
|
250
|
-
*
|
|
251
|
-
* @param {String} channel - Channel of the message
|
|
252
|
-
* @param {Function} callback - Callback to execute when a message is received
|
|
253
|
-
*/
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
addListener(channel, callback) {
|
|
257
|
-
this._addListener(this._stringListeners, channel, callback);
|
|
258
|
-
}
|
|
259
|
-
/**
|
|
260
|
-
* Remove a listener from JSON compatible messages on a given channel
|
|
261
|
-
*
|
|
262
|
-
* @param {String} channel - Channel of the message
|
|
263
|
-
* @param {Function} callback - Callback to remove
|
|
264
|
-
*/
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
removeListener(channel, callback) {
|
|
268
|
-
this._removeListener(this._stringListeners, channel, callback);
|
|
269
|
-
}
|
|
270
|
-
/**
|
|
271
|
-
* Remove all listeners from JSON compatible messages on a given channel
|
|
272
|
-
*
|
|
273
|
-
* @param {String} channel - Channel of the message
|
|
274
|
-
*/
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
removeAllListeners(channel) {
|
|
278
|
-
this._removeAllListeners(this._stringListeners, channel);
|
|
279
|
-
}
|
|
280
|
-
/**
|
|
281
|
-
* Send binary messages on a given channel
|
|
282
|
-
*
|
|
283
|
-
* @param {String} channel - Channel of the message
|
|
284
|
-
* @param {TypedArray} typedArray - Data to send
|
|
285
|
-
*/
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
sendBinary(channel, typedArray) {
|
|
289
|
-
const msg = (0, _socketsEncoderDecoder.packBinaryMessage)(channel, typedArray);
|
|
290
|
-
this.binaryWs.send(msg);
|
|
291
|
-
}
|
|
292
|
-
/**
|
|
293
|
-
* Listen binary messages on a given channel
|
|
294
|
-
*
|
|
295
|
-
* @param {String} channel - Channel of the message
|
|
296
|
-
* @param {Function} callback - Callback to execute when a message is received
|
|
297
|
-
*/
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
addBinaryListener(channel, callback) {
|
|
301
|
-
this._addListener(this._binaryListeners, channel, callback);
|
|
302
|
-
}
|
|
303
|
-
/**
|
|
304
|
-
* Remove a listener from binary compatible messages on a given channel
|
|
305
|
-
*
|
|
306
|
-
* @param {String} channel - Channel of the message
|
|
307
|
-
* @param {Function} callback - Callback to cancel
|
|
308
|
-
*/
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
removeBinaryListener(channel, callback) {
|
|
312
|
-
this._removeListener(this._binaryListeners, channel, callback);
|
|
313
|
-
}
|
|
314
|
-
/**
|
|
315
|
-
* Remove all listeners from binary compatible messages on a given channel
|
|
316
|
-
*
|
|
317
|
-
* @param {String} channel - Channel of the message
|
|
318
|
-
*/
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
removeAllBinaryListeners(channel) {
|
|
322
|
-
this._removeAllListeners(this._binaryListeners, channel);
|
|
323
|
-
}
|
|
324
|
-
/**
|
|
325
|
-
* Immediately close the 2 sockets
|
|
326
|
-
*/
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
terminate() {
|
|
330
|
-
this.ws.close();
|
|
331
|
-
this.binaryWs.close();
|
|
332
|
-
}
|
|
333
|
-
|
|
334
|
-
}
|
|
335
|
-
|
|
336
|
-
;
|
|
337
|
-
var _default = Socket;
|
|
338
|
-
exports.default = _default;
|
package/client/index.js
DELETED
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.default = exports.Client = exports.AbstractExperience = void 0;
|
|
7
|
-
|
|
8
|
-
var _AbstractExperience2 = _interopRequireDefault(require("./AbstractExperience.js"));
|
|
9
|
-
|
|
10
|
-
var _Client2 = _interopRequireDefault(require("./Client.js"));
|
|
11
|
-
|
|
12
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
13
|
-
|
|
14
|
-
/**
|
|
15
|
-
* Client-side part of the *soundworks* framework.
|
|
16
|
-
* Can run seamlessly in a browser or in node.js.
|
|
17
|
-
*
|
|
18
|
-
* @namespace client
|
|
19
|
-
*
|
|
20
|
-
* @example
|
|
21
|
-
* import soundworks from '@soundworks/core/client';
|
|
22
|
-
*
|
|
23
|
-
* // create a new `soundworks.Client` instance
|
|
24
|
-
* const client = new soundworks.Client();
|
|
25
|
-
* // register a pre-defined or user-defined plugin
|
|
26
|
-
* client.registerService('my-plugin', myServiceFactory);
|
|
27
|
-
* // initialize the client (mainly connect and initialize WebSockets)
|
|
28
|
-
* await client.init(config);
|
|
29
|
-
* // create application specific experience
|
|
30
|
-
* // must extends `soundworks.Experience`
|
|
31
|
-
* const playerExperience = new PlayerExperience(client);
|
|
32
|
-
* // init required plugins, if any
|
|
33
|
-
* await client.start();
|
|
34
|
-
* // when everything is ready, start the experience
|
|
35
|
-
* playerExperience.start();
|
|
36
|
-
*/
|
|
37
|
-
// `import soundworks from '@soundworks/core/client'``
|
|
38
|
-
// or
|
|
39
|
-
// `import { Client } from '@soundworks/core/client'`
|
|
40
|
-
const AbstractExperience = _AbstractExperience2.default;
|
|
41
|
-
exports.AbstractExperience = AbstractExperience;
|
|
42
|
-
const Client = _Client2.default;
|
|
43
|
-
exports.Client = Client;
|
|
44
|
-
var _default = {
|
|
45
|
-
AbstractExperience: _AbstractExperience2.default,
|
|
46
|
-
Client: _Client2.default
|
|
47
|
-
};
|
|
48
|
-
exports.default = _default;
|
package/client.js
DELETED
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* This is a dirty shortcut to enable cleaner import in template using `type=module`
|
|
5
|
-
* This should be cleaned little by little...
|
|
6
|
-
*
|
|
7
|
-
* We need to define if we can be backward compatible there if we go to full module (probably not)
|
|
8
|
-
*/
|
|
9
|
-
Object.defineProperty(exports, "__esModule", {
|
|
10
|
-
value: true
|
|
11
|
-
});
|
|
12
|
-
exports.default = exports.Client = exports.AbstractExperience = void 0;
|
|
13
|
-
|
|
14
|
-
var _AbstractExperience2 = _interopRequireDefault(require("./client/AbstractExperience.js"));
|
|
15
|
-
|
|
16
|
-
var _Client2 = _interopRequireDefault(require("./client/Client.js"));
|
|
17
|
-
|
|
18
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
19
|
-
|
|
20
|
-
const AbstractExperience = _AbstractExperience2.default;
|
|
21
|
-
exports.AbstractExperience = AbstractExperience;
|
|
22
|
-
const Client = _Client2.default;
|
|
23
|
-
exports.Client = Client;
|
|
24
|
-
var _default = {
|
|
25
|
-
AbstractExperience: _AbstractExperience2.default,
|
|
26
|
-
Client: _Client2.default
|
|
27
|
-
};
|
|
28
|
-
exports.default = _default;
|