@neurodevs/node-lsl 11.4.2 → 12.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 (143) hide show
  1. package/.vscode/tasks.json +19 -1
  2. package/README.md +8 -9
  3. package/build/__tests__/{AbstractLslTest.d.ts → AbstractPackageTest.d.ts} +5 -4
  4. package/build/__tests__/AbstractPackageTest.js +58 -0
  5. package/build/__tests__/AbstractPackageTest.js.map +1 -0
  6. package/build/__tests__/{modules → impl}/LiblslAdapter.test.d.ts +4 -3
  7. package/build/__tests__/{modules → impl}/LiblslAdapter.test.js +32 -25
  8. package/build/__tests__/impl/LiblslAdapter.test.js.map +1 -0
  9. package/build/__tests__/{modules/EventMarkerOutlet.test.d.ts → impl/LslEventMarkerOutlet.test.d.ts} +5 -4
  10. package/build/__tests__/{modules/EventMarkerOutlet.test.js → impl/LslEventMarkerOutlet.test.js} +32 -25
  11. package/build/__tests__/impl/LslEventMarkerOutlet.test.js.map +1 -0
  12. package/build/__tests__/{modules → impl}/LslStreamInfo.test.d.ts +3 -3
  13. package/build/__tests__/{modules → impl}/LslStreamInfo.test.js +17 -16
  14. package/build/__tests__/impl/LslStreamInfo.test.js.map +1 -0
  15. package/build/__tests__/impl/LslStreamInlet.test.d.ts +10 -0
  16. package/build/__tests__/{modules → impl}/LslStreamInlet.test.js +9 -9
  17. package/build/__tests__/impl/LslStreamInlet.test.js.map +1 -0
  18. package/build/__tests__/{modules → impl}/LslStreamOutlet.test.d.ts +2 -2
  19. package/build/__tests__/{modules → impl}/LslStreamOutlet.test.js +7 -6
  20. package/build/__tests__/impl/LslStreamOutlet.test.js.map +1 -0
  21. package/build/__tests__/impl/LslWebSocketBridge.test.d.ts +7 -0
  22. package/build/__tests__/impl/LslWebSocketBridge.test.js +63 -0
  23. package/build/__tests__/impl/LslWebSocketBridge.test.js.map +1 -0
  24. package/build/impl/LiblslAdapter.js.map +1 -0
  25. package/build/impl/LslEventMarkerOutlet.d.ts +23 -0
  26. package/build/{modules/EventMarkerOutlet.js → impl/LslEventMarkerOutlet.js} +6 -6
  27. package/build/impl/LslEventMarkerOutlet.js.map +1 -0
  28. package/build/{modules → impl}/LslStreamInfo.js +4 -4
  29. package/build/impl/LslStreamInfo.js.map +1 -0
  30. package/build/{modules → impl}/LslStreamInlet.d.ts +8 -8
  31. package/build/{modules → impl}/LslStreamInlet.js +4 -4
  32. package/build/impl/LslStreamInlet.js.map +1 -0
  33. package/build/{modules → impl}/LslStreamOutlet.d.ts +8 -8
  34. package/build/{modules → impl}/LslStreamOutlet.js +2 -2
  35. package/build/impl/LslStreamOutlet.js.map +1 -0
  36. package/build/impl/LslWebSocketBridge.d.ts +8 -0
  37. package/build/impl/LslWebSocketBridge.js +10 -0
  38. package/build/impl/LslWebSocketBridge.js.map +1 -0
  39. package/build/index.d.ts +26 -22
  40. package/build/index.js +41 -34
  41. package/build/index.js.map +1 -1
  42. package/build/scripts/{demoMarkerOutlet.js → runLslEventMarkerOutlet.js} +3 -3
  43. package/build/scripts/runLslEventMarkerOutlet.js.map +1 -0
  44. package/build/scripts/{demoStreamOutlet.js → runLslStreamOutlet.js} +2 -2
  45. package/build/scripts/runLslStreamOutlet.js.map +1 -0
  46. package/build/testDoubles/{MarkerOutlet/FakeMarkerOutlet.d.ts → EventMarkerOutlet/FakeEventMarkerOutlet.d.ts} +2 -2
  47. package/build/testDoubles/EventMarkerOutlet/FakeEventMarkerOutlet.js +29 -0
  48. package/build/testDoubles/EventMarkerOutlet/FakeEventMarkerOutlet.js.map +1 -0
  49. package/build/testDoubles/{MarkerOutlet/MockMarkerOutlet.d.ts → EventMarkerOutlet/MockEventMarkerOutlet.d.ts} +2 -2
  50. package/build/testDoubles/{MarkerOutlet/MockMarkerOutlet.js → EventMarkerOutlet/MockEventMarkerOutlet.js} +3 -3
  51. package/build/testDoubles/EventMarkerOutlet/MockEventMarkerOutlet.js.map +1 -0
  52. package/build/testDoubles/EventMarkerOutlet/SpyEventMarkerOutlet.d.ts +9 -0
  53. package/build/testDoubles/{MarkerOutlet/SpyMarkerOutlet.js → EventMarkerOutlet/SpyEventMarkerOutlet.js} +8 -8
  54. package/build/testDoubles/EventMarkerOutlet/SpyEventMarkerOutlet.js.map +1 -0
  55. package/build/testDoubles/{MarkerOutlet/ThrowingMarkerOutlet.d.ts → EventMarkerOutlet/ThrowingEventMarkerOutlet.d.ts} +2 -2
  56. package/build/testDoubles/{MarkerOutlet/ThrowingMarkerOutlet.js → EventMarkerOutlet/ThrowingEventMarkerOutlet.js} +3 -3
  57. package/build/testDoubles/EventMarkerOutlet/ThrowingEventMarkerOutlet.js.map +1 -0
  58. package/build/testDoubles/StreamInfo/FakeStreamInfo.d.ts +1 -1
  59. package/build/testDoubles/StreamInfo/SpyStreamInfo.d.ts +1 -1
  60. package/build/testDoubles/StreamInfo/SpyStreamInfo.js +1 -1
  61. package/build/testDoubles/StreamInfo/SpyStreamInfo.js.map +1 -1
  62. package/build/testDoubles/StreamInlet/FakeStreamInlet.d.ts +10 -0
  63. package/build/testDoubles/StreamInlet/FakeStreamInlet.js +16 -0
  64. package/build/testDoubles/StreamInlet/FakeStreamInlet.js.map +1 -0
  65. package/build/testDoubles/StreamInlet/SpyStreamInlet.d.ts +7 -0
  66. package/build/testDoubles/{LslInlet/SpyLslInlet.js → StreamInlet/SpyStreamInlet.js} +5 -5
  67. package/build/testDoubles/StreamInlet/SpyStreamInlet.js.map +1 -0
  68. package/build/testDoubles/{LslOutlet/FakeLslOutlet.d.ts → StreamOutlet/FakeStreamOutlet.d.ts} +9 -10
  69. package/build/testDoubles/StreamOutlet/FakeStreamOutlet.js +62 -0
  70. package/build/testDoubles/StreamOutlet/FakeStreamOutlet.js.map +1 -0
  71. package/build/testDoubles/StreamTransportBridge/FakeStreamTransportBridge.d.ts +6 -0
  72. package/build/testDoubles/StreamTransportBridge/FakeStreamTransportBridge.js +13 -0
  73. package/build/testDoubles/StreamTransportBridge/FakeStreamTransportBridge.js.map +1 -0
  74. package/build/testDoubles/generateRandomOutletOptions.d.ts +2 -2
  75. package/build/testDoubles/generateRandomOutletOptions.js +10 -7
  76. package/build/testDoubles/generateRandomOutletOptions.js.map +1 -1
  77. package/build/types.d.ts +3 -3
  78. package/package.json +20 -8
  79. package/src/__tests__/{AbstractLslTest.ts → AbstractPackageTest.ts} +22 -17
  80. package/src/__tests__/{modules → impl}/LiblslAdapter.test.ts +25 -19
  81. package/src/__tests__/{modules/EventMarkerOutlet.test.ts → impl/LslEventMarkerOutlet.test.ts} +38 -27
  82. package/src/__tests__/{modules → impl}/LslStreamInfo.test.ts +7 -6
  83. package/src/__tests__/{modules → impl}/LslStreamInlet.test.ts +12 -12
  84. package/src/__tests__/{modules → impl}/LslStreamOutlet.test.ts +18 -11
  85. package/src/__tests__/impl/LslWebSocketBridge.test.ts +23 -0
  86. package/src/{modules/EventMarkerOutlet.ts → impl/LslEventMarkerOutlet.ts} +16 -11
  87. package/src/{modules → impl}/LslStreamInfo.ts +1 -1
  88. package/src/{modules → impl}/LslStreamInlet.ts +12 -12
  89. package/src/{modules → impl}/LslStreamOutlet.ts +12 -12
  90. package/src/impl/LslWebSocketBridge.ts +13 -0
  91. package/src/index.ts +37 -29
  92. package/src/scripts/{demoMarkerOutlet.ts → runLslEventMarkerOutlet.ts} +2 -2
  93. package/src/scripts/{demoStreamOutlet.ts → runLslStreamOutlet.ts} +1 -1
  94. package/src/testDoubles/{MarkerOutlet/FakeMarkerOutlet.ts → EventMarkerOutlet/FakeEventMarkerOutlet.ts} +6 -6
  95. package/src/testDoubles/{MarkerOutlet/MockMarkerOutlet.ts → EventMarkerOutlet/MockEventMarkerOutlet.ts} +2 -2
  96. package/src/testDoubles/EventMarkerOutlet/SpyEventMarkerOutlet.ts +24 -0
  97. package/src/testDoubles/{MarkerOutlet/ThrowingMarkerOutlet.ts → EventMarkerOutlet/ThrowingEventMarkerOutlet.ts} +2 -2
  98. package/src/testDoubles/StreamInfo/FakeStreamInfo.ts +1 -1
  99. package/src/testDoubles/StreamInfo/SpyStreamInfo.ts +1 -1
  100. package/src/testDoubles/StreamInlet/FakeStreamInlet.ts +20 -0
  101. package/src/testDoubles/StreamInlet/SpyStreamInlet.ts +16 -0
  102. package/src/testDoubles/{LslOutlet/FakeLslOutlet.ts → StreamOutlet/FakeStreamOutlet.ts} +17 -18
  103. package/src/testDoubles/StreamTransportBridge/FakeStreamTransportBridge.ts +15 -0
  104. package/src/testDoubles/generateRandomOutletOptions.ts +3 -3
  105. package/src/types.ts +3 -3
  106. package/build/__tests__/AbstractLslTest.js +0 -87
  107. package/build/__tests__/AbstractLslTest.js.map +0 -1
  108. package/build/__tests__/modules/EventMarkerOutlet.test.js.map +0 -1
  109. package/build/__tests__/modules/LiblslAdapter.test.js.map +0 -1
  110. package/build/__tests__/modules/LslStreamInfo.test.js.map +0 -1
  111. package/build/__tests__/modules/LslStreamInlet.test.d.ts +0 -10
  112. package/build/__tests__/modules/LslStreamInlet.test.js.map +0 -1
  113. package/build/__tests__/modules/LslStreamOutlet.test.js.map +0 -1
  114. package/build/modules/EventMarkerOutlet.d.ts +0 -23
  115. package/build/modules/EventMarkerOutlet.js.map +0 -1
  116. package/build/modules/LiblslAdapter.js.map +0 -1
  117. package/build/modules/LslStreamInfo.js.map +0 -1
  118. package/build/modules/LslStreamInlet.js.map +0 -1
  119. package/build/modules/LslStreamOutlet.js.map +0 -1
  120. package/build/scripts/demoMarkerOutlet.js.map +0 -1
  121. package/build/scripts/demoStreamOutlet.js.map +0 -1
  122. package/build/testDoubles/LslInlet/FakeLslInlet.d.ts +0 -11
  123. package/build/testDoubles/LslInlet/FakeLslInlet.js +0 -16
  124. package/build/testDoubles/LslInlet/FakeLslInlet.js.map +0 -1
  125. package/build/testDoubles/LslInlet/SpyLslInlet.d.ts +0 -7
  126. package/build/testDoubles/LslInlet/SpyLslInlet.js.map +0 -1
  127. package/build/testDoubles/LslOutlet/FakeLslOutlet.js +0 -59
  128. package/build/testDoubles/LslOutlet/FakeLslOutlet.js.map +0 -1
  129. package/build/testDoubles/MarkerOutlet/FakeMarkerOutlet.js +0 -29
  130. package/build/testDoubles/MarkerOutlet/FakeMarkerOutlet.js.map +0 -1
  131. package/build/testDoubles/MarkerOutlet/MockMarkerOutlet.js.map +0 -1
  132. package/build/testDoubles/MarkerOutlet/SpyMarkerOutlet.d.ts +0 -9
  133. package/build/testDoubles/MarkerOutlet/SpyMarkerOutlet.js.map +0 -1
  134. package/build/testDoubles/MarkerOutlet/ThrowingMarkerOutlet.js.map +0 -1
  135. package/src/testDoubles/LslInlet/FakeLslInlet.ts +0 -22
  136. package/src/testDoubles/LslInlet/SpyLslInlet.ts +0 -16
  137. package/src/testDoubles/MarkerOutlet/SpyMarkerOutlet.ts +0 -24
  138. /package/build/{modules → impl}/LiblslAdapter.d.ts +0 -0
  139. /package/build/{modules → impl}/LiblslAdapter.js +0 -0
  140. /package/build/{modules → impl}/LslStreamInfo.d.ts +0 -0
  141. /package/build/scripts/{demoMarkerOutlet.d.ts → runLslEventMarkerOutlet.d.ts} +0 -0
  142. /package/build/scripts/{demoStreamOutlet.d.ts → runLslStreamOutlet.d.ts} +0 -0
  143. /package/src/{modules → impl}/LiblslAdapter.ts +0 -0
