@neurodevs/node-lsl 19.0.0 → 20.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.
Files changed (168) hide show
  1. package/build/__tests__/AbstractPackageTest.d.ts +11 -11
  2. package/build/__tests__/AbstractPackageTest.js +26 -30
  3. package/build/__tests__/AbstractPackageTest.js.map +1 -1
  4. package/build/__tests__/impl/BleDeviceController.test.d.ts +1 -1
  5. package/build/__tests__/impl/BleDeviceController.test.js +8 -10
  6. package/build/__tests__/impl/BleDeviceController.test.js.map +1 -1
  7. package/build/__tests__/impl/LslEventMarkerEmitter.test.js +13 -13
  8. package/build/__tests__/impl/LslEventMarkerEmitter.test.js.map +1 -1
  9. package/build/__tests__/impl/LslStreamInfo.test.js +2 -2
  10. package/build/__tests__/impl/LslStreamInfo.test.js.map +1 -1
  11. package/build/__tests__/impl/LslStreamInlet.test.d.ts +3 -5
  12. package/build/__tests__/impl/LslStreamInlet.test.js +13 -46
  13. package/build/__tests__/impl/LslStreamInlet.test.js.map +1 -1
  14. package/build/__tests__/impl/LslStreamOutlet.test.js +7 -12
  15. package/build/__tests__/impl/LslStreamOutlet.test.js.map +1 -1
  16. package/build/__tests__/impl/LslWebSocketBridge.test.js +9 -10
  17. package/build/__tests__/impl/LslWebSocketBridge.test.js.map +1 -1
  18. package/build/__tests__/impl/WindowedClockRegressor.test.js +1 -1
  19. package/build/__tests__/impl/WindowedClockRegressor.test.js.map +1 -1
  20. package/build/assertions.js +1 -1
  21. package/build/assertions.js.map +1 -1
  22. package/build/impl/LslEventMarkerEmitter.d.ts +12 -12
  23. package/build/impl/LslEventMarkerEmitter.js.map +1 -1
  24. package/build/impl/LslStreamInfo.d.ts +7 -7
  25. package/build/impl/LslStreamInfo.js.map +1 -1
  26. package/build/impl/LslStreamInlet.d.ts +63 -21
  27. package/build/impl/LslStreamInlet.js +221 -65
  28. package/build/impl/LslStreamInlet.js.map +1 -1
  29. package/build/impl/LslStreamOutlet.d.ts +15 -14
  30. package/build/impl/LslStreamOutlet.js +32 -36
  31. package/build/impl/LslStreamOutlet.js.map +1 -1
  32. package/build/impl/LslWebSocketBridge.d.ts +10 -10
  33. package/build/impl/LslWebSocketBridge.js.map +1 -1
  34. package/build/impl/clocks/WindowedClockRegressor.js.map +1 -0
  35. package/build/impl/controllers/BleDeviceController.d.ts +1 -1
  36. package/build/impl/controllers/BleDeviceController.js +1 -1
  37. package/build/impl/controllers/BleDeviceController.js.map +1 -1
  38. package/build/index.d.ts +27 -23
  39. package/build/index.js +32 -29
  40. package/build/index.js.map +1 -1
  41. package/build/scripts/{runLslEventMarkerEmitter.js → runLslEmitter.js} +5 -4
  42. package/build/scripts/runLslEmitter.js.map +1 -0
  43. package/build/scripts/{runLslStreamOutlet.js → runLslOutlet.js} +1 -1
  44. package/build/scripts/runLslOutlet.js.map +1 -0
  45. package/build/scripts/runMuse.js +1 -1
  46. package/build/scripts/runMuse.js.map +1 -1
  47. package/build/testDoubles/ClockRegressor/FakeClockRegressor.d.ts +1 -1
  48. package/build/testDoubles/{EventMarkerEmitter/FakeEventMarkerEmitter.d.ts → LslEmitter/FakeLslEmitter.d.ts} +4 -4
  49. package/build/testDoubles/{EventMarkerEmitter/FakeEventMarkerEmitter.js → LslEmitter/FakeLslEmitter.js} +7 -7
  50. package/build/testDoubles/LslEmitter/FakeLslEmitter.js.map +1 -0
  51. package/build/testDoubles/{EventMarkerEmitter/SpyEventMarkerEmitter.d.ts → LslEmitter/SpyLslEmitter.d.ts} +4 -4
  52. package/build/testDoubles/{EventMarkerEmitter/SpyEventMarkerEmitter.js → LslEmitter/SpyLslEmitter.js} +3 -3
  53. package/build/testDoubles/LslEmitter/SpyLslEmitter.js.map +1 -0
  54. package/build/testDoubles/LslEmitter/ThrowingLslEmitter.d.ts +9 -0
  55. package/build/testDoubles/{EventMarkerEmitter/ThrowingEventMarkerEmitter.js → LslEmitter/ThrowingLslEmitter.js} +2 -2
  56. package/build/testDoubles/LslEmitter/ThrowingLslEmitter.js.map +1 -0
  57. package/build/testDoubles/{StreamInfo/FakeStreamInfo.d.ts → LslInfo/FakeLslInfo.d.ts} +4 -4
  58. package/build/testDoubles/{StreamInfo/FakeStreamInfo.js → LslInfo/FakeLslInfo.js} +7 -7
  59. package/build/testDoubles/LslInfo/FakeLslInfo.js.map +1 -0
  60. package/build/testDoubles/LslInfo/SpyLslInfo.d.ts +10 -0
  61. package/build/testDoubles/{StreamInfo/SpyStreamInfo.js → LslInfo/SpyLslInfo.js} +4 -4
  62. package/build/testDoubles/LslInfo/SpyLslInfo.js.map +1 -0
  63. package/build/testDoubles/{StreamInlet/FakeStreamInlet.d.ts → LslInlet/FakeLslInlet.d.ts} +4 -4
  64. package/build/testDoubles/{StreamInlet/FakeStreamInlet.js → LslInlet/FakeLslInlet.js} +12 -11
  65. package/build/testDoubles/LslInlet/FakeLslInlet.js.map +1 -0
  66. package/build/testDoubles/LslInlet/SpyLslInlet.d.ts +4 -0
  67. package/build/testDoubles/{StreamInlet/SpyStreamInlet.js → LslInlet/SpyLslInlet.js} +2 -2
  68. package/build/testDoubles/LslInlet/SpyLslInlet.js.map +1 -0
  69. package/build/testDoubles/{StreamOutlet/FakeStreamOutlet.d.ts → LslOutlet/FakeLslOutlet.d.ts} +5 -5
  70. package/build/testDoubles/{StreamOutlet/FakeStreamOutlet.js → LslOutlet/FakeLslOutlet.js} +8 -8
  71. package/build/testDoubles/LslOutlet/FakeLslOutlet.js.map +1 -0
  72. package/build/testDoubles/LslWsBridge/FakeLslWsBridge.d.ts +14 -0
  73. package/build/testDoubles/{WebSocketBridge/FakeWebSocketBridge.js → LslWsBridge/FakeLslWsBridge.js} +14 -14
  74. package/build/testDoubles/LslWsBridge/FakeLslWsBridge.js.map +1 -0
  75. package/build/testDoubles/LslWsBridge/SpyLslWsBridge.d.ts +4 -0
  76. package/build/testDoubles/{WebSocketBridge/SpyLslWebSocketBridge.js → LslWsBridge/SpyLslWsBridge.js} +2 -2
  77. package/build/testDoubles/LslWsBridge/SpyLslWsBridge.js.map +1 -0
  78. package/build/testDoubles/consts.d.ts +2 -12
  79. package/build/testDoubles/consts.js +0 -20
  80. package/build/testDoubles/consts.js.map +1 -1
  81. package/build/testDoubles/generateRandomOutletOptions.d.ts +2 -2
  82. package/build/testDoubles/generateRandomOutletOptions.js.map +1 -1
  83. package/package.json +4 -3
  84. package/src/__tests__/AbstractPackageTest.ts +29 -38
  85. package/src/__tests__/impl/BleDeviceController.test.ts +8 -10
  86. package/src/__tests__/impl/LslEventMarkerEmitter.test.ts +19 -24
  87. package/src/__tests__/impl/LslStreamInfo.test.ts +8 -8
  88. package/src/__tests__/impl/LslStreamInlet.test.ts +21 -78
  89. package/src/__tests__/impl/LslStreamOutlet.test.ts +17 -24
  90. package/src/__tests__/impl/LslWebSocketBridge.test.ts +15 -18
  91. package/src/__tests__/impl/WindowedClockRegressor.test.ts +1 -1
  92. package/src/assertions.ts +1 -2
  93. package/src/impl/LslEventMarkerEmitter.ts +15 -17
  94. package/src/impl/LslStreamInfo.ts +7 -9
  95. package/src/impl/LslStreamInlet.ts +305 -81
  96. package/src/impl/LslStreamOutlet.ts +57 -56
  97. package/src/impl/LslWebSocketBridge.ts +15 -18
  98. package/src/impl/controllers/BleDeviceController.ts +1 -1
  99. package/src/index.ts +38 -34
  100. package/src/scripts/{runLslEventMarkerEmitter.ts → runLslEmitter.ts} +4 -3
  101. package/src/scripts/runMuse.ts +1 -1
  102. package/src/testDoubles/ClockRegressor/FakeClockRegressor.ts +1 -1
  103. package/src/testDoubles/{EventMarkerEmitter/FakeEventMarkerEmitter.ts → LslEmitter/FakeLslEmitter.ts} +10 -10
  104. package/src/testDoubles/{EventMarkerEmitter/SpyEventMarkerEmitter.ts → LslEmitter/SpyLslEmitter.ts} +4 -4
  105. package/src/testDoubles/{EventMarkerEmitter/ThrowingEventMarkerEmitter.ts → LslEmitter/ThrowingLslEmitter.ts} +4 -4
  106. package/src/testDoubles/{StreamInfo/FakeStreamInfo.ts → LslInfo/FakeLslInfo.ts} +9 -9
  107. package/src/testDoubles/{StreamInfo/SpyStreamInfo.ts → LslInfo/SpyLslInfo.ts} +5 -5
  108. package/src/testDoubles/{StreamInlet/FakeStreamInlet.ts → LslInlet/FakeLslInlet.ts} +15 -14
  109. package/src/testDoubles/LslInlet/SpyLslInlet.ts +10 -0
  110. package/src/testDoubles/{StreamOutlet/FakeStreamOutlet.ts → LslOutlet/FakeLslOutlet.ts} +11 -14
  111. package/src/testDoubles/{WebSocketBridge/FakeWebSocketBridge.ts → LslWsBridge/FakeLslWsBridge.ts} +19 -19
  112. package/src/testDoubles/LslWsBridge/SpyLslWsBridge.ts +9 -0
  113. package/src/testDoubles/consts.ts +3 -23
  114. package/src/testDoubles/generateRandomOutletOptions.ts +2 -2
  115. package/build/consts.d.ts +0 -11
  116. package/build/consts.js +0 -21
  117. package/build/consts.js.map +0 -1
  118. package/build/impl/WindowedClockRegressor.js.map +0 -1
  119. package/build/impl/workers/inlet/LslStreamInlet.worker.d.ts +0 -22
  120. package/build/impl/workers/inlet/LslStreamInlet.worker.js +0 -42
  121. package/build/impl/workers/inlet/LslStreamInlet.worker.js.map +0 -1
  122. package/build/impl/workers/inlet/StreamInletWorker.d.ts +0 -73
  123. package/build/impl/workers/inlet/StreamInletWorker.js +0 -253
  124. package/build/impl/workers/inlet/StreamInletWorker.js.map +0 -1
  125. package/build/impl/workers/outlet/LslStreamOutlet.worker.d.ts +0 -32
  126. package/build/impl/workers/outlet/LslStreamOutlet.worker.js +0 -82
  127. package/build/impl/workers/outlet/LslStreamOutlet.worker.js.map +0 -1
  128. package/build/scripts/discoverMuse.js +0 -40
  129. package/build/scripts/discoverMuse.js.map +0 -1
  130. package/build/scripts/runLslEventMarkerEmitter.js.map +0 -1
  131. package/build/scripts/runLslStreamOutlet.d.ts +0 -1
  132. package/build/scripts/runLslStreamOutlet.js.map +0 -1
  133. package/build/scripts/testDestroyOutlet.d.ts +0 -1
  134. package/build/scripts/testDestroyOutlet.js +0 -4
  135. package/build/scripts/testDestroyOutlet.js.map +0 -1
  136. package/build/testDoubles/EventMarkerEmitter/FakeEventMarkerEmitter.js.map +0 -1
  137. package/build/testDoubles/EventMarkerEmitter/SpyEventMarkerEmitter.js.map +0 -1
  138. package/build/testDoubles/EventMarkerEmitter/ThrowingEventMarkerEmitter.d.ts +0 -9
  139. package/build/testDoubles/EventMarkerEmitter/ThrowingEventMarkerEmitter.js.map +0 -1
  140. package/build/testDoubles/StreamInfo/FakeStreamInfo.js.map +0 -1
  141. package/build/testDoubles/StreamInfo/SpyStreamInfo.d.ts +0 -10
  142. package/build/testDoubles/StreamInfo/SpyStreamInfo.js.map +0 -1
  143. package/build/testDoubles/StreamInlet/FakeStreamInlet.js.map +0 -1
  144. package/build/testDoubles/StreamInlet/SpyStreamInlet.d.ts +0 -4
  145. package/build/testDoubles/StreamInlet/SpyStreamInlet.js.map +0 -1
  146. package/build/testDoubles/StreamOutlet/FakeStreamOutlet.js.map +0 -1
  147. package/build/testDoubles/WebSocketBridge/FakeWebSocketBridge.d.ts +0 -14
  148. package/build/testDoubles/WebSocketBridge/FakeWebSocketBridge.js.map +0 -1
  149. package/build/testDoubles/WebSocketBridge/SpyLslWebSocketBridge.d.ts +0 -4
  150. package/build/testDoubles/WebSocketBridge/SpyLslWebSocketBridge.js.map +0 -1
  151. package/build/testDoubles/WorkerThreads/FakeWorker.d.ts +0 -27
  152. package/build/testDoubles/WorkerThreads/FakeWorker.js +0 -67
  153. package/build/testDoubles/WorkerThreads/FakeWorker.js.map +0 -1
  154. package/src/consts.ts +0 -21
  155. package/src/impl/workers/inlet/LslStreamInlet.worker.ts +0 -74
  156. package/src/impl/workers/inlet/StreamInletWorker.ts +0 -348
  157. package/src/impl/workers/outlet/LslStreamOutlet.worker.ts +0 -144
  158. package/src/scripts/discoverMuse.ts +0 -50
  159. package/src/scripts/testDestroyOutlet.ts +0 -5
  160. package/src/testDoubles/StreamInlet/SpyStreamInlet.ts +0 -10
  161. package/src/testDoubles/WebSocketBridge/SpyLslWebSocketBridge.ts +0 -9
  162. package/src/testDoubles/WorkerThreads/FakeWorker.ts +0 -99
  163. /package/build/impl/{WindowedClockRegressor.d.ts → clocks/WindowedClockRegressor.d.ts} +0 -0
  164. /package/build/impl/{WindowedClockRegressor.js → clocks/WindowedClockRegressor.js} +0 -0
  165. /package/build/scripts/{discoverMuse.d.ts → runLslEmitter.d.ts} +0 -0
  166. /package/build/scripts/{runLslEventMarkerEmitter.d.ts → runLslOutlet.d.ts} +0 -0
  167. /package/src/impl/{WindowedClockRegressor.ts → clocks/WindowedClockRegressor.ts} +0 -0
  168. /package/src/scripts/{runLslStreamOutlet.ts → runLslOutlet.ts} +0 -0
