@neurodevs/node-lsl 16.1.0 → 17.1.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.d.ts +3 -1
- package/build/__tests__/AbstractPackageTest.js +3 -7
- package/build/__tests__/AbstractPackageTest.js.map +1 -1
- package/build/__tests__/impl/LslStreamInfo.test.d.ts +3 -2
- package/build/__tests__/impl/LslStreamInfo.test.js +19 -12
- package/build/__tests__/impl/LslStreamInfo.test.js.map +1 -1
- package/build/__tests__/impl/LslStreamInlet.test.d.ts +1 -3
- package/build/__tests__/impl/LslStreamInlet.test.js +6 -27
- package/build/__tests__/impl/LslStreamInlet.test.js.map +1 -1
- package/build/__tests__/impl/LslWebSocketBridge.test.js +10 -16
- package/build/__tests__/impl/LslWebSocketBridge.test.js.map +1 -1
- package/build/impl/LslStreamInfo.d.ts +5 -8
- package/build/impl/LslStreamInfo.js +13 -13
- package/build/impl/LslStreamInfo.js.map +1 -1
- package/build/impl/LslStreamInlet.d.ts +6 -17
- package/build/impl/LslStreamInlet.js +5 -21
- package/build/impl/LslStreamInlet.js.map +1 -1
- package/build/impl/LslStreamOutlet.d.ts +3 -3
- package/build/impl/LslStreamOutlet.js +5 -8
- package/build/impl/LslStreamOutlet.js.map +1 -1
- package/build/impl/LslWebSocketBridge.d.ts +3 -8
- package/build/impl/LslWebSocketBridge.js +3 -3
- package/build/impl/LslWebSocketBridge.js.map +1 -1
- package/build/scripts/runLslStreamOutlet.js +15 -10
- package/build/scripts/runLslStreamOutlet.js.map +1 -1
- package/build/scripts/runOutletToInlet.js +2 -7
- package/build/scripts/runOutletToInlet.js.map +1 -1
- package/build/testDoubles/Liblsl/FakeLiblsl.d.ts +1 -1
- package/build/testDoubles/Liblsl/FakeLiblsl.js +2 -2
- package/build/testDoubles/Liblsl/FakeLiblsl.js.map +1 -1
- package/build/testDoubles/StreamInfo/FakeStreamInfo.d.ts +4 -4
- package/build/testDoubles/StreamInfo/FakeStreamInfo.js +4 -4
- package/build/testDoubles/StreamInfo/FakeStreamInfo.js.map +1 -1
- package/build/testDoubles/StreamInfo/SpyStreamInfo.d.ts +0 -1
- package/build/testDoubles/StreamInfo/SpyStreamInfo.js +0 -3
- package/build/testDoubles/StreamInfo/SpyStreamInfo.js.map +1 -1
- package/build/testDoubles/StreamInlet/FakeStreamInlet.d.ts +3 -3
- package/build/testDoubles/StreamInlet/FakeStreamInlet.js.map +1 -1
- package/build/testDoubles/StreamInlet/SpyStreamInlet.d.ts +2 -3
- package/build/testDoubles/StreamInlet/SpyStreamInlet.js +0 -3
- package/build/testDoubles/StreamInlet/SpyStreamInlet.js.map +1 -1
- package/build/testDoubles/StreamOutlet/FakeStreamOutlet.d.ts +1 -0
- package/build/testDoubles/StreamOutlet/FakeStreamOutlet.js +3 -0
- package/build/testDoubles/StreamOutlet/FakeStreamOutlet.js.map +1 -1
- package/package.json +11 -11
- package/src/__tests__/AbstractPackageTest.ts +3 -7
- package/src/__tests__/impl/LslStreamInfo.test.ts +22 -11
- package/src/__tests__/impl/LslStreamInlet.test.ts +9 -34
- package/src/__tests__/impl/LslWebSocketBridge.test.ts +11 -25
- package/src/impl/LslStreamInfo.ts +24 -23
- package/src/impl/LslStreamInlet.ts +15 -46
- package/src/impl/LslStreamOutlet.ts +6 -9
- package/src/impl/LslWebSocketBridge.ts +6 -12
- package/src/scripts/runLslStreamOutlet.ts +16 -10
- package/src/scripts/runOutletToInlet.ts +7 -9
- package/src/testDoubles/Liblsl/FakeLiblsl.ts +2 -2
- package/src/testDoubles/StreamInfo/FakeStreamInfo.ts +6 -6
- package/src/testDoubles/StreamInfo/SpyStreamInfo.ts +0 -4
- package/src/testDoubles/StreamInlet/FakeStreamInlet.ts +6 -3
- package/src/testDoubles/StreamInlet/SpyStreamInlet.ts +2 -6
- package/src/testDoubles/StreamOutlet/FakeStreamOutlet.ts +4 -0
|
@@ -1,14 +1,10 @@
|
|
|
1
|
-
import generateId from '@neurodevs/generate-id';
|
|
2
1
|
import { createPointer, DataType, unwrapPointer } from 'ffi-rs';
|
|
3
2
|
import handleError from '../handleError.js';
|
|
4
3
|
import LiblslAdapter from './LiblslAdapter.js';
|
|
5
|
-
import LslStreamInfo from './LslStreamInfo.js';
|
|
6
4
|
export default class LslStreamInlet {
|
|
7
5
|
static Class;
|
|
8
6
|
isRunning = false;
|
|
9
7
|
info;
|
|
10
|
-
name;
|
|
11
|
-
channelNames;
|
|
12
8
|
channelCount;
|
|
13
9
|
chunkSize;
|
|
14
10
|
maxBufferedMs;
|
|
@@ -22,15 +18,12 @@ export default class LslStreamInlet {
|
|
|
22
18
|
timestampBufferPtr;
|
|
23
19
|
errorCodeBuffer;
|
|
24
20
|
errorCodeBufferPtr;
|
|
25
|
-
defaultName = `lsl-inlet-${generateId()}`;
|
|
26
21
|
sixMinutesInMs = 360 * 1000;
|
|
27
22
|
lsl = LiblslAdapter.getInstance();
|
|
28
23
|
constructor(info, options, onData) {
|
|
29
|
-
const {
|
|
24
|
+
const { chunkSize, maxBufferedMs, timeoutMs } = options ?? {};
|
|
30
25
|
this.info = info;
|
|
31
|
-
this.
|
|
32
|
-
this.channelNames = channelNames;
|
|
33
|
-
this.channelCount = this.channelNames.length;
|
|
26
|
+
this.channelCount = this.info.channelCount;
|
|
34
27
|
this.chunkSize = chunkSize;
|
|
35
28
|
this.maxBufferedMs = maxBufferedMs ?? this.sixMinutesInMs;
|
|
36
29
|
this.timeoutMs = timeoutMs ?? 0;
|
|
@@ -38,11 +31,8 @@ export default class LslStreamInlet {
|
|
|
38
31
|
this.setPullDataMethod();
|
|
39
32
|
this.createBoundInlet();
|
|
40
33
|
}
|
|
41
|
-
static Create(options, onData) {
|
|
42
|
-
|
|
43
|
-
const { maxBufferedMs, chunkSize, ...rest } = options;
|
|
44
|
-
const infoOptions = rest;
|
|
45
|
-
const info = this.LslStreamInfo(infoOptions);
|
|
34
|
+
static async Create(options, onData) {
|
|
35
|
+
const { info } = options;
|
|
46
36
|
return new (this.Class ?? this)(info, options, onData);
|
|
47
37
|
}
|
|
48
38
|
setPullDataMethod() {
|
|
@@ -55,13 +45,10 @@ export default class LslStreamInlet {
|
|
|
55
45
|
}
|
|
56
46
|
createBoundInlet() {
|
|
57
47
|
this.inlet = this.lsl.createInlet({
|
|
58
|
-
info: this.
|
|
48
|
+
info: this.info.boundInfo,
|
|
59
49
|
maxBufferedMs: this.maxBufferedMs,
|
|
60
50
|
});
|
|
61
51
|
}
|
|
62
|
-
get boundStreamInfo() {
|
|
63
|
-
return this.info.boundStreamInfo;
|
|
64
|
-
}
|
|
65
52
|
startPulling() {
|
|
66
53
|
this.isRunning = true;
|
|
67
54
|
this.createWriteableBuffers();
|
|
@@ -181,8 +168,5 @@ export default class LslStreamInlet {
|
|
|
181
168
|
destroyBoundInlet() {
|
|
182
169
|
this.lsl.destroyInlet({ inlet: this.inlet });
|
|
183
170
|
}
|
|
184
|
-
static LslStreamInfo(options) {
|
|
185
|
-
return LslStreamInfo.Create(options);
|
|
186
|
-
}
|
|
187
171
|
}
|
|
188
172
|
//# sourceMappingURL=LslStreamInlet.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LslStreamInlet.js","sourceRoot":"","sources":["../../src/impl/LslStreamInlet.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"LslStreamInlet.js","sourceRoot":"","sources":["../../src/impl/LslStreamInlet.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,6 +2,7 @@ import { ChannelFormat, LslSample } from './LiblslAdapter.js';
|
|
|
2
2
|
import { StreamInfo } from './LslStreamInfo.js';
|
|
3
3
|
export default class LslStreamOutlet implements StreamOutlet {
|
|
4
4
|
static Class?: StreamOutletConstructor;
|
|
5
|
+
readonly info: StreamInfo;
|
|
5
6
|
readonly name: string;
|
|
6
7
|
readonly type: string;
|
|
7
8
|
readonly sourceId: string;
|
|
@@ -13,7 +14,6 @@ export default class LslStreamOutlet implements StreamOutlet {
|
|
|
13
14
|
readonly maxBufferedMs: number;
|
|
14
15
|
readonly manufacturer: string;
|
|
15
16
|
readonly units: string;
|
|
16
|
-
private info;
|
|
17
17
|
private boundOutlet;
|
|
18
18
|
private pushSampleMethod;
|
|
19
19
|
private lsl;
|
|
@@ -24,13 +24,12 @@ export default class LslStreamOutlet implements StreamOutlet {
|
|
|
24
24
|
private get isChannelFormatSupported();
|
|
25
25
|
private throwUnsupportedChannelFormat;
|
|
26
26
|
private createStreamOutlet;
|
|
27
|
-
private get boundStreamInfo();
|
|
28
27
|
private setPushSampleMethod;
|
|
29
28
|
private get pushMethod();
|
|
30
29
|
private readonly methodMap;
|
|
31
30
|
pushSample(sample: LslSample): void;
|
|
32
31
|
destroy(): void;
|
|
33
|
-
private
|
|
32
|
+
private destroyBoundInfo;
|
|
34
33
|
private destroyBoundOutlet;
|
|
35
34
|
private static waitToAllowSetup;
|
|
36
35
|
private static LslStreamInfo;
|
|
@@ -38,6 +37,7 @@ export default class LslStreamOutlet implements StreamOutlet {
|
|
|
38
37
|
export interface StreamOutlet {
|
|
39
38
|
pushSample(sample: LslSample): void;
|
|
40
39
|
destroy(): void;
|
|
40
|
+
readonly info: StreamInfo;
|
|
41
41
|
readonly name: string;
|
|
42
42
|
readonly type: string;
|
|
43
43
|
readonly sourceId: string;
|
|
@@ -4,6 +4,7 @@ import LiblslAdapter from './LiblslAdapter.js';
|
|
|
4
4
|
import LslStreamInfo from './LslStreamInfo.js';
|
|
5
5
|
export default class LslStreamOutlet {
|
|
6
6
|
static Class;
|
|
7
|
+
info;
|
|
7
8
|
name;
|
|
8
9
|
type;
|
|
9
10
|
sourceId;
|
|
@@ -15,7 +16,6 @@ export default class LslStreamOutlet {
|
|
|
15
16
|
maxBufferedMs = 360 * 1000;
|
|
16
17
|
manufacturer = 'N/A';
|
|
17
18
|
units = 'N/A';
|
|
18
|
-
info;
|
|
19
19
|
boundOutlet;
|
|
20
20
|
pushSampleMethod;
|
|
21
21
|
lsl = LiblslAdapter.getInstance();
|
|
@@ -65,14 +65,11 @@ export default class LslStreamOutlet {
|
|
|
65
65
|
}
|
|
66
66
|
createStreamOutlet() {
|
|
67
67
|
this.boundOutlet = this.lsl.createOutlet({
|
|
68
|
-
info: this.
|
|
68
|
+
info: this.info.boundInfo,
|
|
69
69
|
chunkSize: this.chunkSize,
|
|
70
70
|
maxBufferedMs: this.maxBufferedMs,
|
|
71
71
|
});
|
|
72
72
|
}
|
|
73
|
-
get boundStreamInfo() {
|
|
74
|
-
return this.info.boundStreamInfo;
|
|
75
|
-
}
|
|
76
73
|
setPushSampleMethod() {
|
|
77
74
|
this.pushSampleMethod = this.lsl[this.pushMethod].bind(this.lsl);
|
|
78
75
|
}
|
|
@@ -93,11 +90,11 @@ export default class LslStreamOutlet {
|
|
|
93
90
|
handleError(err);
|
|
94
91
|
}
|
|
95
92
|
destroy() {
|
|
96
|
-
this.
|
|
93
|
+
this.destroyBoundInfo();
|
|
97
94
|
this.destroyBoundOutlet();
|
|
98
95
|
}
|
|
99
|
-
|
|
100
|
-
this.lsl.destroyStreamInfo({ info: this.
|
|
96
|
+
destroyBoundInfo() {
|
|
97
|
+
this.lsl.destroyStreamInfo({ info: this.info.boundInfo });
|
|
101
98
|
}
|
|
102
99
|
destroyBoundOutlet() {
|
|
103
100
|
this.lsl.destroyOutlet({ outlet: this.boundOutlet });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LslStreamOutlet.js","sourceRoot":"","sources":["../../src/impl/LslStreamOutlet.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,uBAAuB,EACvB,wBAAwB,EACxB,oBAAoB,EACpB,wBAAwB,EACxB,uBAAuB,GAC1B,MAAM,kBAAkB,CAAA;AACzB,OAAO,WAA6B,MAAM,mBAAmB,CAAA;AAO7D,OAAO,aAAa,MAAM,oBAAoB,CAAA;AAC9C,OAAO,aAGN,MAAM,oBAAoB,CAAA;AAE3B,MAAM,CAAC,OAAO,OAAO,eAAe;IACzB,MAAM,CAAC,KAAK,CAA0B;IAE7B,IAAI,CAAQ;IACZ,IAAI,CAAQ;IACZ,QAAQ,CAAQ;IAChB,YAAY,CAAU;IACtB,aAAa,CAAe;IAC5B,YAAY,CAAQ;IACpB,YAAY,CAAQ;IACpB,SAAS,CAAQ;IACjB,aAAa,GAAG,GAAG,GAAG,IAAI,CAAA;IAC1B,YAAY,GAAW,KAAK,CAAA;IAC5B,KAAK,GAAW,KAAK,CAAA;IAE7B,
|
|
1
|
+
{"version":3,"file":"LslStreamOutlet.js","sourceRoot":"","sources":["../../src/impl/LslStreamOutlet.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import WebSocket, { WebSocketServer } from 'ws';
|
|
2
|
-
import {
|
|
2
|
+
import { StreamInfo } from './LslStreamInfo.js';
|
|
3
3
|
import { StreamInlet } from './LslStreamInlet.js';
|
|
4
4
|
export default class LslWebSocketBridge implements WebSocketBridge {
|
|
5
5
|
static Class?: WebSocketBridgeConstructor;
|
|
@@ -10,7 +10,7 @@ export default class LslWebSocketBridge implements WebSocketBridge {
|
|
|
10
10
|
private remoteSockets?;
|
|
11
11
|
private isDestroyed;
|
|
12
12
|
protected constructor(options: WebSocketBridgeConstructorOptions);
|
|
13
|
-
static Create(options: WebSocketBridgeOptions): WebSocketBridge
|
|
13
|
+
static Create(options: WebSocketBridgeOptions): Promise<WebSocketBridge>;
|
|
14
14
|
private throwIfNoLocalServerOrRemoteSockets;
|
|
15
15
|
private readonly insufficientOptionsError;
|
|
16
16
|
activate(): void;
|
|
@@ -39,13 +39,8 @@ export interface WebSocketBridge {
|
|
|
39
39
|
}
|
|
40
40
|
export type WebSocketBridgeConstructor = new (options: WebSocketBridgeConstructorOptions) => WebSocketBridge;
|
|
41
41
|
export interface WebSocketBridgeOptions {
|
|
42
|
-
|
|
43
|
-
channelFormat: ChannelFormat;
|
|
44
|
-
sampleRateHz: number;
|
|
42
|
+
info: StreamInfo;
|
|
45
43
|
chunkSize: number;
|
|
46
|
-
name?: string;
|
|
47
|
-
type?: string;
|
|
48
|
-
sourceId?: string;
|
|
49
44
|
listenPort?: number;
|
|
50
45
|
connectUrls?: string | string[];
|
|
51
46
|
}
|
|
@@ -15,12 +15,12 @@ export default class LslWebSocketBridge {
|
|
|
15
15
|
this.remoteSockets = remoteSockets;
|
|
16
16
|
this.throwIfNoLocalServerOrRemoteSockets();
|
|
17
17
|
}
|
|
18
|
-
static Create(options) {
|
|
18
|
+
static async Create(options) {
|
|
19
19
|
const { listenPort, connectUrls, ...rest } = options;
|
|
20
20
|
const inletOptions = rest;
|
|
21
21
|
const localServer = this.WebSocketServer(listenPort);
|
|
22
22
|
const remoteSockets = this.createSocketsFrom(connectUrls);
|
|
23
|
-
const inlet = this.LslStreamInlet(inletOptions, localServer, remoteSockets);
|
|
23
|
+
const inlet = await this.LslStreamInlet(inletOptions, localServer, remoteSockets);
|
|
24
24
|
return new (this.Class ?? this)({
|
|
25
25
|
...options,
|
|
26
26
|
inlet,
|
|
@@ -106,7 +106,7 @@ export default class LslWebSocketBridge {
|
|
|
106
106
|
static WebSocketServer(listenPort) {
|
|
107
107
|
return listenPort ? new this.WSS({ port: listenPort }) : undefined;
|
|
108
108
|
}
|
|
109
|
-
static LslStreamInlet(options, localServer, remoteSockets) {
|
|
109
|
+
static async LslStreamInlet(options, localServer, remoteSockets) {
|
|
110
110
|
const onData = this.createOnDataCallback(localServer, remoteSockets);
|
|
111
111
|
return LslStreamInlet.Create(options, onData);
|
|
112
112
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LslWebSocketBridge.js","sourceRoot":"","sources":["../../src/impl/LslWebSocketBridge.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,EAAE,EAAE,eAAe,EAAE,MAAM,IAAI,CAAA;AAE/C,OAAO,cAGN,MAAM,qBAAqB,CAAA;AAE5B,MAAM,CAAC,OAAO,OAAO,kBAAkB;IAC5B,MAAM,CAAC,KAAK,CAA6B;IACzC,MAAM,CAAC,EAAE,GAAG,SAAS,CAAA;IACrB,MAAM,CAAC,GAAG,GAAG,eAAe,CAAA;IAE3B,KAAK,CAAa;IAClB,WAAW,CAAkB;IAC7B,aAAa,CAAc;IAE3B,WAAW,GAAG,KAAK,CAAA;IAE3B,YAAsB,OAA0C;QAC5D,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,GAAG,OAAO,CAAA;QAErD,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;QAClB,IAAI,CAAC,WAAW,GAAG,WAAW,CAAA;QAC9B,IAAI,CAAC,aAAa,GAAG,aAAa,CAAA;QAElC,IAAI,CAAC,mCAAmC,EAAE,CAAA;IAC9C,CAAC;IAEM,MAAM,CAAC,MAAM,CAAC,OAA+B;
|
|
1
|
+
{"version":3,"file":"LslWebSocketBridge.js","sourceRoot":"","sources":["../../src/impl/LslWebSocketBridge.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,17 +1,22 @@
|
|
|
1
1
|
import LslStreamOutlet from '../impl/LslStreamOutlet.js';
|
|
2
2
|
async function main() {
|
|
3
|
-
const
|
|
4
|
-
name: '
|
|
5
|
-
type: '
|
|
6
|
-
|
|
7
|
-
|
|
3
|
+
const outlet = await LslStreamOutlet.Create({
|
|
4
|
+
name: '10 Hz Pulse',
|
|
5
|
+
type: 'HZ',
|
|
6
|
+
sourceId: '10-hz-pulse',
|
|
7
|
+
channelNames: ['Ch1', 'Ch2', 'Ch3'],
|
|
8
8
|
channelFormat: 'float32',
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
units: 'microvolt',
|
|
12
|
-
chunkSize: 12,
|
|
9
|
+
sampleRateHz: 10,
|
|
10
|
+
chunkSize: 1,
|
|
13
11
|
});
|
|
14
|
-
|
|
12
|
+
for (let i = 0; i < 100; i++) {
|
|
13
|
+
await new Promise((resolve) => setTimeout(resolve, 100));
|
|
14
|
+
outlet.pushSample([
|
|
15
|
+
Math.random() * 100,
|
|
16
|
+
Math.random() * 100,
|
|
17
|
+
Math.random() * 100,
|
|
18
|
+
]);
|
|
19
|
+
}
|
|
15
20
|
}
|
|
16
21
|
main().catch((error) => {
|
|
17
22
|
console.error('Error in main:', error);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runLslStreamOutlet.js","sourceRoot":"","sources":["../../src/scripts/runLslStreamOutlet.ts"],"names":[],"mappings":"AAAA,OAAO,eAAe,MAAM,4BAA4B,CAAA;AAExD,KAAK,UAAU,IAAI;IACf,MAAM,
|
|
1
|
+
{"version":3,"file":"runLslStreamOutlet.js","sourceRoot":"","sources":["../../src/scripts/runLslStreamOutlet.ts"],"names":[],"mappings":"AAAA,OAAO,eAAe,MAAM,4BAA4B,CAAA;AAExD,KAAK,UAAU,IAAI;IACf,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC,MAAM,CAAC;QACxC,IAAI,EAAE,aAAa;QACnB,IAAI,EAAE,IAAI;QACV,QAAQ,EAAE,aAAa;QACvB,YAAY,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC;QACnC,aAAa,EAAE,SAAS;QACxB,YAAY,EAAE,EAAE;QAChB,SAAS,EAAE,CAAC;KACf,CAAC,CAAA;IAEF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;QAC3B,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAA;QAExD,MAAM,CAAC,UAAU,CAAC;YACd,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG;YACnB,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG;YACnB,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG;SACtB,CAAC,CAAA;IACN,CAAC;AACL,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;IACnB,OAAO,CAAC,KAAK,CAAC,gBAAgB,EAAE,KAAK,CAAC,CAAA;AAC1C,CAAC,CAAC,CAAA"}
|
|
@@ -14,15 +14,10 @@ const outlet = await LslStreamOutlet.Create({
|
|
|
14
14
|
});
|
|
15
15
|
console.log('Creating inlet...');
|
|
16
16
|
const inletOptions = {
|
|
17
|
-
|
|
18
|
-
type: 'TEST',
|
|
19
|
-
sourceId: 'TestOutletID',
|
|
20
|
-
sampleRateHz: 100,
|
|
21
|
-
channelNames: ['Ch1', 'Ch2', 'Ch3'],
|
|
22
|
-
channelFormat: 'float32',
|
|
17
|
+
info: outlet.info,
|
|
23
18
|
chunkSize: 1,
|
|
24
19
|
};
|
|
25
|
-
const inlet = LslStreamInlet.Create(inletOptions, (samples, timestamps) => {
|
|
20
|
+
const inlet = await LslStreamInlet.Create(inletOptions, (samples, timestamps) => {
|
|
26
21
|
console.log('Received samples:', samples, 'at timestamps:', timestamps);
|
|
27
22
|
});
|
|
28
23
|
console.log('Start pulling...');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runOutletToInlet.js","sourceRoot":"","sources":["../../src/scripts/runOutletToInlet.ts"],"names":[],"mappings":"AAAA,OAAO,cAAc,MAAM,2BAA2B,CAAA;AACtD,OAAO,eAAe,MAAM,4BAA4B,CAAA;AAExD,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAA;AACjC,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC,MAAM,CAAC;IACxC,IAAI,EAAE,YAAY;IAClB,IAAI,EAAE,MAAM;IACZ,QAAQ,EAAE,cAAc;IACxB,YAAY,EAAE,GAAG;IACjB,YAAY,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC;IACnC,aAAa,EAAE,SAAS;IACxB,SAAS,EAAE,CAAC;IACZ,KAAK,EAAE,MAAM;IACb,YAAY,EAAE,MAAM;CACvB,CAAC,CAAA;AAEF,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAA;AAEhC,MAAM,YAAY,GAAG;IACjB,IAAI,EAAE,
|
|
1
|
+
{"version":3,"file":"runOutletToInlet.js","sourceRoot":"","sources":["../../src/scripts/runOutletToInlet.ts"],"names":[],"mappings":"AAAA,OAAO,cAAc,MAAM,2BAA2B,CAAA;AACtD,OAAO,eAAe,MAAM,4BAA4B,CAAA;AAExD,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAA;AACjC,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC,MAAM,CAAC;IACxC,IAAI,EAAE,YAAY;IAClB,IAAI,EAAE,MAAM;IACZ,QAAQ,EAAE,cAAc;IACxB,YAAY,EAAE,GAAG;IACjB,YAAY,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC;IACnC,aAAa,EAAE,SAAS;IACxB,SAAS,EAAE,CAAC;IACZ,KAAK,EAAE,MAAM;IACb,YAAY,EAAE,MAAM;CACvB,CAAC,CAAA;AAEF,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAA;AAEhC,MAAM,YAAY,GAAG;IACjB,IAAI,EAAE,MAAM,CAAC,IAAI;IACjB,SAAS,EAAE,CAAC;CACf,CAAA;AAED,MAAM,KAAK,GAAG,MAAM,cAAc,CAAC,MAAM,CACrC,YAAY,EACZ,CAAC,OAAO,EAAE,UAAU,EAAE,EAAE;IACpB,OAAO,CAAC,GAAG,CAAC,mBAAmB,EAAE,OAAO,EAAE,gBAAgB,EAAE,UAAU,CAAC,CAAA;AAC3E,CAAC,CACJ,CAAA;AAED,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAA;AAC/B,KAAK,CAAC,YAAY,EAAE,CAAA;AAEpB,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAA;AACpC,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAA;AAExD,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAA;AACjC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;IAC3B,MAAM,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;IACxB,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAA;IACzB,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAA;AAC3D,CAAC;AAED,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAA;AAEzD,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAA;AACtC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC;IAC1B,MAAM,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;IACxB,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAA;IACzB,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAA;AAC5D,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { BoundOutlet, BoundStreamInfo, CreateStreamInfoOptions, AppendChannelsToStreamInfoOptions, CreateOutletOptions, PushSampleFloatTimestampOptions, PushSampleStringTimestampOptions, Liblsl, CreateInletOptions, DestroyInletOptions, BoundInlet, FlushInletOptions, PullChunkOptions, PullSampleOptions, DestroyStreamInfoOptions, ResolveByPropOptions, DestroyOutletOptions } from 'impl/LiblslAdapter.js';
|
|
2
2
|
export default class FakeLiblsl implements Liblsl {
|
|
3
|
-
static
|
|
3
|
+
static fakeStreamInfoHandles: BoundStreamInfo[];
|
|
4
4
|
static fakeSamples: Float32Array[];
|
|
5
5
|
static fakeChunks: Float32Array[];
|
|
6
6
|
static fakeTimestamps: Float64Array[];
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import generateId from '@neurodevs/generate-id';
|
|
2
2
|
export default class FakeLiblsl {
|
|
3
|
-
static
|
|
3
|
+
static fakeStreamInfoHandles = [];
|
|
4
4
|
static fakeSamples = [
|
|
5
5
|
new Float32Array([1, 2, 3]),
|
|
6
6
|
new Float32Array([4, 5, 6]),
|
|
@@ -54,7 +54,7 @@ export default class FakeLiblsl {
|
|
|
54
54
|
}
|
|
55
55
|
async resolveByProp(options) {
|
|
56
56
|
this.lastResolveByPropOptions = options;
|
|
57
|
-
return FakeLiblsl.
|
|
57
|
+
return FakeLiblsl.fakeStreamInfoHandles;
|
|
58
58
|
}
|
|
59
59
|
pushSampleFloatTimestamp(options) {
|
|
60
60
|
this.lastPushSampleFloatTimestampOptions = options;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FakeLiblsl.js","sourceRoot":"","sources":["../../../src/testDoubles/Liblsl/FakeLiblsl.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,wBAAwB,CAAA;AAsB/C,MAAM,CAAC,OAAO,OAAO,UAAU;IACpB,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"FakeLiblsl.js","sourceRoot":"","sources":["../../../src/testDoubles/Liblsl/FakeLiblsl.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { BoundStreamInfo } from 'impl/LiblslAdapter.js';
|
|
2
2
|
import { StreamInfo, StreamInfoOptions } from '../../impl/LslStreamInfo.js';
|
|
3
3
|
export default class FakeStreamInfo implements StreamInfo {
|
|
4
|
-
static callsToConstructor: StreamInfoOptions[];
|
|
4
|
+
static callsToConstructor: (StreamInfoOptions | undefined)[];
|
|
5
5
|
static numCallsToDestroy: number;
|
|
6
|
-
static
|
|
6
|
+
static boundInfo: BoundStreamInfo;
|
|
7
7
|
name: string;
|
|
8
8
|
type: string;
|
|
9
9
|
sourceId: string;
|
|
@@ -11,9 +11,9 @@ export default class FakeStreamInfo implements StreamInfo {
|
|
|
11
11
|
channelFormat: "float32";
|
|
12
12
|
sampleRateHz: number;
|
|
13
13
|
units: string;
|
|
14
|
-
constructor(options
|
|
14
|
+
constructor(options?: StreamInfoOptions);
|
|
15
15
|
destroy(): void;
|
|
16
16
|
get channelCount(): number;
|
|
17
|
-
get
|
|
17
|
+
get boundInfo(): BoundStreamInfo;
|
|
18
18
|
static resetTestDouble(): void;
|
|
19
19
|
}
|
|
@@ -2,11 +2,11 @@ import generateId from '@neurodevs/generate-id';
|
|
|
2
2
|
export default class FakeStreamInfo {
|
|
3
3
|
static callsToConstructor = [];
|
|
4
4
|
static numCallsToDestroy = 0;
|
|
5
|
-
static
|
|
5
|
+
static boundInfo = {};
|
|
6
6
|
name = generateId();
|
|
7
7
|
type = generateId();
|
|
8
8
|
sourceId = generateId();
|
|
9
|
-
channelNames = [generateId(), generateId()];
|
|
9
|
+
channelNames = [generateId(), generateId(), generateId()];
|
|
10
10
|
channelFormat = 'float32';
|
|
11
11
|
sampleRateHz = 0;
|
|
12
12
|
units = 'N/A';
|
|
@@ -19,8 +19,8 @@ export default class FakeStreamInfo {
|
|
|
19
19
|
get channelCount() {
|
|
20
20
|
return this.channelNames.length;
|
|
21
21
|
}
|
|
22
|
-
get
|
|
23
|
-
return FakeStreamInfo.
|
|
22
|
+
get boundInfo() {
|
|
23
|
+
return FakeStreamInfo.boundInfo;
|
|
24
24
|
}
|
|
25
25
|
static resetTestDouble() {
|
|
26
26
|
FakeStreamInfo.callsToConstructor = [];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FakeStreamInfo.js","sourceRoot":"","sources":["../../../src/testDoubles/StreamInfo/FakeStreamInfo.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,wBAAwB,CAAA;AAK/C,MAAM,CAAC,OAAO,OAAO,cAAc;IACxB,MAAM,CAAC,kBAAkB,
|
|
1
|
+
{"version":3,"file":"FakeStreamInfo.js","sourceRoot":"","sources":["../../../src/testDoubles/StreamInfo/FakeStreamInfo.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,wBAAwB,CAAA;AAK/C,MAAM,CAAC,OAAO,OAAO,cAAc;IACxB,MAAM,CAAC,kBAAkB,GAAsC,EAAE,CAAA;IACjE,MAAM,CAAC,iBAAiB,GAAG,CAAC,CAAA;IAE5B,MAAM,CAAC,SAAS,GAAG,EAAqB,CAAA;IAExC,IAAI,GAAG,UAAU,EAAE,CAAA;IACnB,IAAI,GAAG,UAAU,EAAE,CAAA;IACnB,QAAQ,GAAG,UAAU,EAAE,CAAA;IACvB,YAAY,GAAa,CAAC,UAAU,EAAE,EAAE,UAAU,EAAE,EAAE,UAAU,EAAE,CAAC,CAAA;IACnE,aAAa,GAAG,SAAkB,CAAA;IAClC,YAAY,GAAG,CAAC,CAAA;IAChB,KAAK,GAAG,KAAK,CAAA;IAEpB,YAAmB,OAA2B;QAC1C,cAAc,CAAC,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IACnD,CAAC;IAEM,OAAO;QACV,cAAc,CAAC,iBAAiB,EAAE,CAAA;IACtC,CAAC;IAED,IAAW,YAAY;QACnB,OAAO,IAAI,CAAC,YAAY,CAAC,MAAM,CAAA;IACnC,CAAC;IAED,IAAW,SAAS;QAChB,OAAO,cAAc,CAAC,SAAS,CAAA;IACnC,CAAC;IAEM,MAAM,CAAC,eAAe;QACzB,cAAc,CAAC,kBAAkB,GAAG,EAAE,CAAA;QACtC,cAAc,CAAC,iBAAiB,GAAG,CAAC,CAAA;IACxC,CAAC"}
|
|
@@ -2,7 +2,6 @@ import LslStreamInfo, { StreamInfoOptions } from '../../impl/LslStreamInfo.js';
|
|
|
2
2
|
export default class SpyStreamInfo extends LslStreamInfo {
|
|
3
3
|
static numCallsToConstructor: number;
|
|
4
4
|
constructor(options: StreamInfoOptions);
|
|
5
|
-
getBoundInfo(): import("../../index.js").BoundStreamInfo;
|
|
6
5
|
getName(): string;
|
|
7
6
|
getType(): string;
|
|
8
7
|
getSourceId(): string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SpyStreamInfo.js","sourceRoot":"","sources":["../../../src/testDoubles/StreamInfo/SpyStreamInfo.ts"],"names":[],"mappings":"AAAA,OAAO,aAAoC,MAAM,6BAA6B,CAAA;AAE9E,MAAM,CAAC,OAAO,OAAO,aAAc,SAAQ,aAAa;IAC7C,MAAM,CAAC,qBAAqB,GAAG,CAAC,CAAA;IAEvC,YAAmB,OAA0B;QACzC,KAAK,CAAC,OAAO,CAAC,CAAA;QACd,aAAa,CAAC,qBAAqB,EAAE,CAAA;IACzC,CAAC;IAEM,
|
|
1
|
+
{"version":3,"file":"SpyStreamInfo.js","sourceRoot":"","sources":["../../../src/testDoubles/StreamInfo/SpyStreamInfo.ts"],"names":[],"mappings":"AAAA,OAAO,aAAoC,MAAM,6BAA6B,CAAA;AAE9E,MAAM,CAAC,OAAO,OAAO,aAAc,SAAQ,aAAa;IAC7C,MAAM,CAAC,qBAAqB,GAAG,CAAC,CAAA;IAEvC,YAAmB,OAA0B;QACzC,KAAK,CAAC,OAAO,CAAC,CAAA;QACd,aAAa,CAAC,qBAAqB,EAAE,CAAA;IACzC,CAAC;IAEM,OAAO;QACV,OAAO,IAAI,CAAC,IAAI,CAAA;IACpB,CAAC;IAEM,OAAO;QACV,OAAO,IAAI,CAAC,IAAI,CAAA;IACpB,CAAC;IAEM,WAAW;QACd,OAAO,IAAI,CAAC,QAAQ,CAAA;IACxB,CAAC;IAEM,QAAQ;QACX,OAAO,IAAI,CAAC,KAAK,CAAA;IACrB,CAAC;IAEM,MAAM,CAAC,eAAe;QACzB,aAAa,CAAC,qBAAqB,GAAG,CAAC,CAAA;IAC3C,CAAC"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { StreamInfo } from '../../impl/LslStreamInfo.js';
|
|
2
|
-
import { StreamInlet,
|
|
2
|
+
import { StreamInlet, StreamInletConstructorOptions } from '../../impl/LslStreamInlet.js';
|
|
3
3
|
export default class FakeStreamInlet implements StreamInlet {
|
|
4
4
|
static callsToConstructor: {
|
|
5
5
|
info?: StreamInfo;
|
|
6
|
-
options?:
|
|
6
|
+
options?: StreamInletConstructorOptions;
|
|
7
7
|
onData?: (samples: Float32Array, timestamps: Float64Array) => void;
|
|
8
8
|
}[];
|
|
9
9
|
static numCallsToStartPulling: number;
|
|
@@ -12,7 +12,7 @@ export default class FakeStreamInlet implements StreamInlet {
|
|
|
12
12
|
static numCallsToDestroy: number;
|
|
13
13
|
isRunning: boolean;
|
|
14
14
|
protected onData: (samples: Float32Array, timestamps: Float64Array) => void;
|
|
15
|
-
constructor(info?: StreamInfo, options?:
|
|
15
|
+
constructor(info?: StreamInfo, options?: StreamInletConstructorOptions, onData?: (samples: Float32Array, timestamps: Float64Array) => void);
|
|
16
16
|
startPulling(): void;
|
|
17
17
|
stopPulling(): void;
|
|
18
18
|
flushQueue(): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FakeStreamInlet.js","sourceRoot":"","sources":["../../../src/testDoubles/StreamInlet/FakeStreamInlet.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"FakeStreamInlet.js","sourceRoot":"","sources":["../../../src/testDoubles/StreamInlet/FakeStreamInlet.ts"],"names":[],"mappings":"AAMA,MAAM,CAAC,OAAO,OAAO,eAAe;IACzB,MAAM,CAAC,kBAAkB,GAI1B,EAAE,CAAA;IAED,MAAM,CAAC,sBAAsB,GAAG,CAAC,CAAA;IACjC,MAAM,CAAC,qBAAqB,GAAG,CAAC,CAAA;IAChC,MAAM,CAAC,oBAAoB,GAAG,CAAC,CAAA;IAC/B,MAAM,CAAC,iBAAiB,GAAG,CAAC,CAAA;IAE5B,SAAS,GAAG,KAAK,CAAA;IAEd,MAAM,CAA4D;IAE5E,YACI,IAAiB,EACjB,OAAuC,EACvC,MAAkE;QAElE,IAAI,CAAC,MAAM,GAAG,MAAM,IAAI,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAA;QAElC,eAAe,CAAC,kBAAkB,CAAC,IAAI,CAAC;YACpC,IAAI;YACJ,OAAO;YACP,MAAM,EAAE,IAAI,CAAC,MAAM;SACtB,CAAC,CAAA;IACN,CAAC;IAEM,YAAY;QACf,eAAe,CAAC,sBAAsB,EAAE,CAAA;QACxC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAA;IACzB,CAAC;IAEM,WAAW;QACd,eAAe,CAAC,qBAAqB,EAAE,CAAA;QACvC,IAAI,CAAC,SAAS,GAAG,KAAK,CAAA;IAC1B,CAAC;IAEM,UAAU;QACb,eAAe,CAAC,oBAAoB,EAAE,CAAA;IAC1C,CAAC;IAEM,OAAO;QACV,eAAe,CAAC,iBAAiB,EAAE,CAAA;IACvC,CAAC;IAEM,MAAM,CAAC,eAAe;QACzB,eAAe,CAAC,kBAAkB,GAAG,EAAE,CAAA;QACvC,eAAe,CAAC,sBAAsB,GAAG,CAAC,CAAA;QAC1C,eAAe,CAAC,oBAAoB,GAAG,CAAC,CAAA;QACxC,eAAe,CAAC,iBAAiB,GAAG,CAAC,CAAA;IACzC,CAAC"}
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
import { StreamInfo } from '../../impl/LslStreamInfo.js';
|
|
2
|
-
import LslStreamInlet, { OnDataCallback,
|
|
2
|
+
import LslStreamInlet, { OnDataCallback, StreamInletConstructorOptions } from '../../impl/LslStreamInlet.js';
|
|
3
3
|
export declare class SpyStreamInlet extends LslStreamInlet {
|
|
4
|
-
constructor(info: StreamInfo, options:
|
|
5
|
-
getName(): string;
|
|
4
|
+
constructor(info: StreamInfo, options: StreamInletConstructorOptions, onData: OnDataCallback);
|
|
6
5
|
getStreamInfo(): StreamInfo;
|
|
7
6
|
getBoundInlet(): import("../../index.js").BoundInlet;
|
|
8
7
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SpyStreamInlet.js","sourceRoot":"","sources":["../../../src/testDoubles/StreamInlet/SpyStreamInlet.ts"],"names":[],"mappings":"AACA,OAAO,cAGN,MAAM,8BAA8B,CAAA;AAErC,MAAM,OAAO,cAAe,SAAQ,cAAc;IAC9C,YACI,IAAgB,EAChB,
|
|
1
|
+
{"version":3,"file":"SpyStreamInlet.js","sourceRoot":"","sources":["../../../src/testDoubles/StreamInlet/SpyStreamInlet.ts"],"names":[],"mappings":"AACA,OAAO,cAGN,MAAM,8BAA8B,CAAA;AAErC,MAAM,OAAO,cAAe,SAAQ,cAAc;IAC9C,YACI,IAAgB,EAChB,OAAsC,EACtC,MAAsB;QAEtB,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,CAAA;IAChC,CAAC;IAEM,aAAa;QAChB,OAAO,IAAI,CAAC,IAAI,CAAA;IACpB,CAAC;IAEM,aAAa;QAChB,OAAO,IAAI,CAAC,KAAK,CAAA;IACrB,CAAC;CACJ"}
|
|
@@ -8,6 +8,7 @@ export default class FakeStreamOutlet implements StreamOutlet {
|
|
|
8
8
|
}[];
|
|
9
9
|
static callsToPushSample: LslSample[];
|
|
10
10
|
static numCallsToDestroy: number;
|
|
11
|
+
info: StreamInfo;
|
|
11
12
|
options?: StreamOutletOptions;
|
|
12
13
|
constructor(info?: StreamInfo, options?: StreamOutletOptions);
|
|
13
14
|
destroy(): void;
|
|
@@ -1,12 +1,15 @@
|
|
|
1
1
|
import { randomInt } from 'crypto';
|
|
2
2
|
import generateId from '@neurodevs/generate-id';
|
|
3
|
+
import FakeStreamInfo from '../StreamInfo/FakeStreamInfo.js';
|
|
3
4
|
export default class FakeStreamOutlet {
|
|
4
5
|
static callsToConstructor = [];
|
|
5
6
|
static callsToPushSample = [];
|
|
6
7
|
static numCallsToDestroy = 0;
|
|
8
|
+
info;
|
|
7
9
|
options;
|
|
8
10
|
constructor(info, options) {
|
|
9
11
|
FakeStreamOutlet.callsToConstructor.push({ info, options });
|
|
12
|
+
this.info = info ?? new FakeStreamInfo();
|
|
10
13
|
this.options = options;
|
|
11
14
|
}
|
|
12
15
|
destroy() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FakeStreamOutlet.js","sourceRoot":"","sources":["../../../src/testDoubles/StreamOutlet/FakeStreamOutlet.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAA;AAClC,OAAO,UAAU,MAAM,wBAAwB,CAAA;
|
|
1
|
+
{"version":3,"file":"FakeStreamOutlet.js","sourceRoot":"","sources":["../../../src/testDoubles/StreamOutlet/FakeStreamOutlet.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAA;AAClC,OAAO,UAAU,MAAM,wBAAwB,CAAA;AAQ/C,OAAO,cAAc,MAAM,iCAAiC,CAAA;AAE5D,MAAM,CAAC,OAAO,OAAO,gBAAgB;IAC1B,MAAM,CAAC,kBAAkB,GAG1B,EAAE,CAAA;IAED,MAAM,CAAC,iBAAiB,GAAgB,EAAE,CAAA;IAC1C,MAAM,CAAC,iBAAiB,GAAG,CAAC,CAAA;IAE5B,IAAI,CAAY;IAChB,OAAO,CAAsB;IAEpC,YAAmB,IAAiB,EAAE,OAA6B;QAC/D,gBAAgB,CAAC,kBAAkB,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAA;QAE3D,IAAI,CAAC,IAAI,GAAG,IAAI,IAAI,IAAI,cAAc,EAAE,CAAA;QACxC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;IAC1B,CAAC;IAEM,OAAO;QACV,gBAAgB,CAAC,iBAAiB,EAAE,CAAA;IACxC,CAAC;IAEM,UAAU,CAAC,MAAiB;QAC/B,gBAAgB,CAAC,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IACnD,CAAC;IAED,IAAW,IAAI;QACX,OAAO,IAAI,CAAC,OAAO,EAAE,IAAI,IAAI,UAAU,EAAE,CAAA;IAC7C,CAAC;IAED,IAAW,IAAI;QACX,OAAO,IAAI,CAAC,OAAO,EAAE,IAAI,IAAI,UAAU,EAAE,CAAA;IAC7C,CAAC;IAED,IAAW,QAAQ;QACf,OAAO,IAAI,CAAC,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,CAAA;IACjD,CAAC;IAED,IAAW,YAAY;QACnB,OAAO,IAAI,CAAC,OAAO,EAAE,YAAY,IAAI,CAAC,UAAU,EAAE,CAAC,CAAA;IACvD,CAAC;IAED,IAAW,YAAY;QACnB,OAAO,IAAI,CAAC,YAAY,CAAC,MAAM,CAAA;IACnC,CAAC;IAED,IAAW,aAAa;QACpB,OAAO,IAAI,CAAC,OAAO,EAAE,aAAa,IAAI,SAAS,CAAA;IACnD,CAAC;IAED,IAAW,YAAY;QACnB,OAAO,IAAI,CAAC,OAAO,EAAE,YAAY,IAAI,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,CAAA;IAC3D,CAAC;IAED,IAAW,SAAS;QAChB,OAAO,IAAI,CAAC,OAAO,EAAE,SAAS,IAAI,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,CAAA;IACxD,CAAC;IAED,IAAW,aAAa;QACpB,OAAO,IAAI,CAAC,OAAO,EAAE,aAAa,IAAI,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,CAAA;IAC5D,CAAC;IAED,IAAW,YAAY;QACnB,OAAO,IAAI,CAAC,OAAO,EAAE,YAAY,IAAI,UAAU,EAAE,CAAA;IACrD,CAAC;IAED,IAAW,KAAK;QACZ,OAAO,IAAI,CAAC,OAAO,EAAE,KAAK,IAAI,UAAU,EAAE,CAAA;IAC9C,CAAC;IAEM,MAAM,CAAC,eAAe;QACzB,gBAAgB,CAAC,kBAAkB,GAAG,EAAE,CAAA;QACxC,gBAAgB,CAAC,iBAAiB,GAAG,EAAE,CAAA;QACvC,gBAAgB,CAAC,iBAAiB,GAAG,CAAC,CAAA;IAC1C,CAAC"}
|