@neurodevs/node-lsl 17.1.1 → 18.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/.claude/settings.local.json +10 -0
- package/.regressionproof.json +7 -0
- package/.vscode/launch.json +3 -2
- package/README.md +9 -35
- package/build/.spruce/settings.json +5 -1
- package/build/__tests__/AbstractPackageTest.d.ts +4 -4
- package/build/__tests__/AbstractPackageTest.js +9 -11
- package/build/__tests__/AbstractPackageTest.js.map +1 -1
- package/build/__tests__/impl/LslBackpressureMonitor.test.d.ts +7 -0
- package/build/__tests__/impl/LslBackpressureMonitor.test.js +26 -0
- package/build/__tests__/impl/LslBackpressureMonitor.test.js.map +1 -0
- package/build/__tests__/impl/LslEventMarkerEmitter.test.d.ts +34 -0
- package/build/__tests__/impl/LslEventMarkerEmitter.test.js +243 -0
- package/build/__tests__/impl/LslEventMarkerEmitter.test.js.map +1 -0
- package/build/__tests__/impl/LslStreamInfo.test.d.ts +0 -3
- package/build/__tests__/impl/LslStreamInfo.test.js +2 -27
- package/build/__tests__/impl/LslStreamInfo.test.js.map +1 -1
- package/build/__tests__/impl/LslStreamInlet.test.d.ts +20 -8
- package/build/__tests__/impl/LslStreamInlet.test.js +224 -69
- package/build/__tests__/impl/LslStreamInlet.test.js.map +1 -1
- package/build/__tests__/impl/LslStreamOutlet.test.d.ts +3 -7
- package/build/__tests__/impl/LslStreamOutlet.test.js +36 -46
- package/build/__tests__/impl/LslStreamOutlet.test.js.map +1 -1
- package/build/__tests__/impl/LslWebSocketBridge.test.js +16 -17
- package/build/__tests__/impl/LslWebSocketBridge.test.js.map +1 -1
- package/build/assertions.d.ts +1 -1
- package/build/assertions.js.map +1 -1
- package/build/impl/LslBackpressureMonitor.d.ts +8 -0
- package/build/impl/LslBackpressureMonitor.js +8 -0
- package/build/impl/LslBackpressureMonitor.js.map +1 -0
- package/build/impl/LslEventMarkerEmitter.d.ts +35 -0
- package/build/impl/LslEventMarkerEmitter.js +86 -0
- package/build/impl/LslEventMarkerEmitter.js.map +1 -0
- package/build/impl/LslStreamInfo.d.ts +4 -8
- package/build/impl/LslStreamInfo.js +8 -21
- package/build/impl/LslStreamInfo.js.map +1 -1
- package/build/impl/LslStreamInlet.d.ts +31 -50
- package/build/impl/LslStreamInlet.js +79 -149
- package/build/impl/LslStreamInlet.js.map +1 -1
- package/build/impl/LslStreamOutlet.d.ts +15 -18
- package/build/impl/LslStreamOutlet.js +39 -47
- package/build/impl/LslStreamOutlet.js.map +1 -1
- package/build/impl/LslWebSocketBridge.d.ts +4 -5
- package/build/impl/LslWebSocketBridge.js +8 -8
- package/build/impl/LslWebSocketBridge.js.map +1 -1
- package/build/impl/workers/inlet/LslStreamInlet.worker.d.ts +22 -0
- package/build/impl/workers/inlet/LslStreamInlet.worker.js +42 -0
- package/build/impl/workers/inlet/LslStreamInlet.worker.js.map +1 -0
- package/build/impl/workers/inlet/StreamInletWorker.d.ts +73 -0
- package/build/impl/workers/inlet/StreamInletWorker.js +253 -0
- package/build/impl/workers/inlet/StreamInletWorker.js.map +1 -0
- package/build/impl/workers/outlet/LslStreamOutlet.worker.d.ts +32 -0
- package/build/impl/workers/outlet/LslStreamOutlet.worker.js +82 -0
- package/build/impl/workers/outlet/LslStreamOutlet.worker.js.map +1 -0
- package/build/index.d.ts +12 -14
- package/build/index.js +14 -16
- package/build/index.js.map +1 -1
- package/build/scripts/finalizeHandles.d.ts +2 -0
- package/build/scripts/finalizeHandles.js +48 -0
- package/build/scripts/finalizeHandles.js.map +1 -0
- package/build/scripts/runLslEventMarkerEmitter.js +11 -0
- package/build/scripts/runLslEventMarkerEmitter.js.map +1 -0
- package/build/scripts/runOutletToInlet.js +7 -6
- package/build/scripts/runOutletToInlet.js.map +1 -1
- package/build/scripts/testDestroyOutlet.d.ts +1 -0
- package/build/scripts/testDestroyOutlet.js +4 -0
- package/build/scripts/testDestroyOutlet.js.map +1 -0
- package/build/testDoubles/BackpressureMonitor/FakeBackpressureMonitor.d.ts +6 -0
- package/build/testDoubles/BackpressureMonitor/FakeBackpressureMonitor.js +10 -0
- package/build/testDoubles/BackpressureMonitor/FakeBackpressureMonitor.js.map +1 -0
- package/build/testDoubles/EventMarkerEmitter/FakeEventMarkerEmitter.d.ts +17 -0
- package/build/testDoubles/EventMarkerEmitter/FakeEventMarkerEmitter.js +30 -0
- package/build/testDoubles/EventMarkerEmitter/FakeEventMarkerEmitter.js.map +1 -0
- package/build/testDoubles/EventMarkerEmitter/SpyEventMarkerEmitter.d.ts +10 -0
- package/build/testDoubles/EventMarkerEmitter/SpyEventMarkerEmitter.js +23 -0
- package/build/testDoubles/EventMarkerEmitter/SpyEventMarkerEmitter.js.map +1 -0
- package/build/testDoubles/EventMarkerEmitter/ThrowingEventMarkerEmitter.d.ts +9 -0
- package/build/testDoubles/EventMarkerEmitter/ThrowingEventMarkerEmitter.js +19 -0
- package/build/testDoubles/EventMarkerEmitter/ThrowingEventMarkerEmitter.js.map +1 -0
- package/build/testDoubles/StreamInfo/FakeStreamInfo.d.ts +3 -3
- package/build/testDoubles/StreamInfo/FakeStreamInfo.js +3 -3
- package/build/testDoubles/StreamInfo/FakeStreamInfo.js.map +1 -1
- package/build/testDoubles/StreamInlet/FakeStreamInlet.d.ts +8 -10
- package/build/testDoubles/StreamInlet/FakeStreamInlet.js +6 -7
- package/build/testDoubles/StreamInlet/FakeStreamInlet.js.map +1 -1
- package/build/testDoubles/StreamInlet/SpyStreamInlet.d.ts +2 -5
- package/build/testDoubles/StreamInlet/SpyStreamInlet.js +2 -8
- package/build/testDoubles/StreamInlet/SpyStreamInlet.js.map +1 -1
- package/build/testDoubles/StreamOutlet/FakeStreamOutlet.d.ts +7 -9
- package/build/testDoubles/StreamOutlet/FakeStreamOutlet.js +5 -8
- package/build/testDoubles/StreamOutlet/FakeStreamOutlet.js.map +1 -1
- package/build/testDoubles/WebSocketBridge/FakeWebSocketBridge.d.ts +1 -1
- package/build/testDoubles/WebSocketBridge/FakeWebSocketBridge.js +1 -1
- package/build/testDoubles/WebSocketBridge/FakeWebSocketBridge.js.map +1 -1
- package/build/testDoubles/WorkerThreads/FakeWorker.d.ts +27 -0
- package/build/testDoubles/WorkerThreads/FakeWorker.js +67 -0
- package/build/testDoubles/WorkerThreads/FakeWorker.js.map +1 -0
- package/build/validations.js +0 -2
- package/build/validations.js.map +1 -1
- package/package.json +23 -7
- package/src/.spruce/settings.json +5 -1
- package/src/__tests__/AbstractPackageTest.ts +12 -14
- package/src/__tests__/impl/LslBackpressureMonitor.test.ts +25 -0
- package/src/__tests__/impl/LslEventMarkerEmitter.test.ts +322 -0
- package/src/__tests__/impl/LslStreamInfo.test.ts +3 -40
- package/src/__tests__/impl/LslStreamInlet.test.ts +344 -97
- package/src/__tests__/impl/LslStreamOutlet.test.ts +61 -69
- package/src/__tests__/impl/LslWebSocketBridge.test.ts +18 -18
- package/src/assertions.ts +2 -1
- package/src/impl/LslBackpressureMonitor.ts +13 -0
- package/src/impl/LslEventMarkerEmitter.ts +133 -0
- package/src/impl/LslStreamInfo.ts +17 -29
- package/src/impl/LslStreamInlet.ts +102 -215
- package/src/impl/LslStreamOutlet.ts +54 -78
- package/src/impl/LslWebSocketBridge.ts +12 -12
- package/src/impl/workers/inlet/LslStreamInlet.worker.ts +74 -0
- package/src/impl/workers/inlet/StreamInletWorker.ts +348 -0
- package/src/impl/workers/outlet/LslStreamOutlet.worker.ts +144 -0
- package/src/index.ts +14 -17
- package/src/scripts/finalizeHandles.ts +63 -0
- package/src/scripts/runLslEventMarkerEmitter.ts +15 -0
- package/src/scripts/runOutletToInlet.ts +10 -8
- package/src/scripts/testDestroyOutlet.ts +5 -0
- package/src/testDoubles/BackpressureMonitor/FakeBackpressureMonitor.ts +13 -0
- package/src/testDoubles/EventMarkerEmitter/FakeEventMarkerEmitter.ts +46 -0
- package/src/testDoubles/EventMarkerEmitter/SpyEventMarkerEmitter.ts +31 -0
- package/src/testDoubles/EventMarkerEmitter/ThrowingEventMarkerEmitter.ts +29 -0
- package/src/testDoubles/StreamInfo/FakeStreamInfo.ts +4 -4
- package/src/testDoubles/StreamInlet/FakeStreamInlet.ts +11 -17
- package/src/testDoubles/StreamInlet/SpyStreamInlet.ts +3 -16
- package/src/testDoubles/StreamOutlet/FakeStreamOutlet.ts +12 -15
- package/src/testDoubles/WebSocketBridge/FakeWebSocketBridge.ts +1 -1
- package/src/testDoubles/WorkerThreads/FakeWorker.ts +99 -0
- package/src/validations.ts +0 -2
- package/build/__tests__/impl/LiblslAdapter.test.d.ts +0 -79
- package/build/__tests__/impl/LiblslAdapter.test.js +0 -688
- package/build/__tests__/impl/LiblslAdapter.test.js.map +0 -1
- package/build/__tests__/impl/LslEventMarkerOutlet.test.d.ts +0 -21
- package/build/__tests__/impl/LslEventMarkerOutlet.test.js +0 -160
- package/build/__tests__/impl/LslEventMarkerOutlet.test.js.map +0 -1
- package/build/handleError.d.ts +0 -8
- package/build/handleError.js +0 -25
- package/build/handleError.js.map +0 -1
- package/build/impl/LiblslAdapter.d.ts +0 -154
- package/build/impl/LiblslAdapter.js +0 -317
- package/build/impl/LiblslAdapter.js.map +0 -1
- package/build/impl/LslEventMarkerOutlet.d.ts +0 -28
- package/build/impl/LslEventMarkerOutlet.js +0 -63
- package/build/impl/LslEventMarkerOutlet.js.map +0 -1
- package/build/scripts/runLslEventMarkerOutlet.js +0 -18
- package/build/scripts/runLslEventMarkerOutlet.js.map +0 -1
- package/build/testDoubles/EventMarkerOutlet/FakeEventMarkerOutlet.d.ts +0 -13
- package/build/testDoubles/EventMarkerOutlet/FakeEventMarkerOutlet.js +0 -26
- package/build/testDoubles/EventMarkerOutlet/FakeEventMarkerOutlet.js.map +0 -1
- package/build/testDoubles/EventMarkerOutlet/MockEventMarkerOutlet.d.ts +0 -17
- package/build/testDoubles/EventMarkerOutlet/MockEventMarkerOutlet.js +0 -46
- package/build/testDoubles/EventMarkerOutlet/MockEventMarkerOutlet.js.map +0 -1
- package/build/testDoubles/EventMarkerOutlet/SpyEventMarkerOutlet.d.ts +0 -9
- package/build/testDoubles/EventMarkerOutlet/SpyEventMarkerOutlet.js +0 -19
- package/build/testDoubles/EventMarkerOutlet/SpyEventMarkerOutlet.js.map +0 -1
- package/build/testDoubles/EventMarkerOutlet/ThrowingEventMarkerOutlet.d.ts +0 -9
- package/build/testDoubles/EventMarkerOutlet/ThrowingEventMarkerOutlet.js +0 -19
- package/build/testDoubles/EventMarkerOutlet/ThrowingEventMarkerOutlet.js.map +0 -1
- package/build/testDoubles/Liblsl/FakeLiblsl.d.ts +0 -50
- package/build/testDoubles/Liblsl/FakeLiblsl.js +0 -126
- package/build/testDoubles/Liblsl/FakeLiblsl.js.map +0 -1
- package/src/__tests__/impl/LiblslAdapter.test.ts +0 -817
- package/src/__tests__/impl/LslEventMarkerOutlet.test.ts +0 -195
- package/src/handleError.ts +0 -24
- package/src/impl/LiblslAdapter.ts +0 -543
- package/src/impl/LslEventMarkerOutlet.ts +0 -97
- package/src/scripts/runLslEventMarkerOutlet.ts +0 -23
- package/src/testDoubles/EventMarkerOutlet/FakeEventMarkerOutlet.ts +0 -36
- package/src/testDoubles/EventMarkerOutlet/MockEventMarkerOutlet.ts +0 -75
- package/src/testDoubles/EventMarkerOutlet/SpyEventMarkerOutlet.ts +0 -24
- package/src/testDoubles/EventMarkerOutlet/ThrowingEventMarkerOutlet.ts +0 -28
- package/src/testDoubles/Liblsl/FakeLiblsl.ts +0 -182
- /package/build/scripts/{runLslEventMarkerOutlet.d.ts → runLslEventMarkerEmitter.d.ts} +0 -0
package/build/index.d.ts
CHANGED
|
@@ -1,17 +1,15 @@
|
|
|
1
|
-
export { default as
|
|
2
|
-
export * from './impl/
|
|
3
|
-
export { default as
|
|
4
|
-
export * from './testDoubles/
|
|
5
|
-
export { default as
|
|
6
|
-
export * from './
|
|
7
|
-
export { default as
|
|
8
|
-
export * from './testDoubles/
|
|
9
|
-
export { default as
|
|
10
|
-
export * from './testDoubles/
|
|
11
|
-
export { default as
|
|
12
|
-
export * from './
|
|
13
|
-
export { default as FakeLiblsl } from './testDoubles/Liblsl/FakeLiblsl.js';
|
|
14
|
-
export * from './testDoubles/Liblsl/FakeLiblsl.js';
|
|
1
|
+
export { default as LslBackpressureMonitor } from './impl/LslBackpressureMonitor.js';
|
|
2
|
+
export * from './impl/LslBackpressureMonitor.js';
|
|
3
|
+
export { default as FakeBackpressureMonitor } from './testDoubles/BackpressureMonitor/FakeBackpressureMonitor.js';
|
|
4
|
+
export * from './testDoubles/BackpressureMonitor/FakeBackpressureMonitor.js';
|
|
5
|
+
export { default as LslEventMarkerEmitter } from './impl/LslEventMarkerEmitter.js';
|
|
6
|
+
export * from './impl/LslEventMarkerEmitter.js';
|
|
7
|
+
export { default as FakeEventMarkerEmitter } from './testDoubles/EventMarkerEmitter/FakeEventMarkerEmitter.js';
|
|
8
|
+
export * from './testDoubles/EventMarkerEmitter/FakeEventMarkerEmitter.js';
|
|
9
|
+
export { default as SpyEventMarkerEmitter } from './testDoubles/EventMarkerEmitter/SpyEventMarkerEmitter.js';
|
|
10
|
+
export * from './testDoubles/EventMarkerEmitter/SpyEventMarkerEmitter.js';
|
|
11
|
+
export { default as ThrowingEventMarkerEmitter } from './testDoubles/EventMarkerEmitter/ThrowingEventMarkerEmitter.js';
|
|
12
|
+
export * from './testDoubles/EventMarkerEmitter/ThrowingEventMarkerEmitter.js';
|
|
15
13
|
export { default as LslStreamInfo } from './impl/LslStreamInfo.js';
|
|
16
14
|
export * from './impl/LslStreamInfo.js';
|
|
17
15
|
export { default as SpyStreamInfo } from './testDoubles/StreamInfo/SpyStreamInfo.js';
|
package/build/index.js
CHANGED
|
@@ -1,19 +1,17 @@
|
|
|
1
|
-
//
|
|
2
|
-
export { default as
|
|
3
|
-
export * from './impl/
|
|
4
|
-
export { default as
|
|
5
|
-
export * from './testDoubles/
|
|
6
|
-
|
|
7
|
-
export
|
|
8
|
-
export
|
|
9
|
-
export
|
|
10
|
-
export
|
|
11
|
-
export
|
|
12
|
-
|
|
13
|
-
export { default as
|
|
14
|
-
export * from './
|
|
15
|
-
export { default as FakeLiblsl } from './testDoubles/Liblsl/FakeLiblsl.js';
|
|
16
|
-
export * from './testDoubles/Liblsl/FakeLiblsl.js';
|
|
1
|
+
// BackpressureMonitor
|
|
2
|
+
export { default as LslBackpressureMonitor } from './impl/LslBackpressureMonitor.js';
|
|
3
|
+
export * from './impl/LslBackpressureMonitor.js';
|
|
4
|
+
export { default as FakeBackpressureMonitor } from './testDoubles/BackpressureMonitor/FakeBackpressureMonitor.js';
|
|
5
|
+
export * from './testDoubles/BackpressureMonitor/FakeBackpressureMonitor.js';
|
|
6
|
+
// EventMarkerEmitter
|
|
7
|
+
export { default as LslEventMarkerEmitter } from './impl/LslEventMarkerEmitter.js';
|
|
8
|
+
export * from './impl/LslEventMarkerEmitter.js';
|
|
9
|
+
export { default as FakeEventMarkerEmitter } from './testDoubles/EventMarkerEmitter/FakeEventMarkerEmitter.js';
|
|
10
|
+
export * from './testDoubles/EventMarkerEmitter/FakeEventMarkerEmitter.js';
|
|
11
|
+
export { default as SpyEventMarkerEmitter } from './testDoubles/EventMarkerEmitter/SpyEventMarkerEmitter.js';
|
|
12
|
+
export * from './testDoubles/EventMarkerEmitter/SpyEventMarkerEmitter.js';
|
|
13
|
+
export { default as ThrowingEventMarkerEmitter } from './testDoubles/EventMarkerEmitter/ThrowingEventMarkerEmitter.js';
|
|
14
|
+
export * from './testDoubles/EventMarkerEmitter/ThrowingEventMarkerEmitter.js';
|
|
17
15
|
// StreamInfo
|
|
18
16
|
export { default as LslStreamInfo } from './impl/LslStreamInfo.js';
|
|
19
17
|
export * from './impl/LslStreamInfo.js';
|
package/build/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,sBAAsB;AAEtB,OAAO,EAAE,OAAO,IAAI,sBAAsB,EAAE,MAAM,kCAAkC,CAAA;AACpF,cAAc,kCAAkC,CAAA;AAEhD,OAAO,EAAE,OAAO,IAAI,uBAAuB,EAAE,MAAM,8DAA8D,CAAA;AACjH,cAAc,8DAA8D,CAAA;AAE5E,qBAAqB;AAErB,OAAO,EAAE,OAAO,IAAI,qBAAqB,EAAE,MAAM,iCAAiC,CAAA;AAClF,cAAc,iCAAiC,CAAA;AAE/C,OAAO,EAAE,OAAO,IAAI,sBAAsB,EAAE,MAAM,4DAA4D,CAAA;AAC9G,cAAc,4DAA4D,CAAA;AAE1E,OAAO,EAAE,OAAO,IAAI,qBAAqB,EAAE,MAAM,2DAA2D,CAAA;AAC5G,cAAc,2DAA2D,CAAA;AAEzE,OAAO,EAAE,OAAO,IAAI,0BAA0B,EAAE,MAAM,gEAAgE,CAAA;AACtH,cAAc,gEAAgE,CAAA;AAE9E,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"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
const destroyHandles = new Set();
|
|
2
|
+
let isFinalizing = false;
|
|
3
|
+
export function register(destroy) {
|
|
4
|
+
if (isFinalizing) {
|
|
5
|
+
destroy();
|
|
6
|
+
return;
|
|
7
|
+
}
|
|
8
|
+
destroyHandles.add(destroy);
|
|
9
|
+
const unregister = () => {
|
|
10
|
+
destroyHandles.delete(destroy);
|
|
11
|
+
};
|
|
12
|
+
return unregister;
|
|
13
|
+
}
|
|
14
|
+
function finalizeHandles() {
|
|
15
|
+
if (isFinalizing) {
|
|
16
|
+
return;
|
|
17
|
+
}
|
|
18
|
+
isFinalizing = true;
|
|
19
|
+
for (const destroy of destroyHandles) {
|
|
20
|
+
try {
|
|
21
|
+
destroy();
|
|
22
|
+
}
|
|
23
|
+
catch (err) {
|
|
24
|
+
console.error('Error during finalization:', err);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
destroyHandles.clear();
|
|
28
|
+
}
|
|
29
|
+
process.once('SIGINT', finalizeHandles);
|
|
30
|
+
process.once('SIGTERM', finalizeHandles);
|
|
31
|
+
process.once('uncaughtException', (err) => {
|
|
32
|
+
console.error('Uncaught exception:', err);
|
|
33
|
+
finalizeHandles();
|
|
34
|
+
process.exit(1);
|
|
35
|
+
});
|
|
36
|
+
process.once('unhandledRejection', (reason) => {
|
|
37
|
+
console.error('Unhandled rejection:', reason);
|
|
38
|
+
finalizeHandles();
|
|
39
|
+
process.exit(1);
|
|
40
|
+
});
|
|
41
|
+
process.once('beforeExit', () => {
|
|
42
|
+
if (destroyHandles.size > 0 && !isFinalizing) {
|
|
43
|
+
console.warn('Warning: process is exiting with active handles.\n' +
|
|
44
|
+
'Did you forget to call destroy()? Finalizing automatically.');
|
|
45
|
+
finalizeHandles();
|
|
46
|
+
}
|
|
47
|
+
});
|
|
48
|
+
//# sourceMappingURL=finalizeHandles.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"finalizeHandles.js","sourceRoot":"","sources":["../../src/scripts/finalizeHandles.ts"],"names":[],"mappings":"AAEA,MAAM,cAAc,GAAG,IAAI,GAAG,EAAiB,CAAA;AAE/C,IAAI,YAAY,GAAG,KAAK,CAAA;AAExB,MAAM,UAAU,QAAQ,CAAC,OAAsB;IAC3C,IAAI,YAAY,EAAE,CAAC;QACf,OAAO,EAAE,CAAA;QACT,OAAM;IACV,CAAC;IAED,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;IAE3B,MAAM,UAAU,GAAG,GAAG,EAAE;QACpB,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;IAClC,CAAC,CAAA;IAED,OAAO,UAAU,CAAA;AACrB,CAAC;AAED,SAAS,eAAe;IACpB,IAAI,YAAY,EAAE,CAAC;QACf,OAAM;IACV,CAAC;IACD,YAAY,GAAG,IAAI,CAAA;IAEnB,KAAK,MAAM,OAAO,IAAI,cAAc,EAAE,CAAC;QACnC,IAAI,CAAC;YACD,OAAO,EAAE,CAAA;QACb,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACX,OAAO,CAAC,KAAK,CAAC,4BAA4B,EAAE,GAAG,CAAC,CAAA;QACpD,CAAC;IACL,CAAC;IAED,cAAc,CAAC,KAAK,EAAE,CAAA;AAC1B,CAAC;AAED,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAA;AAEvC,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,eAAe,CAAC,CAAA;AAExC,OAAO,CAAC,IAAI,CAAC,mBAAmB,EAAE,CAAC,GAAG,EAAE,EAAE;IACtC,OAAO,CAAC,KAAK,CAAC,qBAAqB,EAAE,GAAG,CAAC,CAAA;IACzC,eAAe,EAAE,CAAA;IACjB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;AACnB,CAAC,CAAC,CAAA;AAEF,OAAO,CAAC,IAAI,CAAC,oBAAoB,EAAE,CAAC,MAAM,EAAE,EAAE;IAC1C,OAAO,CAAC,KAAK,CAAC,sBAAsB,EAAE,MAAM,CAAC,CAAA;IAC7C,eAAe,EAAE,CAAA;IACjB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;AACnB,CAAC,CAAC,CAAA;AAEF,OAAO,CAAC,IAAI,CAAC,YAAY,EAAE,GAAG,EAAE;IAC5B,IAAI,cAAc,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;QAC3C,OAAO,CAAC,IAAI,CACR,oDAAoD;YAChD,6DAA6D,CACpE,CAAA;QACD,eAAe,EAAE,CAAA;IACrB,CAAC;AACL,CAAC,CAAC,CAAA"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import LslEventMarkerEmitter from '../impl/LslEventMarkerEmitter.js';
|
|
2
|
+
const outlet = await LslEventMarkerEmitter.Create();
|
|
3
|
+
const markers = [
|
|
4
|
+
{ name: 'phase-1-begin', waitAfterMs: 100 },
|
|
5
|
+
{ name: 'phase-1-end', waitAfterMs: 100 },
|
|
6
|
+
{ name: 'never-reached-marker', waitAfterMs: 100 },
|
|
7
|
+
];
|
|
8
|
+
void outlet.emitMany(markers);
|
|
9
|
+
await new Promise((resolve) => setTimeout(resolve, 250));
|
|
10
|
+
outlet.interrupt();
|
|
11
|
+
//# sourceMappingURL=runLslEventMarkerEmitter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runLslEventMarkerEmitter.js","sourceRoot":"","sources":["../../src/scripts/runLslEventMarkerEmitter.ts"],"names":[],"mappings":"AAAA,OAAO,qBAAqB,MAAM,kCAAkC,CAAA;AAEpE,MAAM,MAAM,GAAG,MAAM,qBAAqB,CAAC,MAAM,EAAE,CAAA;AAEnD,MAAM,OAAO,GAAG;IACZ,EAAE,IAAI,EAAE,eAAe,EAAE,WAAW,EAAE,GAAG,EAAE;IAC3C,EAAE,IAAI,EAAE,aAAa,EAAE,WAAW,EAAE,GAAG,EAAE;IACzC,EAAE,IAAI,EAAE,sBAAsB,EAAE,WAAW,EAAE,GAAG,EAAE;CACrD,CAAA;AAED,KAAK,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAA;AAE7B,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAA;AAExD,MAAM,CAAC,SAAS,EAAE,CAAA"}
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import LslStreamInlet from '../impl/LslStreamInlet.js';
|
|
2
2
|
import LslStreamOutlet from '../impl/LslStreamOutlet.js';
|
|
3
|
+
const sourceId = 'TestOutletID';
|
|
3
4
|
console.log('Creating outlet...');
|
|
4
5
|
const outlet = await LslStreamOutlet.Create({
|
|
5
6
|
name: 'TestOutlet',
|
|
6
7
|
type: 'TEST',
|
|
7
|
-
sourceId
|
|
8
|
+
sourceId,
|
|
8
9
|
sampleRateHz: 100,
|
|
9
10
|
channelNames: ['Ch1', 'Ch2', 'Ch3'],
|
|
10
11
|
channelFormat: 'float32',
|
|
@@ -13,15 +14,14 @@ const outlet = await LslStreamOutlet.Create({
|
|
|
13
14
|
manufacturer: 'test',
|
|
14
15
|
});
|
|
15
16
|
console.log('Creating inlet...');
|
|
16
|
-
const
|
|
17
|
-
|
|
17
|
+
const inlet = await LslStreamInlet.Create({
|
|
18
|
+
sourceId,
|
|
18
19
|
chunkSize: 1,
|
|
19
|
-
}
|
|
20
|
-
const inlet = await LslStreamInlet.Create(inletOptions, (samples, timestamps) => {
|
|
20
|
+
}, (samples, timestamps) => {
|
|
21
21
|
console.log('Received samples:', samples, 'at timestamps:', timestamps);
|
|
22
22
|
});
|
|
23
23
|
console.log('Start pulling...');
|
|
24
|
-
inlet.startPulling();
|
|
24
|
+
await inlet.startPulling();
|
|
25
25
|
console.log('Waiting for 100 ms...');
|
|
26
26
|
await new Promise((resolve) => setTimeout(resolve, 100));
|
|
27
27
|
console.log('Pushing samples...');
|
|
@@ -37,4 +37,5 @@ for (let i = 0; i < 30; i++) {
|
|
|
37
37
|
outlet.pushSample(sample);
|
|
38
38
|
await new Promise((resolve) => setTimeout(resolve, 100));
|
|
39
39
|
}
|
|
40
|
+
process.exit(0);
|
|
40
41
|
//# sourceMappingURL=runOutletToInlet.js.map
|
|
@@ -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
|
|
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,MAAM,QAAQ,GAAG,cAAc,CAAA;AAE/B,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;IACR,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,KAAK,GAAG,MAAM,cAAc,CAAC,MAAM,CACrC;IACI,QAAQ;IACR,SAAS,EAAE,CAAC;CACf,EACD,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,MAAM,KAAK,CAAC,YAAY,EAAE,CAAA;AAE1B,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;AAED,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"testDestroyOutlet.js","sourceRoot":"","sources":["../../src/scripts/testDestroyOutlet.ts"],"names":[],"mappings":"AAAA,OAAO,qBAAqB,MAAM,kCAAkC,CAAA;AAEpE,MAAM,OAAO,GAAG,MAAM,qBAAqB,CAAC,MAAM,EAAE,CAAA;AAEpD,OAAO,CAAC,OAAO,EAAE,CAAA"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export default class FakeBackpressureMonitor {
|
|
2
|
+
static numCallsToConstructor = 0;
|
|
3
|
+
constructor() {
|
|
4
|
+
FakeBackpressureMonitor.numCallsToConstructor++;
|
|
5
|
+
}
|
|
6
|
+
static resetTestDouble() {
|
|
7
|
+
FakeBackpressureMonitor.numCallsToConstructor = 0;
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=FakeBackpressureMonitor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FakeBackpressureMonitor.js","sourceRoot":"","sources":["../../../src/testDoubles/BackpressureMonitor/FakeBackpressureMonitor.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,OAAO,OAAO,uBAAuB;IACjC,MAAM,CAAC,qBAAqB,GAAG,CAAC,CAAA;IAEvC;QACI,uBAAuB,CAAC,qBAAqB,EAAE,CAAA;IACnD,CAAC;IAEM,MAAM,CAAC,eAAe;QACzB,uBAAuB,CAAC,qBAAqB,GAAG,CAAC,CAAA;IACrD,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { EventMarkerEmitter, EventMarkerOptions, TimedEventMarker } from '../../impl/LslEventMarkerEmitter.js';
|
|
2
|
+
export default class FakeEventMarkerEmitter implements EventMarkerEmitter {
|
|
3
|
+
static numCallsToConstructor: number;
|
|
4
|
+
static callsToEmit: {
|
|
5
|
+
markerName: string;
|
|
6
|
+
options?: EventMarkerOptions;
|
|
7
|
+
}[];
|
|
8
|
+
static callsToEmitMany: TimedEventMarker[][];
|
|
9
|
+
static numCallsToInterrupt: number;
|
|
10
|
+
static numCallsToDestroy: number;
|
|
11
|
+
constructor();
|
|
12
|
+
emit(markerName: string, options?: EventMarkerOptions): Promise<void>;
|
|
13
|
+
emitMany(markers: TimedEventMarker[]): Promise<void>;
|
|
14
|
+
interrupt(): void;
|
|
15
|
+
destroy(): void;
|
|
16
|
+
static resetTestDouble(): void;
|
|
17
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
export default class FakeEventMarkerEmitter {
|
|
2
|
+
static numCallsToConstructor = 0;
|
|
3
|
+
static callsToEmit = [];
|
|
4
|
+
static callsToEmitMany = [];
|
|
5
|
+
static numCallsToInterrupt = 0;
|
|
6
|
+
static numCallsToDestroy = 0;
|
|
7
|
+
constructor() {
|
|
8
|
+
FakeEventMarkerEmitter.numCallsToConstructor++;
|
|
9
|
+
}
|
|
10
|
+
async emit(markerName, options) {
|
|
11
|
+
FakeEventMarkerEmitter.callsToEmit.push({ markerName, options });
|
|
12
|
+
}
|
|
13
|
+
async emitMany(markers) {
|
|
14
|
+
FakeEventMarkerEmitter.callsToEmitMany.push(markers);
|
|
15
|
+
}
|
|
16
|
+
interrupt() {
|
|
17
|
+
FakeEventMarkerEmitter.numCallsToInterrupt++;
|
|
18
|
+
}
|
|
19
|
+
destroy() {
|
|
20
|
+
FakeEventMarkerEmitter.numCallsToDestroy++;
|
|
21
|
+
}
|
|
22
|
+
static resetTestDouble() {
|
|
23
|
+
this.numCallsToConstructor = 0;
|
|
24
|
+
this.callsToEmit = [];
|
|
25
|
+
this.callsToEmitMany = [];
|
|
26
|
+
this.numCallsToInterrupt = 0;
|
|
27
|
+
this.numCallsToDestroy = 0;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=FakeEventMarkerEmitter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FakeEventMarkerEmitter.js","sourceRoot":"","sources":["../../../src/testDoubles/EventMarkerEmitter/FakeEventMarkerEmitter.ts"],"names":[],"mappings":"AAMA,MAAM,CAAC,OAAO,OAAO,sBAAsB;IAChC,MAAM,CAAC,qBAAqB,GAAG,CAAC,CAAA;IAEhC,MAAM,CAAC,WAAW,GAGnB,EAAE,CAAA;IAED,MAAM,CAAC,eAAe,GAAyB,EAAE,CAAA;IACjD,MAAM,CAAC,mBAAmB,GAAG,CAAC,CAAA;IAC9B,MAAM,CAAC,iBAAiB,GAAG,CAAC,CAAA;IAEnC;QACI,sBAAsB,CAAC,qBAAqB,EAAE,CAAA;IAClD,CAAC;IAEM,KAAK,CAAC,IAAI,CAAC,UAAkB,EAAE,OAA4B;QAC9D,sBAAsB,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC,CAAA;IACpE,CAAC;IAEM,KAAK,CAAC,QAAQ,CAAC,OAA2B;QAC7C,sBAAsB,CAAC,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IACxD,CAAC;IAEM,SAAS;QACZ,sBAAsB,CAAC,mBAAmB,EAAE,CAAA;IAChD,CAAC;IAEM,OAAO;QACV,sBAAsB,CAAC,iBAAiB,EAAE,CAAA;IAC9C,CAAC;IAEM,MAAM,CAAC,eAAe;QACzB,IAAI,CAAC,qBAAqB,GAAG,CAAC,CAAA;QAC9B,IAAI,CAAC,WAAW,GAAG,EAAE,CAAA;QACrB,IAAI,CAAC,eAAe,GAAG,EAAE,CAAA;QACzB,IAAI,CAAC,mBAAmB,GAAG,CAAC,CAAA;QAC5B,IAAI,CAAC,iBAAiB,GAAG,CAAC,CAAA;IAC9B,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import LslEventMarkerEmitter from '../../impl/LslEventMarkerEmitter.js';
|
|
2
|
+
import { StreamOutlet } from '../../impl/LslStreamOutlet.js';
|
|
3
|
+
export default class SpyEventMarkerEmitter extends LslEventMarkerEmitter {
|
|
4
|
+
static shouldCallWaitOnSuper: boolean;
|
|
5
|
+
totalwaitAfterMs: number;
|
|
6
|
+
constructor(outlet: StreamOutlet);
|
|
7
|
+
wait(waitAfterMs: number): Promise<unknown>;
|
|
8
|
+
getStreamOutlet(): StreamOutlet;
|
|
9
|
+
resetTestDouble(): void;
|
|
10
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import LslEventMarkerEmitter from '../../impl/LslEventMarkerEmitter.js';
|
|
2
|
+
export default class SpyEventMarkerEmitter extends LslEventMarkerEmitter {
|
|
3
|
+
static shouldCallWaitOnSuper = false;
|
|
4
|
+
totalwaitAfterMs;
|
|
5
|
+
constructor(outlet) {
|
|
6
|
+
super(outlet);
|
|
7
|
+
this.totalwaitAfterMs = 0;
|
|
8
|
+
}
|
|
9
|
+
async wait(waitAfterMs) {
|
|
10
|
+
this.totalwaitAfterMs += waitAfterMs;
|
|
11
|
+
if (SpyEventMarkerEmitter.shouldCallWaitOnSuper) {
|
|
12
|
+
return super.wait(waitAfterMs);
|
|
13
|
+
}
|
|
14
|
+
return Promise.resolve();
|
|
15
|
+
}
|
|
16
|
+
getStreamOutlet() {
|
|
17
|
+
return this.outlet;
|
|
18
|
+
}
|
|
19
|
+
resetTestDouble() {
|
|
20
|
+
this.totalwaitAfterMs = 0;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=SpyEventMarkerEmitter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SpyEventMarkerEmitter.js","sourceRoot":"","sources":["../../../src/testDoubles/EventMarkerEmitter/SpyEventMarkerEmitter.ts"],"names":[],"mappings":"AAAA,OAAO,qBAAqB,MAAM,qCAAqC,CAAA;AAGvE,MAAM,CAAC,OAAO,OAAO,qBAAsB,SAAQ,qBAAqB;IAC7D,MAAM,CAAC,qBAAqB,GAAG,KAAK,CAAA;IAEpC,gBAAgB,CAAQ;IAE/B,YAAmB,MAAoB;QACnC,KAAK,CAAC,MAAM,CAAC,CAAA;QAEb,IAAI,CAAC,gBAAgB,GAAG,CAAC,CAAA;IAC7B,CAAC;IAEM,KAAK,CAAC,IAAI,CAAC,WAAmB;QACjC,IAAI,CAAC,gBAAgB,IAAI,WAAW,CAAA;QAEpC,IAAI,qBAAqB,CAAC,qBAAqB,EAAE,CAAC;YAC9C,OAAO,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;QAClC,CAAC;QACD,OAAO,OAAO,CAAC,OAAO,EAAE,CAAA;IAC5B,CAAC;IAEM,eAAe;QAClB,OAAO,IAAI,CAAC,MAAM,CAAA;IACtB,CAAC;IAEM,eAAe;QAClB,IAAI,CAAC,gBAAgB,GAAG,CAAC,CAAA;IAC7B,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { EventMarkerEmitter, EventMarkerOptions, TimedEventMarker } from '../../impl/LslEventMarkerEmitter.js';
|
|
2
|
+
export default class ThrowingEventMarkerEmitter implements EventMarkerEmitter {
|
|
3
|
+
private errorMsg;
|
|
4
|
+
constructor();
|
|
5
|
+
emit(_markerName: string, _options?: EventMarkerOptions): Promise<void>;
|
|
6
|
+
emitMany(_markers: TimedEventMarker[]): Promise<void>;
|
|
7
|
+
interrupt(): void;
|
|
8
|
+
destroy(): void;
|
|
9
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
export default class ThrowingEventMarkerEmitter {
|
|
2
|
+
errorMsg = 'Intentional throwing: ';
|
|
3
|
+
constructor() {
|
|
4
|
+
throw new Error(this.errorMsg + 'constructor');
|
|
5
|
+
}
|
|
6
|
+
async emit(_markerName, _options) {
|
|
7
|
+
throw new Error(this.errorMsg + 'emit');
|
|
8
|
+
}
|
|
9
|
+
async emitMany(_markers) {
|
|
10
|
+
throw new Error(this.errorMsg + 'emitMany');
|
|
11
|
+
}
|
|
12
|
+
interrupt() {
|
|
13
|
+
throw new Error(this.errorMsg + 'interrupt');
|
|
14
|
+
}
|
|
15
|
+
destroy() {
|
|
16
|
+
throw new Error(this.errorMsg + 'destroy');
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=ThrowingEventMarkerEmitter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ThrowingEventMarkerEmitter.js","sourceRoot":"","sources":["../../../src/testDoubles/EventMarkerEmitter/ThrowingEventMarkerEmitter.ts"],"names":[],"mappings":"AAMA,MAAM,CAAC,OAAO,OAAO,0BAA0B;IACnC,QAAQ,GAAG,wBAAwB,CAAA;IAE3C;QACI,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC,QAAQ,GAAG,aAAa,CAAC,CAAA;IAClD,CAAC;IAEM,KAAK,CAAC,IAAI,CAAC,WAAmB,EAAE,QAA6B;QAChE,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,CAAA;IAC3C,CAAC;IAEM,KAAK,CAAC,QAAQ,CAAC,QAA4B;QAC9C,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAC,CAAA;IAC/C,CAAC;IAEM,SAAS;QACZ,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC,QAAQ,GAAG,WAAW,CAAC,CAAA;IAChD,CAAC;IAEM,OAAO;QACV,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC,CAAA;IAC9C,CAAC;CACJ"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { InfoHandle } from '@neurodevs/ndx-native';
|
|
2
2
|
import { StreamInfo, StreamInfoOptions } from '../../impl/LslStreamInfo.js';
|
|
3
3
|
export default class FakeStreamInfo implements StreamInfo {
|
|
4
4
|
static callsToConstructor: (StreamInfoOptions | undefined)[];
|
|
5
5
|
static numCallsToDestroy: number;
|
|
6
|
-
static
|
|
6
|
+
static infoHandle: InfoHandle;
|
|
7
7
|
name: string;
|
|
8
8
|
type: string;
|
|
9
9
|
sourceId: string;
|
|
@@ -14,6 +14,6 @@ export default class FakeStreamInfo implements StreamInfo {
|
|
|
14
14
|
constructor(options?: StreamInfoOptions);
|
|
15
15
|
destroy(): void;
|
|
16
16
|
get channelCount(): number;
|
|
17
|
-
get
|
|
17
|
+
get infoHandle(): InfoHandle;
|
|
18
18
|
static resetTestDouble(): void;
|
|
19
19
|
}
|
|
@@ -2,7 +2,7 @@ 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 infoHandle = {};
|
|
6
6
|
name = generateId();
|
|
7
7
|
type = generateId();
|
|
8
8
|
sourceId = generateId();
|
|
@@ -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 infoHandle() {
|
|
23
|
+
return FakeStreamInfo.infoHandle;
|
|
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,GAAsC,EAAE,CAAA;IACjE,MAAM,CAAC,iBAAiB,GAAG,CAAC,CAAA;IAE5B,MAAM,CAAC,
|
|
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,UAAU,GAAG,EAAgB,CAAA;IAEpC,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,UAAU;QACjB,OAAO,cAAc,CAAC,UAAU,CAAA;IACpC,CAAC;IAEM,MAAM,CAAC,eAAe;QACzB,cAAc,CAAC,kBAAkB,GAAG,EAAE,CAAA;QACtC,cAAc,CAAC,iBAAiB,GAAG,CAAC,CAAA;IACxC,CAAC"}
|
|
@@ -1,21 +1,19 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { StreamInlet, StreamInletConstructorOptions } from '../../impl/LslStreamInlet.js';
|
|
1
|
+
import { OnDataCallback, StreamInlet, StreamInletOptions } from '../../impl/LslStreamInlet.js';
|
|
3
2
|
export default class FakeStreamInlet implements StreamInlet {
|
|
4
3
|
static callsToConstructor: {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
onData?: (samples: Float32Array, timestamps: Float64Array) => void;
|
|
4
|
+
options?: StreamInletOptions;
|
|
5
|
+
onData?: OnDataCallback;
|
|
8
6
|
}[];
|
|
9
7
|
static numCallsToStartPulling: number;
|
|
10
8
|
static numCallsToStopPulling: number;
|
|
11
|
-
static
|
|
9
|
+
static numCallsToFlushInlet: number;
|
|
12
10
|
static numCallsToDestroy: number;
|
|
13
11
|
isRunning: boolean;
|
|
14
|
-
protected onData:
|
|
15
|
-
constructor(
|
|
16
|
-
startPulling(): void
|
|
12
|
+
protected onData: OnDataCallback;
|
|
13
|
+
constructor(options?: StreamInletOptions, onData?: OnDataCallback);
|
|
14
|
+
startPulling(): Promise<void>;
|
|
17
15
|
stopPulling(): void;
|
|
18
|
-
|
|
16
|
+
flushInlet(): void;
|
|
19
17
|
destroy(): void;
|
|
20
18
|
static resetTestDouble(): void;
|
|
21
19
|
}
|
|
@@ -2,19 +2,18 @@ export default class FakeStreamInlet {
|
|
|
2
2
|
static callsToConstructor = [];
|
|
3
3
|
static numCallsToStartPulling = 0;
|
|
4
4
|
static numCallsToStopPulling = 0;
|
|
5
|
-
static
|
|
5
|
+
static numCallsToFlushInlet = 0;
|
|
6
6
|
static numCallsToDestroy = 0;
|
|
7
7
|
isRunning = false;
|
|
8
8
|
onData;
|
|
9
|
-
constructor(
|
|
9
|
+
constructor(options, onData) {
|
|
10
10
|
this.onData = onData ?? (() => { });
|
|
11
11
|
FakeStreamInlet.callsToConstructor.push({
|
|
12
|
-
info,
|
|
13
12
|
options,
|
|
14
13
|
onData: this.onData,
|
|
15
14
|
});
|
|
16
15
|
}
|
|
17
|
-
startPulling() {
|
|
16
|
+
async startPulling() {
|
|
18
17
|
FakeStreamInlet.numCallsToStartPulling++;
|
|
19
18
|
this.isRunning = true;
|
|
20
19
|
}
|
|
@@ -22,8 +21,8 @@ export default class FakeStreamInlet {
|
|
|
22
21
|
FakeStreamInlet.numCallsToStopPulling++;
|
|
23
22
|
this.isRunning = false;
|
|
24
23
|
}
|
|
25
|
-
|
|
26
|
-
FakeStreamInlet.
|
|
24
|
+
flushInlet() {
|
|
25
|
+
FakeStreamInlet.numCallsToFlushInlet++;
|
|
27
26
|
}
|
|
28
27
|
destroy() {
|
|
29
28
|
FakeStreamInlet.numCallsToDestroy++;
|
|
@@ -31,7 +30,7 @@ export default class FakeStreamInlet {
|
|
|
31
30
|
static resetTestDouble() {
|
|
32
31
|
FakeStreamInlet.callsToConstructor = [];
|
|
33
32
|
FakeStreamInlet.numCallsToStartPulling = 0;
|
|
34
|
-
FakeStreamInlet.
|
|
33
|
+
FakeStreamInlet.numCallsToFlushInlet = 0;
|
|
35
34
|
FakeStreamInlet.numCallsToDestroy = 0;
|
|
36
35
|
}
|
|
37
36
|
}
|
|
@@ -1 +1 @@
|
|
|
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,
|
|
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,GAG1B,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,CAAiB;IAEjC,YAAmB,OAA4B,EAAE,MAAuB;QACpE,IAAI,CAAC,MAAM,GAAG,MAAM,IAAI,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAA;QAElC,eAAe,CAAC,kBAAkB,CAAC,IAAI,CAAC;YACpC,OAAO;YACP,MAAM,EAAE,IAAI,CAAC,MAAM;SACtB,CAAC,CAAA;IACN,CAAC;IAEM,KAAK,CAAC,YAAY;QACrB,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,7 +1,4 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import LslStreamInlet, { OnDataCallback, StreamInletConstructorOptions } from '../../impl/LslStreamInlet.js';
|
|
1
|
+
import LslStreamInlet, { OnDataCallback, StreamInletOptions } from '../../impl/LslStreamInlet.js';
|
|
3
2
|
export declare class SpyStreamInlet extends LslStreamInlet {
|
|
4
|
-
constructor(
|
|
5
|
-
getStreamInfo(): StreamInfo;
|
|
6
|
-
getBoundInlet(): import("../../index.js").BoundInlet;
|
|
3
|
+
constructor(options: StreamInletOptions, onData: OnDataCallback);
|
|
7
4
|
}
|
|
@@ -1,13 +1,7 @@
|
|
|
1
1
|
import LslStreamInlet from '../../impl/LslStreamInlet.js';
|
|
2
2
|
export class SpyStreamInlet extends LslStreamInlet {
|
|
3
|
-
constructor(
|
|
4
|
-
super(
|
|
5
|
-
}
|
|
6
|
-
getStreamInfo() {
|
|
7
|
-
return this.info;
|
|
8
|
-
}
|
|
9
|
-
getBoundInlet() {
|
|
10
|
-
return this.inlet;
|
|
3
|
+
constructor(options, onData) {
|
|
4
|
+
super(options, onData);
|
|
11
5
|
}
|
|
12
6
|
}
|
|
13
7
|
//# sourceMappingURL=SpyStreamInlet.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SpyStreamInlet.js","sourceRoot":"","sources":["../../../src/testDoubles/StreamInlet/SpyStreamInlet.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"SpyStreamInlet.js","sourceRoot":"","sources":["../../../src/testDoubles/StreamInlet/SpyStreamInlet.ts"],"names":[],"mappings":"AAAA,OAAO,cAGN,MAAM,8BAA8B,CAAA;AAErC,MAAM,OAAO,cAAe,SAAQ,cAAc;IAC9C,YAAmB,OAA2B,EAAE,MAAsB;QAClE,KAAK,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;IAC1B,CAAC;CACJ"}
|
|
@@ -1,18 +1,16 @@
|
|
|
1
|
-
import { LslSample } from '
|
|
2
|
-
import { StreamInfo } from '../../impl/LslStreamInfo.js';
|
|
1
|
+
import { LslSample } from '@neurodevs/ndx-native';
|
|
3
2
|
import { StreamOutlet, StreamOutletOptions } from '../../impl/LslStreamOutlet.js';
|
|
4
3
|
export default class FakeStreamOutlet implements StreamOutlet {
|
|
5
|
-
static callsToConstructor:
|
|
6
|
-
|
|
7
|
-
|
|
4
|
+
static callsToConstructor: (StreamOutletOptions | undefined)[];
|
|
5
|
+
static callsToPushSample: {
|
|
6
|
+
sample: LslSample;
|
|
7
|
+
timestamp?: number;
|
|
8
8
|
}[];
|
|
9
|
-
static callsToPushSample: LslSample[];
|
|
10
9
|
static numCallsToDestroy: number;
|
|
11
|
-
info: StreamInfo;
|
|
12
10
|
options?: StreamOutletOptions;
|
|
13
|
-
constructor(
|
|
11
|
+
constructor(options?: StreamOutletOptions);
|
|
14
12
|
destroy(): void;
|
|
15
|
-
pushSample(sample: LslSample): void;
|
|
13
|
+
pushSample(sample: LslSample, timestamp?: number): void;
|
|
16
14
|
get name(): string;
|
|
17
15
|
get type(): string;
|
|
18
16
|
get sourceId(): string;
|
|
@@ -1,22 +1,19 @@
|
|
|
1
|
-
import { randomInt } from 'crypto';
|
|
1
|
+
import { randomInt } from 'node:crypto';
|
|
2
2
|
import generateId from '@neurodevs/generate-id';
|
|
3
|
-
import FakeStreamInfo from '../StreamInfo/FakeStreamInfo.js';
|
|
4
3
|
export default class FakeStreamOutlet {
|
|
5
4
|
static callsToConstructor = [];
|
|
6
5
|
static callsToPushSample = [];
|
|
7
6
|
static numCallsToDestroy = 0;
|
|
8
|
-
info;
|
|
9
7
|
options;
|
|
10
|
-
constructor(
|
|
11
|
-
FakeStreamOutlet.callsToConstructor.push(
|
|
12
|
-
this.info = info ?? new FakeStreamInfo();
|
|
8
|
+
constructor(options) {
|
|
9
|
+
FakeStreamOutlet.callsToConstructor.push(options);
|
|
13
10
|
this.options = options;
|
|
14
11
|
}
|
|
15
12
|
destroy() {
|
|
16
13
|
FakeStreamOutlet.numCallsToDestroy++;
|
|
17
14
|
}
|
|
18
|
-
pushSample(sample) {
|
|
19
|
-
FakeStreamOutlet.callsToPushSample.push(sample);
|
|
15
|
+
pushSample(sample, timestamp) {
|
|
16
|
+
FakeStreamOutlet.callsToPushSample.push({ sample, timestamp });
|
|
20
17
|
}
|
|
21
18
|
get name() {
|
|
22
19
|
return this.options?.name ?? generateId();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FakeStreamOutlet.js","sourceRoot":"","sources":["../../../src/testDoubles/StreamOutlet/FakeStreamOutlet.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"FakeStreamOutlet.js","sourceRoot":"","sources":["../../../src/testDoubles/StreamOutlet/FakeStreamOutlet.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAEvC,OAAO,UAAU,MAAM,wBAAwB,CAAA;AAQ/C,MAAM,CAAC,OAAO,OAAO,gBAAgB;IAC1B,MAAM,CAAC,kBAAkB,GAAwC,EAAE,CAAA;IAEnE,MAAM,CAAC,iBAAiB,GAGzB,EAAE,CAAA;IAED,MAAM,CAAC,iBAAiB,GAAG,CAAC,CAAA;IAE5B,OAAO,CAAsB;IAEpC,YAAmB,OAA6B;QAC5C,gBAAgB,CAAC,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QACjD,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;IAC1B,CAAC;IAEM,OAAO;QACV,gBAAgB,CAAC,iBAAiB,EAAE,CAAA;IACxC,CAAC;IAEM,UAAU,CAAC,MAAiB,EAAE,SAAkB;QACnD,gBAAgB,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAA;IAClE,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"}
|
|
@@ -5,7 +5,7 @@ export default class FakeWebSocketBridge implements WebSocketBridge {
|
|
|
5
5
|
static numCallsToDeactivate: number;
|
|
6
6
|
static numCallsToDestroy: number;
|
|
7
7
|
constructor(options?: WebSocketBridgeConstructorOptions);
|
|
8
|
-
activate(): void
|
|
8
|
+
activate(): Promise<void>;
|
|
9
9
|
deactivate(): void;
|
|
10
10
|
destroy(): void;
|
|
11
11
|
static resetTestDouble(): void;
|