@@ -1,144 +0,0 @@
1
- import { parentPort } from 'node:worker_threads'
2
-
3
- import {
4
- LiblslAdapter,
5
- Liblsl,
6
- OutletHandle,
7
- handleLslError,
8
- LslErrorCode,
9
- } from '@neurodevs/ndx-native'
10
-
11
- import LslStreamInfo, {
12
- StreamInfo,
13
- StreamInfoOptions,
14
- } from '../../LslStreamInfo.js'
15
-
16
- let lsl = LiblslAdapter.getInstance()
17
-
18
- export function setOutletLiblslAdapter(adapter: Liblsl) {
19
- LiblslAdapter.setInstance(adapter)
20
- lsl = LiblslAdapter.getInstance()
21
- }
22
-
23
- let handleLslErrorFn = handleLslError
24
-
25
- export function setOutletHandleLslError(fn: typeof handleLslError) {
26
- handleLslErrorFn = fn
27
- }
28
-
29
- let info: StreamInfo
30
- let handle: OutletHandle
31
- let pushMethod: (opts: unknown) => LslErrorCode
32
-
33
- parentPort?.on('message', (msg: OutletMessage) => {
34
- const { type } = msg
35
-
36
- try {
37
- switch (type) {
38
- case 'createOutlet': {
39
- createOutlet(msg)
40
- break
41
- }
42
-
43
- case 'pushSample': {
44
- pushSample(msg)
45
- break
46
- }
47
-
48
- case 'destroyOutlet': {
49
- destroyOutlet()
50
- break
51
- }
52
- }
53
- } catch (err) {
54
- parentPort?.postMessage({
55
- type: 'error',
56
- error: err instanceof Error ? err.message : String(err),
57
- })
58
- }
59
- })
60
-
61
- export function createOutlet(msg: {
62
- type: 'createOutlet'
63
- payload: CreateOutletPayload
64
- }) {
65
- const { payload } = msg
66
-
67
- info = LslStreamInfo.Create(payload.infoOptions)
68
-
69
- handle = lsl.createOutlet({
70
- infoHandle: info.infoHandle,
71
- chunkSize: payload.chunkSize,
72
- maxBufferedMs: payload.maxBufferedMs,
73
- })
74
-
75
- pushMethod = (
76
- lsl[payload.pushMethod] as (opts: unknown) => LslErrorCode
77
- ).bind(lsl)
78
-
79
- parentPort?.postMessage({ type: 'ready' })
80
- }
81
-
82
- export function pushSample(msg: {
83
- type: 'pushSample'
84
- payload: PushSamplePayload
85
- }) {
86
- const { payload } = msg
87
- const { sample, timestampSec = lsl.localClock() } = payload
88
-
89
- if (!handle || !pushMethod) {
90
- throw new Error('Outlet not initialized')
91
- }
92
-
93
- const errorCode = pushMethod({
94
- outletHandle: handle,
95
- sample,
96
- timestampSec,
97
- })
98
-
99
- try {
100
- handleLslErrorFn(errorCode)
101
- } catch {
102
- parentPort?.postMessage({
103
- type: 'error',
104
- error: `Error pushing sample: ${LslErrorCode[errorCode]}`,
105
- })
106
- }
107
- }
108
-
109
- export function destroyOutlet() {
110
- if (handle) {
111
- lsl.destroyOutlet({ outletHandle: handle })
112
- }
113
-
114
- if (info) {
115
- lsl.destroyStreamInfo({ infoHandle: info.infoHandle })
116
- }
117
-
118
- parentPort?.close()
119
- }
120
-
121
- export type OutletMessage =
122
- | {
123
- type: 'createOutlet'
124
- payload: CreateOutletPayload
125
- }
126
- | {
127
- type: 'pushSample'
128
- payload: PushSamplePayload
129
- }
130
- | {
131
- type: 'destroyOutlet'
132
- }
133
-
134
- export interface CreateOutletPayload {
135
- infoOptions: StreamInfoOptions
136
- chunkSize: number
137
- maxBufferedMs: number
138
- pushMethod: 'pushSampleFloatTimestamp' | 'pushSampleStringTimestamp'
139
- }
140
-
141
- export interface PushSamplePayload {
142
- sample: unknown
143
- timestampSec?: number
144
- }
@@ -1,50 +0,0 @@
1
- import koffi from 'koffi'
2
-
3
- import BleDeviceController from '../impl/controllers/BleDeviceController.js'
4
-
5
- const MUSE_CHARACTERISTIC_UUIDS: Record<string, string> = {
6
- CONTROL: '273E0001-4C4D-454D-96BE-F03BAC821358',
7
- TELEMETRY: '273E000B-4C4D-454D-96BE-F03BAC821358',
8
- GYROSCOPE: '273E0009-4C4D-454D-96BE-F03BAC821358',
9
- ACCELEROMETER: '273E000A-4C4D-454D-96BE-F03BAC821358',
10
- PPG_AMBIENT: '273E000F-4C4D-454D-96BE-F03BAC821358',
11
- PPG_INFRARED: '273E0010-4C4D-454D-96BE-F03BAC821358',
12
- PPG_RED: '273E0011-4C4D-454D-96BE-F03BAC821358',
13
- EEG_TP9: '273E0003-4C4D-454D-96BE-F03BAC821358',
14
- EEG_AF7: '273E0004-4C4D-454D-96BE-F03BAC821358',
15
- EEG_AF8: '273E0005-4C4D-454D-96BE-F03BAC821358',
16
- EEG_TP10: '273E0006-4C4D-454D-96BE-F03BAC821358',
17
- EEG_AUX: '273E0007-4C4D-454D-96BE-F03BAC821358',
18
- }
19
-
20
- const CONTROL_UUID = MUSE_CHARACTERISTIC_UUIDS['CONTROL']
21
-
22
- const charCallbacks = Object.entries(MUSE_CHARACTERISTIC_UUIDS).map(
23
- ([name, uuid]) => {
24
- return {
25
- charUuid: uuid,
26
- charName: name,
27
- onData: (data: Buffer, length: number, timestampSec: number) => {
28
- const bytes = koffi.decode(data, 'uint8', length) as number[]
29
- console.info(`[${timestampSec}] length=${length}`, bytes)
30
- },
31
- }
32
- }
33
- )
34
-
35
- const muse = await BleDeviceController.Create({
36
- deviceNamePrefix: 'Muse',
37
- charCallbacks,
38
- rssiIntervalMs: 1000,
39
- })
40
-
41
- await muse.connect()
42
-
43
- for (const cmd of ['h', 'p50', 's', 'd']) {
44
- await muse.writeCharacteristic(CONTROL_UUID, cmd)
45
- await new Promise((resolve) => setTimeout(resolve, 100))
46
- }
47
-
48
- await new Promise((resolve) => setTimeout(resolve, 5 * 1000))
49
-
50
- await muse.disconnect()
@@ -1,5 +0,0 @@
1
- import LslEventMarkerEmitter from '../impl/LslEventMarkerEmitter.js'
2
-
3
- const emitter = await LslEventMarkerEmitter.Create()
4
-
5
- emitter.destroy()
@@ -1,10 +0,0 @@
1
- import LslStreamInlet, {
2
- OnDataCallback,
3
- StreamInletOptions,
4
- } from '../../impl/LslStreamInlet.js'
5
-
6
- export class SpyStreamInlet extends LslStreamInlet {
7
- public constructor(options: StreamInletOptions, onData: OnDataCallback) {
8
- super(options, onData)
9
- }
10
- }
@@ -1,9 +0,0 @@
1
- import LslWebSocketBridge, {
2
- WebSocketBridgeConstructorOptions,
3
- } from '../../impl/LslWebSocketBridge.js'
4
-
5
- export default class SpyLslWebSocketBridge extends LslWebSocketBridge {
6
- public constructor(options: WebSocketBridgeConstructorOptions) {
7
- super(options)
8
- }
9
- }
@@ -1,99 +0,0 @@
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
- }