@neurodevs/node-lsl 17.1.1 → 18.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/.claude/settings.local.json +10 -0
- package/.vscode/launch.json +54 -57
- package/.vscode/settings.json +61 -66
- package/.vscode/tasks.json +98 -129
- package/README.md +20 -44
- package/build/__tests__/AbstractPackageTest.d.ts +7 -5
- package/build/__tests__/AbstractPackageTest.js +22 -15
- package/build/__tests__/AbstractPackageTest.js.map +1 -1
- package/build/__tests__/impl/BleDeviceController.test.d.ts +54 -0
- package/build/__tests__/impl/BleDeviceController.test.js +333 -0
- package/build/__tests__/impl/BleDeviceController.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 +40 -50
- package/build/__tests__/impl/LslStreamOutlet.test.js.map +1 -1
- package/build/__tests__/impl/LslWebSocketBridge.test.js +19 -20
- 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/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 +10 -10
- package/build/impl/LslWebSocketBridge.js.map +1 -1
- package/build/impl/controllers/BleDeviceController.d.ts +58 -0
- package/build/impl/controllers/BleDeviceController.js +145 -0
- package/build/impl/controllers/BleDeviceController.js.map +1 -0
- 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 +14 -14
- package/build/index.js +16 -16
- package/build/index.js.map +1 -1
- package/build/scripts/discoverMuse.js +40 -0
- package/build/scripts/discoverMuse.js.map +1 -0
- 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.d.ts +1 -0
- package/build/scripts/runLslEventMarkerEmitter.js +11 -0
- package/build/scripts/runLslEventMarkerEmitter.js.map +1 -0
- package/build/scripts/runMuse.d.ts +1 -0
- package/build/scripts/runMuse.js +40 -0
- package/build/scripts/runMuse.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/BleController/FakeBleController.d.ts +24 -0
- package/build/testDoubles/BleController/FakeBleController.js +42 -0
- package/build/testDoubles/BleController/FakeBleController.js.map +1 -0
- package/build/testDoubles/BleController/SpyBleController.d.ts +14 -0
- package/build/testDoubles/BleController/SpyBleController.js +48 -0
- package/build/testDoubles/BleController/SpyBleController.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 +8 -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/testDoubles/generateRandomOutletOptions.js +1 -1
- package/build/testDoubles/generateRandomOutletOptions.js.map +1 -1
- package/build/validations.js +0 -2
- package/build/validations.js.map +1 -1
- package/eslint.config.js +3 -0
- package/package.json +27 -49
- package/prettier.config.js +3 -0
- package/src/__tests__/AbstractPackageTest.ts +38 -21
- package/src/__tests__/impl/BleDeviceController.test.ts +492 -0
- package/src/__tests__/impl/LslEventMarkerEmitter.test.ts +323 -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 +65 -73
- package/src/__tests__/impl/LslWebSocketBridge.test.ts +22 -21
- package/src/assertions.ts +2 -1
- 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 +14 -14
- package/src/impl/controllers/BleDeviceController.ts +223 -0
- 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 +16 -16
- package/src/scripts/discoverMuse.ts +50 -0
- package/src/scripts/finalizeHandles.ts +63 -0
- package/src/scripts/runLslEventMarkerEmitter.ts +15 -0
- package/src/scripts/runMuse.ts +50 -0
- package/src/scripts/runOutletToInlet.ts +10 -8
- package/src/scripts/testDestroyOutlet.ts +5 -0
- package/src/testDoubles/BleController/FakeBleController.ts +70 -0
- package/src/testDoubles/BleController/SpyBleController.ts +61 -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 +15 -15
- package/src/testDoubles/WebSocketBridge/FakeWebSocketBridge.ts +1 -1
- package/src/testDoubles/WorkerThreads/FakeWorker.ts +99 -0
- package/src/testDoubles/generateRandomOutletOptions.ts +2 -1
- package/src/validations.ts +0 -2
- package/tsconfig.json +23 -27
- package/build/.spruce/settings.json +0 -11
- 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/eslint.config.mjs +0 -3
- package/src/.spruce/settings.json +0 -11
- 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 → discoverMuse.d.ts} +0 -0
|
@@ -1,40 +1,34 @@
|
|
|
1
|
-
import { StreamInfo } from '../../impl/LslStreamInfo.js'
|
|
2
1
|
import {
|
|
2
|
+
OnDataCallback,
|
|
3
3
|
StreamInlet,
|
|
4
|
-
|
|
4
|
+
StreamInletOptions,
|
|
5
5
|
} from '../../impl/LslStreamInlet.js'
|
|
6
6
|
|
|
7
7
|
export default class FakeStreamInlet implements StreamInlet {
|
|
8
8
|
public static callsToConstructor: {
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
onData?: (samples: Float32Array, timestamps: Float64Array) => void
|
|
9
|
+
options?: StreamInletOptions
|
|
10
|
+
onData?: OnDataCallback
|
|
12
11
|
}[] = []
|
|
13
12
|
|
|
14
13
|
public static numCallsToStartPulling = 0
|
|
15
14
|
public static numCallsToStopPulling = 0
|
|
16
|
-
public static
|
|
15
|
+
public static numCallsToFlushInlet = 0
|
|
17
16
|
public static numCallsToDestroy = 0
|
|
18
17
|
|
|
19
18
|
public isRunning = false
|
|
20
19
|
|
|
21
|
-
protected onData!:
|
|
20
|
+
protected onData!: OnDataCallback
|
|
22
21
|
|
|
23
|
-
public constructor(
|
|
24
|
-
info?: StreamInfo,
|
|
25
|
-
options?: StreamInletConstructorOptions,
|
|
26
|
-
onData?: (samples: Float32Array, timestamps: Float64Array) => void
|
|
27
|
-
) {
|
|
22
|
+
public constructor(options?: StreamInletOptions, onData?: OnDataCallback) {
|
|
28
23
|
this.onData = onData ?? (() => {})
|
|
29
24
|
|
|
30
25
|
FakeStreamInlet.callsToConstructor.push({
|
|
31
|
-
info,
|
|
32
26
|
options,
|
|
33
27
|
onData: this.onData,
|
|
34
28
|
})
|
|
35
29
|
}
|
|
36
30
|
|
|
37
|
-
public startPulling() {
|
|
31
|
+
public async startPulling() {
|
|
38
32
|
FakeStreamInlet.numCallsToStartPulling++
|
|
39
33
|
this.isRunning = true
|
|
40
34
|
}
|
|
@@ -44,8 +38,8 @@ export default class FakeStreamInlet implements StreamInlet {
|
|
|
44
38
|
this.isRunning = false
|
|
45
39
|
}
|
|
46
40
|
|
|
47
|
-
public
|
|
48
|
-
FakeStreamInlet.
|
|
41
|
+
public flushInlet() {
|
|
42
|
+
FakeStreamInlet.numCallsToFlushInlet++
|
|
49
43
|
}
|
|
50
44
|
|
|
51
45
|
public destroy() {
|
|
@@ -55,7 +49,7 @@ export default class FakeStreamInlet implements StreamInlet {
|
|
|
55
49
|
public static resetTestDouble() {
|
|
56
50
|
FakeStreamInlet.callsToConstructor = []
|
|
57
51
|
FakeStreamInlet.numCallsToStartPulling = 0
|
|
58
|
-
FakeStreamInlet.
|
|
52
|
+
FakeStreamInlet.numCallsToFlushInlet = 0
|
|
59
53
|
FakeStreamInlet.numCallsToDestroy = 0
|
|
60
54
|
}
|
|
61
55
|
}
|
|
@@ -1,23 +1,10 @@
|
|
|
1
|
-
import { StreamInfo } from '../../impl/LslStreamInfo.js'
|
|
2
1
|
import LslStreamInlet, {
|
|
3
2
|
OnDataCallback,
|
|
4
|
-
|
|
3
|
+
StreamInletOptions,
|
|
5
4
|
} from '../../impl/LslStreamInlet.js'
|
|
6
5
|
|
|
7
6
|
export class SpyStreamInlet extends LslStreamInlet {
|
|
8
|
-
public constructor(
|
|
9
|
-
|
|
10
|
-
options: StreamInletConstructorOptions,
|
|
11
|
-
onData: OnDataCallback
|
|
12
|
-
) {
|
|
13
|
-
super(info, options, onData)
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
public getStreamInfo() {
|
|
17
|
-
return this.info
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
public getBoundInlet() {
|
|
21
|
-
return this.inlet
|
|
7
|
+
public constructor(options: StreamInletOptions, onData: OnDataCallback) {
|
|
8
|
+
super(options, onData)
|
|
22
9
|
}
|
|
23
10
|
}
|
|
@@ -1,30 +1,27 @@
|
|
|
1
|
-
import { randomInt } from 'crypto'
|
|
1
|
+
import { randomInt } from 'node:crypto'
|
|
2
|
+
|
|
2
3
|
import generateId from '@neurodevs/generate-id'
|
|
4
|
+
import { LslSample } from '@neurodevs/ndx-native'
|
|
3
5
|
|
|
4
|
-
import { LslSample } from 'impl/LiblslAdapter.js'
|
|
5
|
-
import { StreamInfo } from '../../impl/LslStreamInfo.js'
|
|
6
6
|
import {
|
|
7
7
|
StreamOutlet,
|
|
8
8
|
StreamOutletOptions,
|
|
9
9
|
} from '../../impl/LslStreamOutlet.js'
|
|
10
|
-
import FakeStreamInfo from '../StreamInfo/FakeStreamInfo.js'
|
|
11
10
|
|
|
12
11
|
export default class FakeStreamOutlet implements StreamOutlet {
|
|
13
|
-
public static callsToConstructor:
|
|
14
|
-
|
|
15
|
-
|
|
12
|
+
public static callsToConstructor: (StreamOutletOptions | undefined)[] = []
|
|
13
|
+
|
|
14
|
+
public static callsToPushSample: {
|
|
15
|
+
sample: LslSample
|
|
16
|
+
timestampSec?: number
|
|
16
17
|
}[] = []
|
|
17
18
|
|
|
18
|
-
public static callsToPushSample: LslSample[] = []
|
|
19
19
|
public static numCallsToDestroy = 0
|
|
20
20
|
|
|
21
|
-
public info: StreamInfo
|
|
22
21
|
public options?: StreamOutletOptions
|
|
23
22
|
|
|
24
|
-
public constructor(
|
|
25
|
-
FakeStreamOutlet.callsToConstructor.push(
|
|
26
|
-
|
|
27
|
-
this.info = info ?? new FakeStreamInfo()
|
|
23
|
+
public constructor(options?: StreamOutletOptions) {
|
|
24
|
+
FakeStreamOutlet.callsToConstructor.push(options)
|
|
28
25
|
this.options = options
|
|
29
26
|
}
|
|
30
27
|
|
|
@@ -32,8 +29,11 @@ export default class FakeStreamOutlet implements StreamOutlet {
|
|
|
32
29
|
FakeStreamOutlet.numCallsToDestroy++
|
|
33
30
|
}
|
|
34
31
|
|
|
35
|
-
public pushSample(sample: LslSample) {
|
|
36
|
-
FakeStreamOutlet.callsToPushSample.push(
|
|
32
|
+
public pushSample(sample: LslSample, timestampSec?: number) {
|
|
33
|
+
FakeStreamOutlet.callsToPushSample.push({
|
|
34
|
+
sample,
|
|
35
|
+
timestampSec,
|
|
36
|
+
})
|
|
37
37
|
}
|
|
38
38
|
|
|
39
39
|
public get name() {
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
import { WorkerOptions } from 'node:worker_threads'
|
|
2
|
+
|
|
3
|
+
import { OnDataCallback } from '../../impl/LslStreamInlet.js'
|
|
4
|
+
import StreamInletWorker from '../../impl/workers/inlet/StreamInletWorker.js'
|
|
5
|
+
import {
|
|
6
|
+
createOutlet,
|
|
7
|
+
destroyOutlet,
|
|
8
|
+
pushSample,
|
|
9
|
+
} from '../../impl/workers/outlet/LslStreamOutlet.worker.js'
|
|
10
|
+
|
|
11
|
+
export default class FakeWorker {
|
|
12
|
+
public static callsToConstructor: {
|
|
13
|
+
filename: string | URL
|
|
14
|
+
options?: WorkerOptions
|
|
15
|
+
}[] = []
|
|
16
|
+
|
|
17
|
+
public static callsToPostMessage: WorkerMessage[] = []
|
|
18
|
+
|
|
19
|
+
public static callsToOn: {
|
|
20
|
+
type: string
|
|
21
|
+
listener: (...args: unknown[]) => void
|
|
22
|
+
}[] = []
|
|
23
|
+
|
|
24
|
+
public static inletWorker = new StreamInletWorker()
|
|
25
|
+
public static fakeOnData: OnDataCallback
|
|
26
|
+
|
|
27
|
+
public createInletPromise?: Promise<void>
|
|
28
|
+
|
|
29
|
+
public constructor(filename: string | URL, options?: WorkerOptions) {
|
|
30
|
+
FakeWorker.callsToConstructor.push({ filename, options })
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
public postMessage(msg: WorkerMessage) {
|
|
34
|
+
FakeWorker.callsToPostMessage.push(msg)
|
|
35
|
+
|
|
36
|
+
const { type } = msg
|
|
37
|
+
|
|
38
|
+
switch (type) {
|
|
39
|
+
case 'createOutlet': {
|
|
40
|
+
createOutlet(msg as any)
|
|
41
|
+
break
|
|
42
|
+
}
|
|
43
|
+
case 'pushSample': {
|
|
44
|
+
pushSample(msg as any)
|
|
45
|
+
break
|
|
46
|
+
}
|
|
47
|
+
case 'destroyOutlet': {
|
|
48
|
+
destroyOutlet()
|
|
49
|
+
break
|
|
50
|
+
}
|
|
51
|
+
case 'createInlet': {
|
|
52
|
+
const { payload } = msg
|
|
53
|
+
this.createInletPromise = this.inletWorker.createInlet(
|
|
54
|
+
payload as any
|
|
55
|
+
)
|
|
56
|
+
break
|
|
57
|
+
}
|
|
58
|
+
case 'startPulling': {
|
|
59
|
+
this.inletWorker.startPulling(this.fakeOnData)
|
|
60
|
+
break
|
|
61
|
+
}
|
|
62
|
+
case 'flushInlet': {
|
|
63
|
+
this.inletWorker.flushInlet()
|
|
64
|
+
break
|
|
65
|
+
}
|
|
66
|
+
case 'stopPulling': {
|
|
67
|
+
this.inletWorker.stopPulling()
|
|
68
|
+
break
|
|
69
|
+
}
|
|
70
|
+
case 'destroyInlet': {
|
|
71
|
+
this.inletWorker.destroyInlet()
|
|
72
|
+
break
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
public on(type: string, listener: (...args: unknown[]) => void) {
|
|
78
|
+
FakeWorker.callsToOn.push({ type, listener })
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
private get inletWorker() {
|
|
82
|
+
return FakeWorker.inletWorker
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
private get fakeOnData() {
|
|
86
|
+
return FakeWorker.fakeOnData
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
public static resetTestDoubles() {
|
|
90
|
+
this.callsToConstructor = []
|
|
91
|
+
this.callsToPostMessage = []
|
|
92
|
+
this.callsToOn = []
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
export interface WorkerMessage {
|
|
97
|
+
type: string
|
|
98
|
+
payload?: Record<string, unknown>[]
|
|
99
|
+
}
|
package/src/validations.ts
CHANGED
|
@@ -7,11 +7,9 @@ export function isGreaterThanOrEqualToZero(value: number) {
|
|
|
7
7
|
}
|
|
8
8
|
|
|
9
9
|
export function isPositiveInteger(value: number) {
|
|
10
|
-
//@ts-ignore
|
|
11
10
|
return Number.isInteger(value) && value > 0
|
|
12
11
|
}
|
|
13
12
|
|
|
14
13
|
export function isPositiveIntegerOrZero(value: number) {
|
|
15
|
-
//@ts-ignore
|
|
16
14
|
return Number.isInteger(value) && value >= 0
|
|
17
15
|
}
|
package/tsconfig.json
CHANGED
|
@@ -1,28 +1,24 @@
|
|
|
1
1
|
{
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
"./src/*.ts",
|
|
26
|
-
"./src/**/*.ts"
|
|
27
|
-
]
|
|
28
|
-
}
|
|
2
|
+
"compilerOptions": {
|
|
3
|
+
"module": "nodenext",
|
|
4
|
+
"target": "esnext",
|
|
5
|
+
"lib": ["esnext"],
|
|
6
|
+
"types": ["node"],
|
|
7
|
+
"rootDir": "src",
|
|
8
|
+
"outDir": "build",
|
|
9
|
+
"sourceMap": false,
|
|
10
|
+
"strict": true,
|
|
11
|
+
"noImplicitAny": true,
|
|
12
|
+
"noImplicitReturns": true,
|
|
13
|
+
"noUnusedLocals": true,
|
|
14
|
+
"forceConsistentCasingInFileNames": true,
|
|
15
|
+
"declaration": true,
|
|
16
|
+
"skipLibCheck": true,
|
|
17
|
+
"esModuleInterop": true,
|
|
18
|
+
"moduleDetection": "force",
|
|
19
|
+
"allowJs": true,
|
|
20
|
+
"resolveJsonModule": true,
|
|
21
|
+
"experimentalDecorators": true
|
|
22
|
+
},
|
|
23
|
+
"include": ["./src/*.ts", "./src/**/*.ts"]
|
|
24
|
+
}
|
|
@@ -1,79 +0,0 @@
|
|
|
1
|
-
import { FieldType, FuncObj } from 'ffi-rs';
|
|
2
|
-
import AbstractPackageTest from '../AbstractPackageTest.js';
|
|
3
|
-
export default class LiblslAdapterTest extends AbstractPackageTest {
|
|
4
|
-
private static instance;
|
|
5
|
-
private static libraryPath?;
|
|
6
|
-
private static libraryOptions?;
|
|
7
|
-
private static fakeBindings;
|
|
8
|
-
private static fakeStreamInfo;
|
|
9
|
-
private static fakeOutlet;
|
|
10
|
-
private static fakeInlet;
|
|
11
|
-
private static fakeDesc;
|
|
12
|
-
private static fakeChildNamedChannels;
|
|
13
|
-
private static createStreamInfoParams?;
|
|
14
|
-
private static destroyStreamInfoParams?;
|
|
15
|
-
private static appendChildParams;
|
|
16
|
-
private static createOutletParams?;
|
|
17
|
-
private static destroyOutletParams?;
|
|
18
|
-
private static createInletParams?;
|
|
19
|
-
private static flushInletParams?;
|
|
20
|
-
private static destroyInletParams?;
|
|
21
|
-
private static localClockParams?;
|
|
22
|
-
private static pushSampleFloatTimestampParams?;
|
|
23
|
-
private static pushSampleStringTimestampParams?;
|
|
24
|
-
private static appendChildValueParams;
|
|
25
|
-
private static shouldThrowWhenCreatingBindings;
|
|
26
|
-
private static getDescriptionParams?;
|
|
27
|
-
private static fakeChildNamedChannel;
|
|
28
|
-
private static appendChildHitCount;
|
|
29
|
-
private static ffiRsOpenOptions?;
|
|
30
|
-
private static ffiRsDefineOptions;
|
|
31
|
-
private static ffiRsLoadOptions?;
|
|
32
|
-
protected static beforeEach(): Promise<void>;
|
|
33
|
-
protected static createsInstance(): Promise<void>;
|
|
34
|
-
protected static throwsWhenBindingsFailToLoad(): Promise<void>;
|
|
35
|
-
protected static callsOpenOnFfiRs(): Promise<void>;
|
|
36
|
-
protected static worksAsASingleton(): Promise<void>;
|
|
37
|
-
protected static singletonIsTheSame(): Promise<void>;
|
|
38
|
-
protected static canSetInstance(): void;
|
|
39
|
-
protected static createsExpectedBindingsWithFfiRs(): Promise<void>;
|
|
40
|
-
protected static createsStreamInfoWithRequiredParams(): Promise<void>;
|
|
41
|
-
protected static destroysStreamInfoWithBoundInfo(): Promise<void>;
|
|
42
|
-
protected static resolvesStreamInfoByProp(): Promise<void>;
|
|
43
|
-
protected static resolveByPropAcceptsOptionalArgs(): Promise<void>;
|
|
44
|
-
protected static returnsHandlesForResolvedStreamInfos(): Promise<void>;
|
|
45
|
-
protected static createsOutletWithRequiredParams(): Promise<void>;
|
|
46
|
-
protected static pushesFloatSample(): Promise<void>;
|
|
47
|
-
protected static pushesStringSample(): Promise<void>;
|
|
48
|
-
protected static addingSingleChannelGetsDescription(): Promise<void>;
|
|
49
|
-
protected static addingMultpleChannelsAddsChildrenToChannelsChild(): Promise<void>;
|
|
50
|
-
protected static canDestroyOutlet(): Promise<void>;
|
|
51
|
-
protected static callingLocalClockTwiceReturnsDifferentTimestamps(): Promise<void>;
|
|
52
|
-
protected static localClockBindingReceivesEmptyArray(): Promise<void>;
|
|
53
|
-
protected static defaultsToMacOsPath(): Promise<void>;
|
|
54
|
-
protected static createInletWithRequiredParams(): Promise<void>;
|
|
55
|
-
protected static pullSampleCallsBinding(): Promise<void>;
|
|
56
|
-
protected static pullChunkCallsBinding(): Promise<void>;
|
|
57
|
-
protected static flushInletCallsBinding(): Promise<void>;
|
|
58
|
-
protected static destroyInletCallsBinding(): Promise<void>;
|
|
59
|
-
private static createRandomStreamInfo;
|
|
60
|
-
private static resolveByProp;
|
|
61
|
-
private static createRandomOutlet;
|
|
62
|
-
private static createRandomOutletOptions;
|
|
63
|
-
private static createRandomInlet;
|
|
64
|
-
private static createRandomInletOptions;
|
|
65
|
-
private static generateRandomChannelValues;
|
|
66
|
-
private static generateRandomCreateStreamInfoOptions;
|
|
67
|
-
private static readonly maxResults;
|
|
68
|
-
private static readonly bytesPerPointer;
|
|
69
|
-
private static readonly minResults;
|
|
70
|
-
private static readonly timeoutMs;
|
|
71
|
-
private static readonly prop;
|
|
72
|
-
private static readonly value;
|
|
73
|
-
private static readonly fakeNumResolveResults;
|
|
74
|
-
private static readonly resultsBuffer;
|
|
75
|
-
private static readonly resultsBufferPtr;
|
|
76
|
-
private static generateFailedMessage;
|
|
77
|
-
private static FakeBindings;
|
|
78
|
-
}
|
|
79
|
-
export type FfiRsDefineOptions = FuncObj<FieldType, boolean | undefined>;
|