@neurodevs/node-lsl 13.1.0 → 14.0.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/build/__tests__/AbstractPackageTest.js +1 -1
- package/build/__tests__/AbstractPackageTest.js.map +1 -1
- package/build/__tests__/impl/LslWebSocketBridge.test.js +7 -1
- package/build/__tests__/impl/LslWebSocketBridge.test.js.map +1 -1
- package/build/impl/LslWebSocketBridge.d.ts +11 -8
- package/build/impl/LslWebSocketBridge.js.map +1 -1
- package/build/index.d.ts +2 -2
- package/build/index.js +3 -3
- package/build/index.js.map +1 -1
- package/build/testDoubles/{StreamTransportBridge/FakeStreamTransportBridge.d.ts → WebSocketBridge/FakeWebSocketBridge.d.ts} +2 -2
- package/build/testDoubles/WebSocketBridge/FakeWebSocketBridge.js +25 -0
- package/build/testDoubles/WebSocketBridge/FakeWebSocketBridge.js.map +1 -0
- package/build/testDoubles/WebSocketBridge/SpyLslWebSocketBridge.d.ts +4 -0
- package/build/testDoubles/WebSocketBridge/SpyLslWebSocketBridge.js.map +1 -0
- package/package.json +1 -1
- package/src/__tests__/AbstractPackageTest.ts +1 -1
- package/src/__tests__/impl/LslWebSocketBridge.test.ts +18 -5
- package/src/impl/LslWebSocketBridge.ts +15 -12
- package/src/index.ts +3 -3
- package/src/testDoubles/WebSocketBridge/FakeWebSocketBridge.ts +31 -0
- package/src/testDoubles/{StreamTransportBridge → WebSocketBridge}/SpyLslWebSocketBridge.ts +2 -2
- package/build/testDoubles/StreamTransportBridge/FakeStreamTransportBridge.js +0 -25
- package/build/testDoubles/StreamTransportBridge/FakeStreamTransportBridge.js.map +0 -1
- package/build/testDoubles/StreamTransportBridge/SpyLslWebSocketBridge.d.ts +0 -4
- package/build/testDoubles/StreamTransportBridge/SpyLslWebSocketBridge.js.map +0 -1
- package/src/testDoubles/StreamTransportBridge/FakeStreamTransportBridge.ts +0 -33
- /package/build/testDoubles/{StreamTransportBridge → WebSocketBridge}/SpyLslWebSocketBridge.js +0 -0
|
@@ -12,7 +12,7 @@ import SpyStreamInfo from '../testDoubles/StreamInfo/SpyStreamInfo.js';
|
|
|
12
12
|
import FakeStreamInlet from '../testDoubles/StreamInlet/FakeStreamInlet.js';
|
|
13
13
|
import { SpyStreamInlet } from '../testDoubles/StreamInlet/SpyStreamInlet.js';
|
|
14
14
|
import FakeStreamOutlet from '../testDoubles/StreamOutlet/FakeStreamOutlet.js';
|
|
15
|
-
import SpyLslWebSocketBridge from '../testDoubles/
|
|
15
|
+
import SpyLslWebSocketBridge from '../testDoubles/WebSocketBridge/SpyLslWebSocketBridge.js';
|
|
16
16
|
import FakeWebSocketServer from '../testDoubles/WebSockets/FakeWebSocketServer.js';
|
|
17
17
|
export default class AbstractPackageTest extends AbstractModuleTest {
|
|
18
18
|
static fakeLiblsl;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AbstractPackageTest.js","sourceRoot":"","sources":["../../src/__tests__/AbstractPackageTest.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,MAAM,qBAAqB,CAAA;AAGpD,OAAO,aAAa,MAAM,0BAA0B,CAAA;AACpD,OAAO,oBAAoB,MAAM,iCAAiC,CAAA;AAClE,OAAO,aAAa,MAAM,0BAA0B,CAAA;AACpD,OAAO,cAGN,MAAM,2BAA2B,CAAA;AAClC,OAAO,eAAe,MAAM,4BAA4B,CAAA;AACxD,OAAO,kBAAkB,MAAM,+BAA+B,CAAA;AAC9D,OAAO,oBAAoB,MAAM,0DAA0D,CAAA;AAC3F,OAAO,UAAU,MAAM,qCAAqC,CAAA;AAC5D,OAAO,cAAc,MAAM,6CAA6C,CAAA;AACxE,OAAO,aAAa,MAAM,4CAA4C,CAAA;AACtE,OAAO,eAAe,MAAM,+CAA+C,CAAA;AAC3E,OAAO,EAAE,cAAc,EAAE,MAAM,8CAA8C,CAAA;AAC7E,OAAO,gBAAgB,MAAM,iDAAiD,CAAA;AAC9E,OAAO,qBAAqB,MAAM
|
|
1
|
+
{"version":3,"file":"AbstractPackageTest.js","sourceRoot":"","sources":["../../src/__tests__/AbstractPackageTest.ts"],"names":[],"mappings":"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"}
|
|
@@ -24,12 +24,15 @@ export default class LslWebSocketBridgeTest extends AbstractPackageTest {
|
|
|
24
24
|
assert.isTruthy(this.instance, 'Failed to create instance!');
|
|
25
25
|
}
|
|
26
26
|
static async createsLslStreamInlet() {
|
|
27
|
-
const { channelNames, channelFormat, sampleRateHz, chunkSize } = FakeStreamInlet.callsToConstructor[0]?.options ?? {};
|
|
27
|
+
const { channelNames, channelFormat, sampleRateHz, chunkSize, name, type, sourceId, } = FakeStreamInlet.callsToConstructor[0]?.options ?? {};
|
|
28
28
|
assert.isEqualDeep({
|
|
29
29
|
channelNames,
|
|
30
30
|
channelFormat,
|
|
31
31
|
sampleRateHz,
|
|
32
32
|
chunkSize,
|
|
33
|
+
name,
|
|
34
|
+
type,
|
|
35
|
+
sourceId,
|
|
33
36
|
}, this.baseOptions);
|
|
34
37
|
}
|
|
35
38
|
static async activateCallsStartPullingOnInlet() {
|
|
@@ -104,6 +107,9 @@ export default class LslWebSocketBridgeTest extends AbstractPackageTest {
|
|
|
104
107
|
channelFormat: 'float32',
|
|
105
108
|
sampleRateHz: 100 * Math.random(),
|
|
106
109
|
chunkSize: randomInt(1, 100),
|
|
110
|
+
name: this.generateId(),
|
|
111
|
+
type: this.generateId(),
|
|
112
|
+
sourceId: this.generateId(),
|
|
107
113
|
};
|
|
108
114
|
static LslWebSocketBridge(options) {
|
|
109
115
|
return LslWebSocketBridge.Create({ ...this.baseOptions, ...options });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LslWebSocketBridge.test.js","sourceRoot":"","sources":["../../../src/__tests__/impl/LslWebSocketBridge.test.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAA;AAElC,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAElD,OAAO,kBAEN,MAAM,kCAAkC,CAAA;AACzC,OAAO,eAAe,MAAM,kDAAkD,CAAA;AAE9E,OAAO,aAAa,MAAM,+CAA+C,CAAA;AACzE,OAAO,mBAAmB,MAAM,qDAAqD,CAAA;AACrF,OAAO,mBAAmB,MAAM,2BAA2B,CAAA;AAE3D,MAAM,CAAC,OAAO,OAAO,sBAAuB,SAAQ,mBAAmB;IAC3D,MAAM,CAAC,QAAQ,CAAuB;IAEpC,MAAM,CAAC,KAAK,CAAC,UAAU;QAC7B,MAAM,KAAK,CAAC,UAAU,EAAE,CAAA;QAExB,IAAI,CAAC,kBAAkB,EAAE,CAAA;QACzB,IAAI,CAAC,sBAAsB,EAAE,CAAA;QAC7B,IAAI,CAAC,wBAAwB,EAAE,CAAA;QAE/B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,kBAAkB,EAA2B,CAAA;IACtE,CAAC;IAGsB,AAAb,MAAM,CAAC,KAAK,CAAC,eAAe;QAClC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,4BAA4B,CAAC,CAAA;IAChE,CAAC;IAGsB,AAAb,MAAM,CAAC,KAAK,CAAC,qBAAqB;QACxC,MAAM,
|
|
1
|
+
{"version":3,"file":"LslWebSocketBridge.test.js","sourceRoot":"","sources":["../../../src/__tests__/impl/LslWebSocketBridge.test.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAA;AAElC,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAElD,OAAO,kBAEN,MAAM,kCAAkC,CAAA;AACzC,OAAO,eAAe,MAAM,kDAAkD,CAAA;AAE9E,OAAO,aAAa,MAAM,+CAA+C,CAAA;AACzE,OAAO,mBAAmB,MAAM,qDAAqD,CAAA;AACrF,OAAO,mBAAmB,MAAM,2BAA2B,CAAA;AAE3D,MAAM,CAAC,OAAO,OAAO,sBAAuB,SAAQ,mBAAmB;IAC3D,MAAM,CAAC,QAAQ,CAAuB;IAEpC,MAAM,CAAC,KAAK,CAAC,UAAU;QAC7B,MAAM,KAAK,CAAC,UAAU,EAAE,CAAA;QAExB,IAAI,CAAC,kBAAkB,EAAE,CAAA;QACzB,IAAI,CAAC,sBAAsB,EAAE,CAAA;QAC7B,IAAI,CAAC,wBAAwB,EAAE,CAAA;QAE/B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,kBAAkB,EAA2B,CAAA;IACtE,CAAC;IAGsB,AAAb,MAAM,CAAC,KAAK,CAAC,eAAe;QAClC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,4BAA4B,CAAC,CAAA;IAChE,CAAC;IAGsB,AAAb,MAAM,CAAC,KAAK,CAAC,qBAAqB;QACxC,MAAM,EACF,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,SAAS,EACT,IAAI,EACJ,IAAI,EACJ,QAAQ,GACX,GAAG,eAAe,CAAC,kBAAkB,CAAC,CAAC,CAAC,EAAE,OAAO,IAAI,EAAE,CAAA;QAExD,MAAM,CAAC,WAAW,CACd;YACI,YAAY;YACZ,aAAa;YACb,YAAY;YACZ,SAAS;YACT,IAAI;YACJ,IAAI;YACJ,QAAQ;SACX,EACD,IAAI,CAAC,WAAW,CACnB,CAAA;IACL,CAAC;IAGsB,AAAb,MAAM,CAAC,KAAK,CAAC,gCAAgC;QACnD,IAAI,CAAC,QAAQ,EAAE,CAAA;QAEf,MAAM,CAAC,OAAO,CACV,eAAe,CAAC,sBAAsB,EACtC,CAAC,EACD,qCAAqC,CACxC,CAAA;IACL,CAAC;IAGsB,AAAb,MAAM,CAAC,KAAK,CAAC,iCAAiC;QACpD,IAAI,CAAC,QAAQ,EAAE,CAAA;QACf,IAAI,CAAC,UAAU,EAAE,CAAA;QAEjB,MAAM,CAAC,OAAO,CACV,eAAe,CAAC,qBAAqB,EACrC,CAAC,EACD,oCAAoC,CACvC,CAAA;IACL,CAAC;IAGsB,AAAb,MAAM,CAAC,KAAK,CAAC,0BAA0B;QAC7C,IAAI,CAAC,OAAO,EAAE,CAAA;QAEd,MAAM,CAAC,OAAO,CACV,eAAe,CAAC,iBAAiB,EACjC,CAAC,EACD,gCAAgC,CACnC,CAAA;IACL,CAAC;IAGsB,AAAb,MAAM,CAAC,KAAK,CAAC,sBAAsB;QACzC,MAAM,CAAC,WAAW,CACd,mBAAmB,CAAC,kBAAkB,CAAC,CAAC,CAAC,EACzC,EAAE,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE,EACtB,iCAAiC,CACpC,CAAA;IACL,CAAC;IAGsB,AAAb,MAAM,CAAC,KAAK,CAAC,mCAAmC;QACtD,IAAI,CAAC,QAAQ,EAAE,CAAA;QAEf,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC,sBAAsB,EAAE,CAAA;QAE7D,KAAK,MAAM,MAAM,IAAI,mBAAmB,CAAC,OAAO,EAAE,CAAC;YAC/C,MAAM,YAAY,GAAG,aAAa,CAAC,WAAW,CAAC,MAAM,CACjD,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,MAAM,CAAC,EAAE,CAC5B,CAAC,CAAC,CAAC,CAAA;YAEJ,MAAM,CAAC,WAAW,CACd,YAAY,EAAE,IAAI,EAClB,IAAI,CAAC,SAAS,CAAC;gBACX,OAAO;gBACP,UAAU;aACb,CAAC,EACF,8BAA8B,CACjC,CAAA;QACL,CAAC;IACL,CAAC;IAGsB,AAAb,MAAM,CAAC,KAAK,CAAC,mCAAmC;QACtD,KAAK,MAAM,MAAM,IAAI,mBAAmB,CAAC,OAAO,EAAE,CAAC;YAC/C,MAAM,CAAC,UAAU,GAAG,SAAS,CAAC,UAAU,CAAA;QAC5C,CAAC;QAED,IAAI,CAAC,QAAQ,EAAE,CAAA;QACf,IAAI,CAAC,sBAAsB,EAAE,CAAA;QAE7B,MAAM,CAAC,OAAO,CACV,aAAa,CAAC,WAAW,CAAC,MAAM,EAChC,CAAC,EACD,0CAA0C,CAC7C,CAAA;IACL,CAAC;IAGsB,AAAb,MAAM,CAAC,KAAK,CAAC,4BAA4B;QAC/C,IAAI,CAAC,OAAO,EAAE,CAAA;QAEd,MAAM,CAAC,OAAO,CACV,mBAAmB,CAAC,eAAe,EACnC,CAAC,EACD,wCAAwC,CAC3C,CAAA;IACL,CAAC;IAGsB,AAAb,MAAM,CAAC,KAAK,CAAC,oCAAoC;QACvD,IAAI,CAAC,OAAO,EAAE,CAAA;QAEd,MAAM,CAAC,SAAS,CAAC,GAAG,EAAE;YAClB,IAAI,CAAC,QAAQ,EAAE,CAAA;QACnB,CAAC,EAAE,wGAAwG,CAAC,CAAA;IAChH,CAAC;IAGsB,AAAb,MAAM,CAAC,KAAK,CAAC,sBAAsB;QACzC,mBAAmB,CAAC,eAAe,EAAE,CAAA;QAErC,MAAM,OAAO,GAAG,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;QAErC,IAAI,CAAC,kBAAkB,CAAC,EAAE,OAAO,EAAE,CAAC,CAAA;QAEpC,MAAM,CAAC,OAAO,CACV,mBAAmB,CAAC,kBAAkB,CAAC,CAAC,CAAC,EAAE,IAAI,EAC/C,OAAO,EACP,uCAAuC,CAC1C,CAAA;IACL,CAAC;IAEO,MAAM,CAAC,QAAQ;QACnB,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAA;IAC5B,CAAC;IAEO,MAAM,CAAC,UAAU;QACrB,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAA;IAC9B,CAAC;IAEO,MAAM,CAAC,OAAO;QAClB,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAA;IAC3B,CAAC;IAEO,MAAM,CAAC,sBAAsB;QACjC,MAAM,OAAO,GAAG,IAAI,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;QACpD,MAAM,UAAU,GAAG,IAAI,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;QAE3C,eAAe,CAAC,kBAAkB,CAAC,CAAC,CAAC,EAAE,MAAO,CAAC,OAAO,EAAE,UAAU,CAAC,CAAA;QACnE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,CAAA;IAClC,CAAC;IAEO,MAAM,CAAU,OAAO,GAAG,IAAI,CAAA;IAE9B,MAAM,CAAU,WAAW,GAAG;QAClC,YAAY,EAAE,IAAI,CAAC,YAAY;QAC/B,aAAa,EAAE,SAAkB;QACjC,YAAY,EAAE,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE;QACjC,SAAS,EAAE,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC;QAC5B,IAAI,EAAE,IAAI,CAAC,UAAU,EAAE;QACvB,IAAI,EAAE,IAAI,CAAC,UAAU,EAAE;QACvB,QAAQ,EAAE,IAAI,CAAC,UAAU,EAAE;KAC9B,CAAA;IAEO,MAAM,CAAC,kBAAkB,CAC7B,OAAyC;QAEzC,OAAO,kBAAkB,CAAC,MAAM,CAAC,EAAE,GAAG,IAAI,CAAC,WAAW,EAAE,GAAG,OAAO,EAAE,CAAC,CAAA;IACzE,CAAC;;AAtLsB;IADtB,IAAI,EAAE;mDAGN;AAGsB;IADtB,IAAI,EAAE;yDAwBN;AAGsB;IADtB,IAAI,EAAE;oEASN;AAGsB;IADtB,IAAI,EAAE;qEAUN;AAGsB;IADtB,IAAI,EAAE;8DASN;AAGsB;IADtB,IAAI,EAAE;0DAON;AAGsB;IADtB,IAAI,EAAE;uEAoBN;AAGsB;IADtB,IAAI,EAAE;uEAcN;AAGsB;IADtB,IAAI,EAAE;gEASN;AAGsB;IADtB,IAAI,EAAE;wEAON;AAGsB;IADtB,IAAI,EAAE;0DAaN"}
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import { WebSocketServer } from 'ws';
|
|
2
2
|
import { ChannelFormat } from './LiblslAdapter.js';
|
|
3
3
|
import { StreamInlet } from './LslStreamInlet.js';
|
|
4
|
-
export default class LslWebSocketBridge implements
|
|
5
|
-
static Class?:
|
|
4
|
+
export default class LslWebSocketBridge implements WebSocketBridge {
|
|
5
|
+
static Class?: WebSocketBridgeConstructor;
|
|
6
6
|
static WSS: typeof import("ws").Server;
|
|
7
7
|
private inlet;
|
|
8
8
|
private wss;
|
|
9
9
|
private isDestroyed;
|
|
10
|
-
protected constructor(options:
|
|
11
|
-
static Create(options:
|
|
10
|
+
protected constructor(options: WebSocketBridgeConstructorOptions);
|
|
11
|
+
static Create(options: WebSocketBridgeOptions): WebSocketBridge;
|
|
12
12
|
activate(): void;
|
|
13
13
|
private throwIfBridgeIsDestroyed;
|
|
14
14
|
private startPullingData;
|
|
@@ -22,20 +22,23 @@ export default class LslWebSocketBridge implements StreamTransportBridge {
|
|
|
22
22
|
private static LslStreamInlet;
|
|
23
23
|
private static WebSocketServer;
|
|
24
24
|
}
|
|
25
|
-
export interface
|
|
25
|
+
export interface WebSocketBridge {
|
|
26
26
|
activate(): void;
|
|
27
27
|
deactivate(): void;
|
|
28
28
|
destroy(): void;
|
|
29
29
|
}
|
|
30
|
-
export type
|
|
31
|
-
export interface
|
|
30
|
+
export type WebSocketBridgeConstructor = new (options: WebSocketBridgeConstructorOptions) => WebSocketBridge;
|
|
31
|
+
export interface WebSocketBridgeOptions {
|
|
32
32
|
channelNames: string[];
|
|
33
33
|
channelFormat: ChannelFormat;
|
|
34
34
|
sampleRateHz: number;
|
|
35
35
|
chunkSize: number;
|
|
36
|
+
name?: string;
|
|
37
|
+
type?: string;
|
|
38
|
+
sourceId?: string;
|
|
36
39
|
wssPort?: number;
|
|
37
40
|
}
|
|
38
|
-
export interface
|
|
41
|
+
export interface WebSocketBridgeConstructorOptions extends WebSocketBridgeOptions {
|
|
39
42
|
inlet: StreamInlet;
|
|
40
43
|
wss: WebSocketServer;
|
|
41
44
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LslWebSocketBridge.js","sourceRoot":"","sources":["../../src/impl/LslWebSocketBridge.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,IAAI,CAAA;AAEpC,OAAO,cAA+B,MAAM,qBAAqB,CAAA;AAEjE,MAAM,CAAC,OAAO,OAAO,kBAAkB;IAC5B,MAAM,CAAC,KAAK,
|
|
1
|
+
{"version":3,"file":"LslWebSocketBridge.js","sourceRoot":"","sources":["../../src/impl/LslWebSocketBridge.ts"],"names":[],"mappings":"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"}
|
package/build/index.d.ts
CHANGED
|
@@ -28,8 +28,8 @@ export { default as FakeStreamOutlet } from './testDoubles/StreamOutlet/FakeStre
|
|
|
28
28
|
export * from './testDoubles/StreamOutlet/FakeStreamOutlet.js';
|
|
29
29
|
export { default as LslWebSocketBridge } from './impl/LslWebSocketBridge.js';
|
|
30
30
|
export * from './impl/LslWebSocketBridge.js';
|
|
31
|
-
export { default as
|
|
32
|
-
export * from './testDoubles/
|
|
31
|
+
export { default as FakeWebSocketBridge } from './testDoubles/WebSocketBridge/FakeWebSocketBridge.js';
|
|
32
|
+
export * from './testDoubles/WebSocketBridge/FakeWebSocketBridge.js';
|
|
33
33
|
export { default as generateRandomOutletOptions } from './testDoubles/generateRandomOutletOptions.js';
|
|
34
34
|
export { default as FakeWebSocket } from './testDoubles/WebSockets/FakeWebSocket.js';
|
|
35
35
|
export * from './testDoubles/WebSockets/FakeWebSocket.js';
|
package/build/index.js
CHANGED
|
@@ -31,11 +31,11 @@ export { default as LslStreamOutlet } from './impl/LslStreamOutlet.js';
|
|
|
31
31
|
export * from './impl/LslStreamOutlet.js';
|
|
32
32
|
export { default as FakeStreamOutlet } from './testDoubles/StreamOutlet/FakeStreamOutlet.js';
|
|
33
33
|
export * from './testDoubles/StreamOutlet/FakeStreamOutlet.js';
|
|
34
|
-
//
|
|
34
|
+
// WebSocketBridge
|
|
35
35
|
export { default as LslWebSocketBridge } from './impl/LslWebSocketBridge.js';
|
|
36
36
|
export * from './impl/LslWebSocketBridge.js';
|
|
37
|
-
export { default as
|
|
38
|
-
export * from './testDoubles/
|
|
37
|
+
export { default as FakeWebSocketBridge } from './testDoubles/WebSocketBridge/FakeWebSocketBridge.js';
|
|
38
|
+
export * from './testDoubles/WebSocketBridge/FakeWebSocketBridge.js';
|
|
39
39
|
// Utils
|
|
40
40
|
export { default as generateRandomOutletOptions } from './testDoubles/generateRandomOutletOptions.js';
|
|
41
41
|
// WebSockets
|
package/build/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,oBAAoB;AAEpB,OAAO,EAAE,OAAO,IAAI,oBAAoB,EAAE,MAAM,gCAAgC,CAAA;AAChF,cAAc,gCAAgC,CAAA;AAE9C,OAAO,EAAE,OAAO,IAAI,qBAAqB,EAAE,MAAM,0DAA0D,CAAA;AAC3G,cAAc,0DAA0D,CAAA;AAExE,OAAO,EAAE,OAAO,IAAI,qBAAqB,EAAE,MAAM,0DAA0D,CAAA;AAC3G,cAAc,0DAA0D,CAAA;AAExE,OAAO,EAAE,OAAO,IAAI,oBAAoB,EAAE,MAAM,yDAAyD,CAAA;AACzG,cAAc,yDAAyD,CAAA;AAEvE,OAAO,EAAE,OAAO,IAAI,yBAAyB,EAAE,MAAM,8DAA8D,CAAA;AACnH,cAAc,8DAA8D,CAAA;AAE5E,SAAS;AAET,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,yBAAyB,CAAA;AAClE,cAAc,yBAAyB,CAAA;AAEvC,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,oCAAoC,CAAA;AAC1E,cAAc,oCAAoC,CAAA;AAElD,aAAa;AAEb,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,yBAAyB,CAAA;AAClE,cAAc,yBAAyB,CAAA;AAEvC,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,2CAA2C,CAAA;AACpF,cAAc,2CAA2C,CAAA;AAEzD,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,4CAA4C,CAAA;AACtF,cAAc,4CAA4C,CAAA;AAE1D,cAAc;AAEd,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,0BAA0B,CAAA;AACpE,cAAc,0BAA0B,CAAA;AAExC,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,8CAA8C,CAAA;AACzF,cAAc,8CAA8C,CAAA;AAE5D,eAAe;AAEf,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,2BAA2B,CAAA;AACtE,cAAc,2BAA2B,CAAA;AAEzC,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,gDAAgD,CAAA;AAC5F,cAAc,gDAAgD,CAAA;AAE9D,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,oBAAoB;AAEpB,OAAO,EAAE,OAAO,IAAI,oBAAoB,EAAE,MAAM,gCAAgC,CAAA;AAChF,cAAc,gCAAgC,CAAA;AAE9C,OAAO,EAAE,OAAO,IAAI,qBAAqB,EAAE,MAAM,0DAA0D,CAAA;AAC3G,cAAc,0DAA0D,CAAA;AAExE,OAAO,EAAE,OAAO,IAAI,qBAAqB,EAAE,MAAM,0DAA0D,CAAA;AAC3G,cAAc,0DAA0D,CAAA;AAExE,OAAO,EAAE,OAAO,IAAI,oBAAoB,EAAE,MAAM,yDAAyD,CAAA;AACzG,cAAc,yDAAyD,CAAA;AAEvE,OAAO,EAAE,OAAO,IAAI,yBAAyB,EAAE,MAAM,8DAA8D,CAAA;AACnH,cAAc,8DAA8D,CAAA;AAE5E,SAAS;AAET,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,yBAAyB,CAAA;AAClE,cAAc,yBAAyB,CAAA;AAEvC,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,oCAAoC,CAAA;AAC1E,cAAc,oCAAoC,CAAA;AAElD,aAAa;AAEb,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,yBAAyB,CAAA;AAClE,cAAc,yBAAyB,CAAA;AAEvC,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,2CAA2C,CAAA;AACpF,cAAc,2CAA2C,CAAA;AAEzD,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,4CAA4C,CAAA;AACtF,cAAc,4CAA4C,CAAA;AAE1D,cAAc;AAEd,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,0BAA0B,CAAA;AACpE,cAAc,0BAA0B,CAAA;AAExC,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,8CAA8C,CAAA;AACzF,cAAc,8CAA8C,CAAA;AAE5D,eAAe;AAEf,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,2BAA2B,CAAA;AACtE,cAAc,2BAA2B,CAAA;AAEzC,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,gDAAgD,CAAA;AAC5F,cAAc,gDAAgD,CAAA;AAE9D,kBAAkB;AAElB,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,8BAA8B,CAAA;AAC5E,cAAc,8BAA8B,CAAA;AAE5C,OAAO,EAAE,OAAO,IAAI,mBAAmB,EAAE,MAAM,sDAAsD,CAAA;AACrG,cAAc,sDAAsD,CAAA;AAEpE,QAAQ;AAER,OAAO,EAAE,OAAO,IAAI,2BAA2B,EAAE,MAAM,8CAA8C,CAAA;AAErG,aAAa;AAEb,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,2CAA2C,CAAA;AACpF,cAAc,2CAA2C,CAAA;AAEzD,OAAO,EAAE,OAAO,IAAI,mBAAmB,EAAE,MAAM,iDAAiD,CAAA;AAChG,cAAc,iDAAiD,CAAA"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
export default class
|
|
1
|
+
import { WebSocketBridge } from '../../impl/LslWebSocketBridge.js';
|
|
2
|
+
export default class FakeWebSocketBridge implements WebSocketBridge {
|
|
3
3
|
static numCallsToConstructor: number;
|
|
4
4
|
static numCallsToActivate: number;
|
|
5
5
|
static numCallsToDeactivate: number;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
export default class FakeWebSocketBridge {
|
|
2
|
+
static numCallsToConstructor = 0;
|
|
3
|
+
static numCallsToActivate = 0;
|
|
4
|
+
static numCallsToDeactivate = 0;
|
|
5
|
+
static numCallsToDestroy = 0;
|
|
6
|
+
constructor() {
|
|
7
|
+
FakeWebSocketBridge.numCallsToConstructor++;
|
|
8
|
+
}
|
|
9
|
+
activate() {
|
|
10
|
+
FakeWebSocketBridge.numCallsToActivate++;
|
|
11
|
+
}
|
|
12
|
+
deactivate() {
|
|
13
|
+
FakeWebSocketBridge.numCallsToDeactivate++;
|
|
14
|
+
}
|
|
15
|
+
destroy() {
|
|
16
|
+
FakeWebSocketBridge.numCallsToDestroy++;
|
|
17
|
+
}
|
|
18
|
+
static resetTestDouble() {
|
|
19
|
+
FakeWebSocketBridge.numCallsToConstructor = 0;
|
|
20
|
+
FakeWebSocketBridge.numCallsToActivate = 0;
|
|
21
|
+
FakeWebSocketBridge.numCallsToDeactivate = 0;
|
|
22
|
+
FakeWebSocketBridge.numCallsToDestroy = 0;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=FakeWebSocketBridge.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FakeWebSocketBridge.js","sourceRoot":"","sources":["../../../src/testDoubles/WebSocketBridge/FakeWebSocketBridge.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,OAAO,OAAO,mBAAmB;IAC7B,MAAM,CAAC,qBAAqB,GAAG,CAAC,CAAA;IAChC,MAAM,CAAC,kBAAkB,GAAG,CAAC,CAAA;IAC7B,MAAM,CAAC,oBAAoB,GAAG,CAAC,CAAA;IAC/B,MAAM,CAAC,iBAAiB,GAAG,CAAC,CAAA;IAEnC;QACI,mBAAmB,CAAC,qBAAqB,EAAE,CAAA;IAC/C,CAAC;IAEM,QAAQ;QACX,mBAAmB,CAAC,kBAAkB,EAAE,CAAA;IAC5C,CAAC;IAEM,UAAU;QACb,mBAAmB,CAAC,oBAAoB,EAAE,CAAA;IAC9C,CAAC;IAEM,OAAO;QACV,mBAAmB,CAAC,iBAAiB,EAAE,CAAA;IAC3C,CAAC;IAEM,MAAM,CAAC,eAAe;QACzB,mBAAmB,CAAC,qBAAqB,GAAG,CAAC,CAAA;QAC7C,mBAAmB,CAAC,kBAAkB,GAAG,CAAC,CAAA;QAC1C,mBAAmB,CAAC,oBAAoB,GAAG,CAAC,CAAA;QAC5C,mBAAmB,CAAC,iBAAiB,GAAG,CAAC,CAAA;IAC7C,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SpyLslWebSocketBridge.js","sourceRoot":"","sources":["../../../src/testDoubles/WebSocketBridge/SpyLslWebSocketBridge.ts"],"names":[],"mappings":"AAAA,OAAO,kBAEN,MAAM,kCAAkC,CAAA;AAEzC,MAAM,CAAC,OAAO,OAAO,qBAAsB,SAAQ,kBAAkB;IACjE,YAAmB,OAA0C;QACzD,KAAK,CAAC,OAAO,CAAC,CAAA;IAClB,CAAC;CACJ"}
|
package/package.json
CHANGED
|
@@ -17,7 +17,7 @@ import SpyStreamInfo from '../testDoubles/StreamInfo/SpyStreamInfo.js'
|
|
|
17
17
|
import FakeStreamInlet from '../testDoubles/StreamInlet/FakeStreamInlet.js'
|
|
18
18
|
import { SpyStreamInlet } from '../testDoubles/StreamInlet/SpyStreamInlet.js'
|
|
19
19
|
import FakeStreamOutlet from '../testDoubles/StreamOutlet/FakeStreamOutlet.js'
|
|
20
|
-
import SpyLslWebSocketBridge from '../testDoubles/
|
|
20
|
+
import SpyLslWebSocketBridge from '../testDoubles/WebSocketBridge/SpyLslWebSocketBridge.js'
|
|
21
21
|
import FakeWebSocketServer from '../testDoubles/WebSockets/FakeWebSocketServer.js'
|
|
22
22
|
|
|
23
23
|
export default class AbstractPackageTest extends AbstractModuleTest {
|
|
@@ -3,10 +3,10 @@ import { randomInt } from 'crypto'
|
|
|
3
3
|
import { test, assert } from '@neurodevs/node-tdd'
|
|
4
4
|
|
|
5
5
|
import LslWebSocketBridge, {
|
|
6
|
-
|
|
6
|
+
WebSocketBridgeOptions,
|
|
7
7
|
} from '../../impl/LslWebSocketBridge.js'
|
|
8
8
|
import FakeStreamInlet from '../../testDoubles/StreamInlet/FakeStreamInlet.js'
|
|
9
|
-
import SpyLslWebSocketBridge from '../../testDoubles/
|
|
9
|
+
import SpyLslWebSocketBridge from '../../testDoubles/WebSocketBridge/SpyLslWebSocketBridge.js'
|
|
10
10
|
import FakeWebSocket from '../../testDoubles/WebSockets/FakeWebSocket.js'
|
|
11
11
|
import FakeWebSocketServer from '../../testDoubles/WebSockets/FakeWebSocketServer.js'
|
|
12
12
|
import AbstractPackageTest from '../AbstractPackageTest.js'
|
|
@@ -31,8 +31,15 @@ export default class LslWebSocketBridgeTest extends AbstractPackageTest {
|
|
|
31
31
|
|
|
32
32
|
@test()
|
|
33
33
|
protected static async createsLslStreamInlet() {
|
|
34
|
-
const {
|
|
35
|
-
|
|
34
|
+
const {
|
|
35
|
+
channelNames,
|
|
36
|
+
channelFormat,
|
|
37
|
+
sampleRateHz,
|
|
38
|
+
chunkSize,
|
|
39
|
+
name,
|
|
40
|
+
type,
|
|
41
|
+
sourceId,
|
|
42
|
+
} = FakeStreamInlet.callsToConstructor[0]?.options ?? {}
|
|
36
43
|
|
|
37
44
|
assert.isEqualDeep(
|
|
38
45
|
{
|
|
@@ -40,6 +47,9 @@ export default class LslWebSocketBridgeTest extends AbstractPackageTest {
|
|
|
40
47
|
channelFormat,
|
|
41
48
|
sampleRateHz,
|
|
42
49
|
chunkSize,
|
|
50
|
+
name,
|
|
51
|
+
type,
|
|
52
|
+
sourceId,
|
|
43
53
|
},
|
|
44
54
|
this.baseOptions
|
|
45
55
|
)
|
|
@@ -188,10 +198,13 @@ export default class LslWebSocketBridgeTest extends AbstractPackageTest {
|
|
|
188
198
|
channelFormat: 'float32' as const,
|
|
189
199
|
sampleRateHz: 100 * Math.random(),
|
|
190
200
|
chunkSize: randomInt(1, 100),
|
|
201
|
+
name: this.generateId(),
|
|
202
|
+
type: this.generateId(),
|
|
203
|
+
sourceId: this.generateId(),
|
|
191
204
|
}
|
|
192
205
|
|
|
193
206
|
private static LslWebSocketBridge(
|
|
194
|
-
options?: Partial<
|
|
207
|
+
options?: Partial<WebSocketBridgeOptions>
|
|
195
208
|
) {
|
|
196
209
|
return LslWebSocketBridge.Create({ ...this.baseOptions, ...options })
|
|
197
210
|
}
|
|
@@ -2,22 +2,22 @@ import { WebSocketServer } from 'ws'
|
|
|
2
2
|
import { ChannelFormat } from './LiblslAdapter.js'
|
|
3
3
|
import LslStreamInlet, { StreamInlet } from './LslStreamInlet.js'
|
|
4
4
|
|
|
5
|
-
export default class LslWebSocketBridge implements
|
|
6
|
-
public static Class?:
|
|
5
|
+
export default class LslWebSocketBridge implements WebSocketBridge {
|
|
6
|
+
public static Class?: WebSocketBridgeConstructor
|
|
7
7
|
public static WSS = WebSocketServer
|
|
8
8
|
|
|
9
9
|
private inlet: StreamInlet
|
|
10
10
|
private wss: WebSocketServer
|
|
11
11
|
private isDestroyed = false
|
|
12
12
|
|
|
13
|
-
protected constructor(options:
|
|
13
|
+
protected constructor(options: WebSocketBridgeConstructorOptions) {
|
|
14
14
|
const { inlet, wss } = options
|
|
15
15
|
|
|
16
16
|
this.inlet = inlet
|
|
17
17
|
this.wss = wss
|
|
18
18
|
}
|
|
19
19
|
|
|
20
|
-
public static Create(options:
|
|
20
|
+
public static Create(options: WebSocketBridgeOptions) {
|
|
21
21
|
const { wssPort = 8080 } = options ?? {}
|
|
22
22
|
const wss = this.WebSocketServer(wssPort)
|
|
23
23
|
const inlet = this.LslStreamInlet(options, wss)
|
|
@@ -88,7 +88,7 @@ export default class LslWebSocketBridge implements StreamTransportBridge {
|
|
|
88
88
|
}
|
|
89
89
|
|
|
90
90
|
private static LslStreamInlet(
|
|
91
|
-
options:
|
|
91
|
+
options: WebSocketBridgeOptions,
|
|
92
92
|
wss: WebSocketServer
|
|
93
93
|
) {
|
|
94
94
|
const onData = this.createOnDataCallback(wss)
|
|
@@ -100,26 +100,29 @@ export default class LslWebSocketBridge implements StreamTransportBridge {
|
|
|
100
100
|
}
|
|
101
101
|
}
|
|
102
102
|
|
|
103
|
-
export interface
|
|
103
|
+
export interface WebSocketBridge {
|
|
104
104
|
activate(): void
|
|
105
105
|
deactivate(): void
|
|
106
106
|
destroy(): void
|
|
107
107
|
}
|
|
108
108
|
|
|
109
|
-
export type
|
|
110
|
-
options:
|
|
111
|
-
) =>
|
|
109
|
+
export type WebSocketBridgeConstructor = new (
|
|
110
|
+
options: WebSocketBridgeConstructorOptions
|
|
111
|
+
) => WebSocketBridge
|
|
112
112
|
|
|
113
|
-
export interface
|
|
113
|
+
export interface WebSocketBridgeOptions {
|
|
114
114
|
channelNames: string[]
|
|
115
115
|
channelFormat: ChannelFormat
|
|
116
116
|
sampleRateHz: number
|
|
117
117
|
chunkSize: number
|
|
118
|
+
name?: string
|
|
119
|
+
type?: string
|
|
120
|
+
sourceId?: string
|
|
118
121
|
wssPort?: number
|
|
119
122
|
}
|
|
120
123
|
|
|
121
|
-
export interface
|
|
122
|
-
extends
|
|
124
|
+
export interface WebSocketBridgeConstructorOptions
|
|
125
|
+
extends WebSocketBridgeOptions {
|
|
123
126
|
inlet: StreamInlet
|
|
124
127
|
wss: WebSocketServer
|
|
125
128
|
}
|
package/src/index.ts
CHANGED
|
@@ -50,13 +50,13 @@ export * from './impl/LslStreamOutlet.js'
|
|
|
50
50
|
export { default as FakeStreamOutlet } from './testDoubles/StreamOutlet/FakeStreamOutlet.js'
|
|
51
51
|
export * from './testDoubles/StreamOutlet/FakeStreamOutlet.js'
|
|
52
52
|
|
|
53
|
-
//
|
|
53
|
+
// WebSocketBridge
|
|
54
54
|
|
|
55
55
|
export { default as LslWebSocketBridge } from './impl/LslWebSocketBridge.js'
|
|
56
56
|
export * from './impl/LslWebSocketBridge.js'
|
|
57
57
|
|
|
58
|
-
export { default as
|
|
59
|
-
export * from './testDoubles/
|
|
58
|
+
export { default as FakeWebSocketBridge } from './testDoubles/WebSocketBridge/FakeWebSocketBridge.js'
|
|
59
|
+
export * from './testDoubles/WebSocketBridge/FakeWebSocketBridge.js'
|
|
60
60
|
|
|
61
61
|
// Utils
|
|
62
62
|
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { WebSocketBridge } from '../../impl/LslWebSocketBridge.js'
|
|
2
|
+
|
|
3
|
+
export default class FakeWebSocketBridge implements WebSocketBridge {
|
|
4
|
+
public static numCallsToConstructor = 0
|
|
5
|
+
public static numCallsToActivate = 0
|
|
6
|
+
public static numCallsToDeactivate = 0
|
|
7
|
+
public static numCallsToDestroy = 0
|
|
8
|
+
|
|
9
|
+
public constructor() {
|
|
10
|
+
FakeWebSocketBridge.numCallsToConstructor++
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
public activate() {
|
|
14
|
+
FakeWebSocketBridge.numCallsToActivate++
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
public deactivate() {
|
|
18
|
+
FakeWebSocketBridge.numCallsToDeactivate++
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
public destroy() {
|
|
22
|
+
FakeWebSocketBridge.numCallsToDestroy++
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
public static resetTestDouble() {
|
|
26
|
+
FakeWebSocketBridge.numCallsToConstructor = 0
|
|
27
|
+
FakeWebSocketBridge.numCallsToActivate = 0
|
|
28
|
+
FakeWebSocketBridge.numCallsToDeactivate = 0
|
|
29
|
+
FakeWebSocketBridge.numCallsToDestroy = 0
|
|
30
|
+
}
|
|
31
|
+
}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import LslWebSocketBridge, {
|
|
2
|
-
|
|
2
|
+
WebSocketBridgeConstructorOptions,
|
|
3
3
|
} from '../../impl/LslWebSocketBridge.js'
|
|
4
4
|
|
|
5
5
|
export default class SpyLslWebSocketBridge extends LslWebSocketBridge {
|
|
6
|
-
public constructor(options:
|
|
6
|
+
public constructor(options: WebSocketBridgeConstructorOptions) {
|
|
7
7
|
super(options)
|
|
8
8
|
}
|
|
9
9
|
}
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
export default class FakeStreamTransportBridge {
|
|
2
|
-
static numCallsToConstructor = 0;
|
|
3
|
-
static numCallsToActivate = 0;
|
|
4
|
-
static numCallsToDeactivate = 0;
|
|
5
|
-
static numCallsToDestroy = 0;
|
|
6
|
-
constructor() {
|
|
7
|
-
FakeStreamTransportBridge.numCallsToConstructor++;
|
|
8
|
-
}
|
|
9
|
-
activate() {
|
|
10
|
-
FakeStreamTransportBridge.numCallsToActivate++;
|
|
11
|
-
}
|
|
12
|
-
deactivate() {
|
|
13
|
-
FakeStreamTransportBridge.numCallsToDeactivate++;
|
|
14
|
-
}
|
|
15
|
-
destroy() {
|
|
16
|
-
FakeStreamTransportBridge.numCallsToDestroy++;
|
|
17
|
-
}
|
|
18
|
-
static resetTestDouble() {
|
|
19
|
-
FakeStreamTransportBridge.numCallsToConstructor = 0;
|
|
20
|
-
FakeStreamTransportBridge.numCallsToActivate = 0;
|
|
21
|
-
FakeStreamTransportBridge.numCallsToDeactivate = 0;
|
|
22
|
-
FakeStreamTransportBridge.numCallsToDestroy = 0;
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
//# sourceMappingURL=FakeStreamTransportBridge.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"FakeStreamTransportBridge.js","sourceRoot":"","sources":["../../../src/testDoubles/StreamTransportBridge/FakeStreamTransportBridge.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,OAAO,OAAO,yBAAyB;IAGnC,MAAM,CAAC,qBAAqB,GAAG,CAAC,CAAA;IAChC,MAAM,CAAC,kBAAkB,GAAG,CAAC,CAAA;IAC7B,MAAM,CAAC,oBAAoB,GAAG,CAAC,CAAA;IAC/B,MAAM,CAAC,iBAAiB,GAAG,CAAC,CAAA;IAEnC;QACI,yBAAyB,CAAC,qBAAqB,EAAE,CAAA;IACrD,CAAC;IAEM,QAAQ;QACX,yBAAyB,CAAC,kBAAkB,EAAE,CAAA;IAClD,CAAC;IAEM,UAAU;QACb,yBAAyB,CAAC,oBAAoB,EAAE,CAAA;IACpD,CAAC;IAEM,OAAO;QACV,yBAAyB,CAAC,iBAAiB,EAAE,CAAA;IACjD,CAAC;IAEM,MAAM,CAAC,eAAe;QACzB,yBAAyB,CAAC,qBAAqB,GAAG,CAAC,CAAA;QACnD,yBAAyB,CAAC,kBAAkB,GAAG,CAAC,CAAA;QAChD,yBAAyB,CAAC,oBAAoB,GAAG,CAAC,CAAA;QAClD,yBAAyB,CAAC,iBAAiB,GAAG,CAAC,CAAA;IACnD,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"SpyLslWebSocketBridge.js","sourceRoot":"","sources":["../../../src/testDoubles/StreamTransportBridge/SpyLslWebSocketBridge.ts"],"names":[],"mappings":"AAAA,OAAO,kBAEN,MAAM,kCAAkC,CAAA;AAEzC,MAAM,CAAC,OAAO,OAAO,qBAAsB,SAAQ,kBAAkB;IACjE,YAAmB,OAAgD;QAC/D,KAAK,CAAC,OAAO,CAAC,CAAA;IAClB,CAAC;CACJ"}
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
import { StreamTransportBridge } from '../../impl/LslWebSocketBridge.js'
|
|
2
|
-
|
|
3
|
-
export default class FakeStreamTransportBridge
|
|
4
|
-
implements StreamTransportBridge
|
|
5
|
-
{
|
|
6
|
-
public static numCallsToConstructor = 0
|
|
7
|
-
public static numCallsToActivate = 0
|
|
8
|
-
public static numCallsToDeactivate = 0
|
|
9
|
-
public static numCallsToDestroy = 0
|
|
10
|
-
|
|
11
|
-
public constructor() {
|
|
12
|
-
FakeStreamTransportBridge.numCallsToConstructor++
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
public activate() {
|
|
16
|
-
FakeStreamTransportBridge.numCallsToActivate++
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
public deactivate() {
|
|
20
|
-
FakeStreamTransportBridge.numCallsToDeactivate++
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
public destroy() {
|
|
24
|
-
FakeStreamTransportBridge.numCallsToDestroy++
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
public static resetTestDouble() {
|
|
28
|
-
FakeStreamTransportBridge.numCallsToConstructor = 0
|
|
29
|
-
FakeStreamTransportBridge.numCallsToActivate = 0
|
|
30
|
-
FakeStreamTransportBridge.numCallsToDeactivate = 0
|
|
31
|
-
FakeStreamTransportBridge.numCallsToDestroy = 0
|
|
32
|
-
}
|
|
33
|
-
}
|
/package/build/testDoubles/{StreamTransportBridge → WebSocketBridge}/SpyLslWebSocketBridge.js
RENAMED
|
File without changes
|