@@ -1,19 +1,22 @@
1
1
  import { DurationMarker } from '../types'
2
- import LslStreamOutlet, { LslOutletOptions, LslOutlet } from './LslStreamOutlet'
2
+ import LslStreamOutlet, {
3
+ StreamOutletOptions,
4
+ StreamOutlet,
5
+ } from './LslStreamOutlet'
3
6
 
4
- export default class EventMarkerOutlet implements MarkerOutlet {
5
- public static Class?: MarkerOutletConstructor
7
+ export default class LslEventMarkerOutlet implements EventMarkerOutlet {
8
+ public static Class?: EventMarkerOutletConstructor
6
9
 
7
- protected lslOutlet: LslOutlet
10
+ protected streamOutlet: StreamOutlet
8
11
  private isPlaying = false
9
12
  private waitResolve?: () => void
10
13
  private timeout?: any
11
14
 
12
- protected constructor(lslOutlet: LslOutlet) {
13
- this.lslOutlet = lslOutlet
15
+ protected constructor(outlet: StreamOutlet) {
16
+ this.streamOutlet = outlet
14
17
  }
15
18
 
16
- public static async Create(options?: Partial<LslOutletOptions>) {
19
+ public static async Create(options?: Partial<StreamOutletOptions>) {
17
20
  const defaultOptions = {
18
21
  name: 'Event markers',
19
22
  type: 'Markers',
@@ -25,7 +28,7 @@ export default class EventMarkerOutlet implements MarkerOutlet {
25
28
  unit: 'N/A',
26
29
  chunkSize: 0,
27
30
  maxBuffered: 0,
28
- } as LslOutletOptions
31
+ } as StreamOutletOptions
29
32
 
30
33
  const outlet = await LslStreamOutlet.Create({
31
34
  ...defaultOptions,
@@ -55,7 +58,7 @@ export default class EventMarkerOutlet implements MarkerOutlet {
55
58
  }
56
59
 
57
60
  private pushMarkerToOutlet(markerName: string) {
58
- this.lslOutlet.pushSample([markerName])
61
+ this.streamOutlet.pushSample([markerName])
59
62
  }
60
63
 
61
64
  protected async wait(durationMs: number) {
@@ -74,10 +77,12 @@ export default class EventMarkerOutlet implements MarkerOutlet {
74
77
  }
75
78
  }
76
79
 
77
- export interface MarkerOutlet {
80
+ export interface EventMarkerOutlet {
78
81
  pushMarker(markerName: string): void
79
82
  pushMarkers(markers: DurationMarker[]): Promise<void>
80
83
  stop(): void
81
84
  }
82
85
 
83
- export type MarkerOutletConstructor = new (lslOutlet: LslOutlet) => MarkerOutlet
86
+ export type EventMarkerOutletConstructor = new (
87
+ outlet: StreamOutlet
88
+ ) => EventMarkerOutlet
@@ -1,4 +1,4 @@
1
- import { generateId } from '@sprucelabs/test-utils'
1
+ import generateId from '@neurodevs/generate-id'
2
2
  import { CHANNEL_FORMATS_MAP } from '../consts'
3
3
  import { BoundStreamInfo, ChannelFormat } from '../types'
4
4
  import LiblslAdapter from './LiblslAdapter'
@@ -1,17 +1,17 @@
1
- import { generateId } from '@sprucelabs/test-utils'
1
+ import generateId from '@neurodevs/generate-id'
2
2
  import { ChannelFormat } from '../types'
3
3
  import LiblslAdapter from './LiblslAdapter'
4
4
  import LslStreamInfo, { StreamInfo, StreamInfoOptions } from './LslStreamInfo'
5
5
 
6
- export default class LslStreamInlet implements LslInlet {
7
- public static Class?: LslInletConstructor
6
+ export default class LslStreamInlet implements StreamInlet {
7
+ public static Class?: StreamInletConstructor
8
8
 
9
9
  protected name: string
10
10
  protected info: StreamInfo
11
11
  private chunkSize: number
12
12
  private maxBuffered: number
13
13
 
14
- protected constructor(info: StreamInfo, options: LslInletOptions) {
14
+ protected constructor(info: StreamInfo, options: StreamInletOptions) {
15
15
  const {
16
16
  name = this.defaultName,
17
17
  chunkSize,
@@ -23,17 +23,17 @@ export default class LslStreamInlet implements LslInlet {
23
23
  this.maxBuffered = maxBuffered
24
24
  this.name = name
25
25
 
26
- this.createLslInlet()
26
+ this.createStreamInlet()
27
27
  }
28
28
 
29
- public static Create(options: LslInletOptions) {
29
+ public static Create(options: StreamInletOptions) {
30
30
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
31
31
  const { maxBuffered, chunkSize, ...infoOptions } = options
32
32
  const info = this.LslStreamInfo(infoOptions)
33
33
  return new (this.Class ?? this)(info, options)
34
34
  }
35
35
 
36
- private createLslInlet() {
36
+ private createStreamInlet() {
37
37
  this.lsl.createInlet({
38
38
  info: this.boundStreamInfo,
39
39
  chunkSize: this.chunkSize,
@@ -56,14 +56,14 @@ export default class LslStreamInlet implements LslInlet {
56
56
  }
57
57
  }
58
58
 
59
- export interface LslInlet {}
59
+ export interface StreamInlet {}
60
60
 
61
- export type LslInletConstructor = new (
61
+ export type StreamInletConstructor = new (
62
62
  info: StreamInfo,
63
- options: LslInletOptions
64
- ) => LslInlet
63
+ options: StreamInletOptions
64
+ ) => StreamInlet
65
65
 
66
- export interface LslInletOptions {
66
+ export interface StreamInletOptions {
67
67
  sampleRate: number
68
68
  channelNames: string[]
69
69
  channelFormat: ChannelFormat
@@ -9,24 +9,24 @@ import { ChannelFormat, BoundOutlet, Liblsl, LslSample } from '../types'
9
9
  import LiblslAdapter from './LiblslAdapter'
10
10
  import LslStreamInfo, { StreamInfo, StreamInfoOptions } from './LslStreamInfo'
11
11
 
12
- export default class LslStreamOutlet implements LslOutlet {
13
- public static Class?: LslOutletConstructor
12
+ export default class LslStreamOutlet implements StreamOutlet {
13
+ public static Class?: StreamOutletConstructor
14
14
 
15
15
  private info: StreamInfo
16
- private options: LslOutletOptions
16
+ private options: StreamOutletOptions
17
17
  private outlet!: BoundOutlet
18
18
  private pushSampleByType!: (options: any) => void
19
19
 
20
- protected constructor(info: StreamInfo, options: LslOutletOptions) {
20
+ protected constructor(info: StreamInfo, options: StreamOutletOptions) {
21
21
  this.info = info
22
22
  this.options = options
23
23
 
24
24
  this.validateOptions()
25
- this.createLslOutlet()
25
+ this.createStreamOutlet()
26
26
  this.setPushSampleType()
27
27
  }
28
28
 
29
- public static async Create(options: LslOutletOptions) {
29
+ public static async Create(options: StreamOutletOptions) {
30
30
  const { waitAfterConstructionMs = 10 } = options ?? {}
31
31
 
32
32
  const streamInfoOptions = {
@@ -55,7 +55,7 @@ export default class LslStreamOutlet implements LslOutlet {
55
55
  assertValidMaxBuffered(this.maxBuffered)
56
56
  }
57
57
 
58
- private createLslOutlet() {
58
+ private createStreamOutlet() {
59
59
  this.outlet = this.lsl.createOutlet({
60
60
  info: this.boundStreamInfo,
61
61
  chunkSize: this.chunkSize,
@@ -167,7 +167,7 @@ export default class LslStreamOutlet implements LslOutlet {
167
167
  }
168
168
  }
169
169
 
170
- export interface LslOutlet {
170
+ export interface StreamOutlet {
171
171
  pushSample(sample: LslSample): void
172
172
  destroy(): void
173
173
  readonly name: string
@@ -182,12 +182,12 @@ export interface LslOutlet {
182
182
  readonly unit: string
183
183
  }
184
184
 
185
- export type LslOutletConstructor = new (
185
+ export type StreamOutletConstructor = new (
186
186
  info: StreamInfo,
187
- options: LslOutletOptions
188
- ) => LslOutlet
187
+ options: StreamOutletOptions
188
+ ) => StreamOutlet
189
189
 
190
- export interface LslOutletOptions {
190
+ export interface StreamOutletOptions {
191
191
  name: string
192
192
  type: string
193
193
  sourceId: string
@@ -0,0 +1,13 @@
1
+ export default class LslWebSocketBridge implements StreamTransportBridge {
2
+ public static Class?: StreamTransportBridgeConstructor
3
+
4
+ protected constructor() {}
5
+
6
+ public static Create() {
7
+ return new (this.Class ?? this)()
8
+ }
9
+ }
10
+
11
+ export interface StreamTransportBridge {}
12
+
13
+ export type StreamTransportBridgeConstructor = new () => StreamTransportBridge
package/src/index.ts CHANGED
@@ -1,17 +1,34 @@
1
1
  export * from './types'
2
2
 
3
+ // EventMarkerOutlet
4
+
5
+ export { default as EventMarkerOutlet } from './impl/LslEventMarkerOutlet'
6
+ export * from './impl/LslEventMarkerOutlet'
7
+
8
+ export { default as FakeMarkerOutlet } from './testDoubles/EventMarkerOutlet/FakeEventMarkerOutlet'
9
+ export * from './testDoubles/EventMarkerOutlet/FakeEventMarkerOutlet'
10
+
11
+ export { default as MockMarkerOutlet } from './testDoubles/EventMarkerOutlet/MockEventMarkerOutlet'
12
+ export * from './testDoubles/EventMarkerOutlet/MockEventMarkerOutlet'
13
+
14
+ export { default as SpyMarkerOutlet } from './testDoubles/EventMarkerOutlet/SpyEventMarkerOutlet'
15
+ export * from './testDoubles/EventMarkerOutlet/SpyEventMarkerOutlet'
16
+
17
+ export { default as ThrowingMarkerOutlet } from './testDoubles/EventMarkerOutlet/ThrowingEventMarkerOutlet'
18
+ export * from './testDoubles/EventMarkerOutlet/ThrowingEventMarkerOutlet'
19
+
3
20
  // Liblsl
4
21
 
5
- export { default as LiblslAdapter } from './modules/LiblslAdapter'
6
- export * from './modules/LiblslAdapter'
22
+ export { default as LiblslAdapter } from './impl/LiblslAdapter'
23
+ export * from './impl/LiblslAdapter'
7
24
 
8
25
  export { default as FakeLiblsl } from './testDoubles/Liblsl/FakeLiblsl'
9
26
  export * from './testDoubles/Liblsl/FakeLiblsl'
10
27
 
11
- // LslStreamInfo
28
+ // StreamInfo
12
29
 
13
- export { default as LslStreamInfo } from './modules/LslStreamInfo'
14
- export * from './modules/LslStreamInfo'
30
+ export { default as LslStreamInfo } from './impl/LslStreamInfo'
31
+ export * from './impl/LslStreamInfo'
15
32
 
16
33
  export { default as SpyStreamInfo } from './testDoubles/StreamInfo/SpyStreamInfo'
17
34
  export * from './testDoubles/StreamInfo/SpyStreamInfo'
@@ -19,38 +36,29 @@ export * from './testDoubles/StreamInfo/SpyStreamInfo'
19
36
  export { default as FakeStreamInfo } from './testDoubles/StreamInfo/FakeStreamInfo'
20
37
  export * from './testDoubles/StreamInfo/FakeStreamInfo'
21
38
 
22
- // LslStreamInlet
23
-
24
- export { default as LslStreamInlet } from './modules/LslStreamInlet'
25
- export * from './modules/LslStreamInlet'
26
-
27
- export { default as FakeLslInlet } from './testDoubles/LslInlet/FakeLslInlet'
28
- export * from './testDoubles/LslInlet/FakeLslInlet'
39
+ // StreamInlet
29
40
 
30
- // LslStreamOutlet
41
+ export { default as LslStreamInlet } from './impl/LslStreamInlet'
42
+ export * from './impl/LslStreamInlet'
31
43
 
32
- export { default as LslStreamOutlet } from './modules/LslStreamOutlet'
33
- export * from './modules/LslStreamOutlet'
44
+ export { default as FakeStreamInlet } from './testDoubles/StreamInlet/FakeStreamInlet'
45
+ export * from './testDoubles/StreamInlet/FakeStreamInlet'
34
46
 
35
- export { default as FakeLslOutlet } from './testDoubles/LslOutlet/FakeLslOutlet'
36
- export * from './testDoubles/LslOutlet/FakeLslOutlet'
37
-
38
- // EventMarkerOutlet
47
+ // StreamOutlet
39
48
 
40
- export { default as EventMarkerOutlet } from './modules/EventMarkerOutlet'
41
- export * from './modules/EventMarkerOutlet'
49
+ export { default as LslStreamOutlet } from './impl/LslStreamOutlet'
50
+ export * from './impl/LslStreamOutlet'
42
51
 
43
- export { default as FakeMarkerOutlet } from './testDoubles/MarkerOutlet/FakeMarkerOutlet'
44
- export * from './testDoubles/MarkerOutlet/FakeMarkerOutlet'
52
+ export { default as FakeStreamOutlet } from './testDoubles/StreamOutlet/FakeStreamOutlet'
53
+ export * from './testDoubles/StreamOutlet/FakeStreamOutlet'
45
54
 
46
- export { default as MockMarkerOutlet } from './testDoubles/MarkerOutlet/MockMarkerOutlet'
47
- export * from './testDoubles/MarkerOutlet/MockMarkerOutlet'
55
+ // StreamTransportBridge
48
56
 
49
- export { default as SpyMarkerOutlet } from './testDoubles/MarkerOutlet/SpyMarkerOutlet'
50
- export * from './testDoubles/MarkerOutlet/SpyMarkerOutlet'
57
+ export { default as LslWebSocketBridge } from './impl/LslWebSocketBridge'
58
+ export * from './impl/LslWebSocketBridge'
51
59
 
52
- export { default as ThrowingMarkerOutlet } from './testDoubles/MarkerOutlet/ThrowingMarkerOutlet'
53
- export * from './testDoubles/MarkerOutlet/ThrowingMarkerOutlet'
60
+ export { default as FakeStreamTransportBridge } from './testDoubles/StreamTransportBridge/FakeStreamTransportBridge'
61
+ export * from './testDoubles/StreamTransportBridge/FakeStreamTransportBridge'
54
62
 
55
63
  // Utils
56
64
 
@@ -1,7 +1,7 @@
1
- import EventMarkerOutlet from '../modules/EventMarkerOutlet'
1
+ import LslEventMarkerOutlet from '../impl/LslEventMarkerOutlet'
2
2
 
3
3
  async function main() {
4
- const outlet = await EventMarkerOutlet.Create()
4
+ const outlet = await LslEventMarkerOutlet.Create()
5
5
 
6
6
  const markers = [
7
7
  { name: 'phase-1-begin', durationMs: 100 },
@@ -1,4 +1,4 @@
1
- import LslStreamOutlet from '../modules/LslStreamOutlet'
1
+ import LslStreamOutlet from '../impl/LslStreamOutlet'
2
2
 
3
3
  async function main() {
4
4
  const instance = await LslStreamOutlet.Create({
@@ -1,7 +1,7 @@
1
- import { MarkerOutlet } from '../../modules/EventMarkerOutlet'
1
+ import { EventMarkerOutlet } from '../../impl/LslEventMarkerOutlet'
2
2
  import { DurationMarker } from '../../types'
3
3
 
4
- export default class FakeMarkerOutlet implements MarkerOutlet {
4
+ export default class FakeEventMarkerOutlet implements EventMarkerOutlet {
5
5
  public static callsToPushMarker: string[] = []
6
6
  public static callsToPushMarkers: DurationMarker[][] = []
7
7
  public static numCallsToStop = 0
@@ -10,19 +10,19 @@ export default class FakeMarkerOutlet implements MarkerOutlet {
10
10
  public constructor() {}
11
11
 
12
12
  public pushMarker(markerName: string) {
13
- FakeMarkerOutlet.callsToPushMarker.push(markerName)
13
+ FakeEventMarkerOutlet.callsToPushMarker.push(markerName)
14
14
  }
15
15
 
16
16
  public async pushMarkers(markers: DurationMarker[]) {
17
- FakeMarkerOutlet.callsToPushMarkers.push(markers)
17
+ FakeEventMarkerOutlet.callsToPushMarkers.push(markers)
18
18
  }
19
19
 
20
20
  public stop() {
21
- FakeMarkerOutlet.numCallsToStop++
21
+ FakeEventMarkerOutlet.numCallsToStop++
22
22
  }
23
23
 
24
24
  public destroy() {
25
- FakeMarkerOutlet.numCallsToDestroy++
25
+ FakeEventMarkerOutlet.numCallsToDestroy++
26
26
  }
27
27
 
28
28
  public static resetTestDouble() {
@@ -1,8 +1,8 @@
1
1
  import { assert } from '@sprucelabs/test-utils'
2
- import { MarkerOutlet } from '../../modules/EventMarkerOutlet'
2
+ import { EventMarkerOutlet } from '../../impl/LslEventMarkerOutlet'
3
3
  import { DurationMarker, LslSample } from '../../types'
4
4
 
5
- export default class MockMarkerOutlet implements MarkerOutlet {
5
+ export default class MockEventMarkerOutlet implements EventMarkerOutlet {
6
6
  private didPushMarkers = false
7
7
  private pushedMarkers?: DurationMarker[]
8
8
  private didPushSamples = false
@@ -0,0 +1,24 @@
1
+ import LslEventMarkerOutlet from '../../impl/LslEventMarkerOutlet'
2
+ import { StreamOutlet } from '../../impl/LslStreamOutlet'
3
+
4
+ export default class SpyEventMarkerOutlet extends LslEventMarkerOutlet {
5
+ public totalWaitTimeMs: number
6
+
7
+ public constructor(outlet: StreamOutlet) {
8
+ super(outlet)
9
+ this.totalWaitTimeMs = 0
10
+ }
11
+
12
+ public async wait(durationMs: number) {
13
+ this.totalWaitTimeMs += durationMs
14
+ return Promise.resolve()
15
+ }
16
+
17
+ public getStreamOutlet() {
18
+ return this.streamOutlet
19
+ }
20
+
21
+ public resetTestDouble() {
22
+ this.totalWaitTimeMs = 0
23
+ }
24
+ }
@@ -1,7 +1,7 @@
1
- import { MarkerOutlet } from '../../modules/EventMarkerOutlet'
1
+ import { EventMarkerOutlet } from '../../impl/LslEventMarkerOutlet'
2
2
  import { DurationMarker } from '../../types'
3
3
 
4
- export default class ThrowingMarkerOutlet implements MarkerOutlet {
4
+ export default class ThrowingEventMarkerOutlet implements EventMarkerOutlet {
5
5
  private errorMsg = 'Intentional throwing: '
6
6
 
7
7
  public constructor() {
@@ -1,4 +1,4 @@
1
- import { StreamInfo, StreamInfoOptions } from '../../modules/LslStreamInfo'
1
+ import { StreamInfo, StreamInfoOptions } from '../../impl/LslStreamInfo'
2
2
  import { BoundStreamInfo } from '../../types'
3
3
 
4
4
  export default class FakeStreamInfo implements StreamInfo {
@@ -1,4 +1,4 @@
1
- import LslStreamInfo, { StreamInfoOptions } from '../../modules/LslStreamInfo'
1
+ import LslStreamInfo, { StreamInfoOptions } from '../../impl/LslStreamInfo'
2
2
 
3
3
  export default class SpyStreamInfo extends LslStreamInfo {
4
4
  public constructor(options: StreamInfoOptions) {
@@ -0,0 +1,20 @@
1
+ import { StreamInfo } from '../../impl/LslStreamInfo'
2
+ import { StreamInlet, StreamInletOptions } from '../../impl/LslStreamInlet'
3
+
4
+ export default class FakeStreamInlet implements StreamInlet {
5
+ public static callsToConstructor: {
6
+ info?: StreamInfo
7
+ options?: StreamInletOptions
8
+ }[] = []
9
+
10
+ public constructor(info?: StreamInfo, options?: StreamInletOptions) {
11
+ FakeStreamInlet.callsToConstructor.push({
12
+ info,
13
+ options,
14
+ })
15
+ }
16
+
17
+ public static resetTestDouble() {
18
+ FakeStreamInlet.callsToConstructor = []
19
+ }
20
+ }
@@ -0,0 +1,16 @@
1
+ import { StreamInfo } from '../../impl/LslStreamInfo'
2
+ import LslStreamInlet, { StreamInletOptions } from '../../impl/LslStreamInlet'
3
+
4
+ export class SpyStreamInlet extends LslStreamInlet {
5
+ public constructor(info: StreamInfo, options: StreamInletOptions) {
6
+ super(info, options)
7
+ }
8
+
9
+ public getName() {
10
+ return this.name
11
+ }
12
+
13
+ public getStreamInfo() {
14
+ return this.info
15
+ }
16
+ }
@@ -1,27 +1,31 @@
1
1
  import { randomInt } from 'crypto'
2
- import { generateId } from '@sprucelabs/test-utils'
3
- import { StreamInfo } from '../../modules/LslStreamInfo'
4
- import { LslOutlet, LslOutletOptions } from '../../modules/LslStreamOutlet'
2
+ import generateId from '@neurodevs/generate-id'
3
+ import { StreamInfo } from '../../impl/LslStreamInfo'
4
+ import { StreamOutlet, StreamOutletOptions } from '../../impl/LslStreamOutlet'
5
5
  import { LslSample } from '../../types'
6
6
 
7
- export default class FakeLslOutlet implements LslOutlet {
8
- public static callsToConstructor: CallToOutletConstructor[] = []
7
+ export default class FakeStreamOutlet implements StreamOutlet {
8
+ public static callsToConstructor: {
9
+ info?: StreamInfo
10
+ options?: StreamOutletOptions
11
+ }[] = []
12
+
9
13
  public static callsToPushSample: LslSample[] = []
10
14
  public static numCallsToDestroy = 0
11
15
 
12
- public options?: LslOutletOptions
16
+ public options?: StreamOutletOptions
13
17
 
14
- public constructor(info?: StreamInfo, options?: LslOutletOptions) {
15
- FakeLslOutlet.callsToConstructor.push({ info, options })
18
+ public constructor(info?: StreamInfo, options?: StreamOutletOptions) {
19
+ FakeStreamOutlet.callsToConstructor.push({ info, options })
16
20
  this.options = options
17
21
  }
18
22
 
19
23
  public destroy() {
20
- FakeLslOutlet.numCallsToDestroy++
24
+ FakeStreamOutlet.numCallsToDestroy++
21
25
  }
22
26
 
23
27
  public pushSample(sample: LslSample) {
24
- FakeLslOutlet.callsToPushSample.push(sample)
28
+ FakeStreamOutlet.callsToPushSample.push(sample)
25
29
  }
26
30
 
27
31
  public get name() {
@@ -69,13 +73,8 @@ export default class FakeLslOutlet implements LslOutlet {
69
73
  }
70
74
 
71
75
  public static resetTestDouble() {
72
- FakeLslOutlet.callsToConstructor = []
73
- FakeLslOutlet.callsToPushSample = []
74
- FakeLslOutlet.numCallsToDestroy = 0
76
+ FakeStreamOutlet.callsToConstructor = []
77
+ FakeStreamOutlet.callsToPushSample = []
78
+ FakeStreamOutlet.numCallsToDestroy = 0
75
79
  }
76
80
  }
77
-
78
- export interface CallToOutletConstructor {
79
- info?: StreamInfo
80
- options?: LslOutletOptions
81
- }
@@ -0,0 +1,15 @@
1
+ import { StreamTransportBridge } from '../../impl/LslWebSocketBridge'
2
+
3
+ export default class FakeStreamTransportBridge
4
+ implements StreamTransportBridge
5
+ {
6
+ public static numCallsToConstructor = 0
7
+
8
+ public constructor() {
9
+ FakeStreamTransportBridge.numCallsToConstructor++
10
+ }
11
+
12
+ public static resetTestDouble() {
13
+ FakeStreamTransportBridge.numCallsToConstructor = 0
14
+ }
15
+ }
@@ -1,6 +1,6 @@
1
1
  import { randomInt } from 'crypto'
2
- import { generateId } from '@sprucelabs/test-utils'
3
- import { LslOutletOptions } from '../modules/LslStreamOutlet'
2
+ import generateId from '@neurodevs/generate-id'
3
+ import { StreamOutletOptions } from '../impl/LslStreamOutlet'
4
4
  import { TEST_SUPPORTED_CHANNEL_FORMATS } from './consts'
5
5
 
6
6
  export default function generateRandomOutletOptions() {
@@ -17,5 +17,5 @@ export default function generateRandomOutletOptions() {
17
17
  unit: generateId(),
18
18
  chunkSize: randomInt(0, 10),
19
19
  maxBuffered: randomInt(0, 10),
20
- } as LslOutletOptions
20
+ } as StreamOutletOptions
21
21
  }
package/src/types.ts CHANGED
@@ -1,9 +1,9 @@
1
1
  import { FuncObj, FieldType } from 'ffi-rs'
2
2
  import { CHANNEL_FORMATS } from './consts'
3
- import { LslInlet } from './modules/LslStreamInlet'
4
- import { LslOutlet } from './modules/LslStreamOutlet'
3
+ import { StreamInlet } from './impl/LslStreamInlet'
4
+ import { StreamOutlet } from './impl/LslStreamOutlet'
5
5
 
6
- export type StreamFixuture = LslOutlet | LslInlet
6
+ export type StreamFixuture = StreamOutlet | StreamInlet
7
7
 
8
8
  export type ChannelFormat = (typeof CHANNEL_FORMATS)[number]
9
9
 
@@ -1,87 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || (function () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
24
- };
25
- return ownKeys(o);
26
- };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
33
- };
34
- })();
35
- var __importDefault = (this && this.__importDefault) || function (mod) {
36
- return (mod && mod.__esModule) ? mod : { "default": mod };
37
- };
38
- Object.defineProperty(exports, "__esModule", { value: true });
39
- const test_utils_1 = __importStar(require("@sprucelabs/test-utils"));
40
- const EventMarkerOutlet_1 = __importDefault(require("../modules/EventMarkerOutlet"));
41
- const LiblslAdapter_1 = __importDefault(require("../modules/LiblslAdapter"));
42
- const LslStreamInfo_1 = __importDefault(require("../modules/LslStreamInfo"));
43
- const LslStreamInlet_1 = __importDefault(require("../modules/LslStreamInlet"));
44
- const LslStreamOutlet_1 = __importDefault(require("../modules/LslStreamOutlet"));
45
- const FakeLiblsl_1 = __importDefault(require("../testDoubles/Liblsl/FakeLiblsl"));
46
- const SpyLslInlet_1 = require("../testDoubles/LslInlet/SpyLslInlet");
47
- const FakeLslOutlet_1 = __importDefault(require("../testDoubles/LslOutlet/FakeLslOutlet"));
48
- const SpyMarkerOutlet_1 = __importDefault(require("../testDoubles/MarkerOutlet/SpyMarkerOutlet"));
49
- const FakeStreamInfo_1 = __importDefault(require("../testDoubles/StreamInfo/FakeStreamInfo"));
50
- const SpyStreamInfo_1 = __importDefault(require("../testDoubles/StreamInfo/SpyStreamInfo"));
51
- class AbstractLslTest extends test_utils_1.default {
52
- static async beforeEach() {
53
- await super.beforeEach();
54
- this.setFakeLiblsl();
55
- }
56
- static setFakeLiblsl() {
57
- this.fakeLiblsl = new FakeLiblsl_1.default();
58
- LiblslAdapter_1.default.setInstance(this.fakeLiblsl);
59
- }
60
- static setSpyStreamInfo() {
61
- LslStreamInfo_1.default.Class = SpyStreamInfo_1.default;
62
- }
63
- static setFakeStreamInfo() {
64
- LslStreamInfo_1.default.Class = FakeStreamInfo_1.default;
65
- FakeStreamInfo_1.default.resetTestDouble();
66
- }
67
- static setSpyLslInlet() {
68
- LslStreamInlet_1.default.Class = SpyLslInlet_1.SpyLslInlet;
69
- }
70
- static setFakeLslOutlet() {
71
- LslStreamOutlet_1.default.Class = FakeLslOutlet_1.default;
72
- FakeLslOutlet_1.default.resetTestDouble();
73
- }
74
- static setSpyMarkerOutlet() {
75
- EventMarkerOutlet_1.default.Class = SpyMarkerOutlet_1.default;
76
- }
77
- }
78
- AbstractLslTest.name_ = (0, test_utils_1.generateId)();
79
- AbstractLslTest.type = (0, test_utils_1.generateId)();
80
- AbstractLslTest.sourceId = (0, test_utils_1.generateId)();
81
- AbstractLslTest.units = (0, test_utils_1.generateId)();
82
- AbstractLslTest.channelNames = [(0, test_utils_1.generateId)(), (0, test_utils_1.generateId)()];
83
- AbstractLslTest.chunkSize = Math.floor(Math.random() * 100);
84
- AbstractLslTest.maxBuffered = Math.floor(Math.random() * 100);
85
- AbstractLslTest.sampleRate = Math.floor(Math.random() * 100);
86
- exports.default = AbstractLslTest;
87
- //# sourceMappingURL=AbstractLslTest.js.map