@neurodevs/node-lsl 11.0.1 → 11.2.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 (48) hide show
  1. package/build/__tests__/EventMarkerOutlet.test.d.ts +1 -0
  2. package/build/__tests__/EventMarkerOutlet.test.js +8 -0
  3. package/build/__tests__/EventMarkerOutlet.test.js.map +1 -1
  4. package/build/__tests__/LslStreamOutlet.test.d.ts +1 -1
  5. package/build/adapters/LiblslAdapter.d.ts +4 -4
  6. package/build/assertions.d.ts +1 -1
  7. package/build/components/EventMarkerOutlet.d.ts +4 -1
  8. package/build/components/EventMarkerOutlet.js +9 -2
  9. package/build/components/EventMarkerOutlet.js.map +1 -1
  10. package/build/components/LslStreamInfo.d.ts +2 -2
  11. package/build/components/LslStreamInlet.d.ts +1 -1
  12. package/build/components/LslStreamOutlet.d.ts +1 -1
  13. package/build/index.d.ts +3 -1
  14. package/build/index.js +6 -2
  15. package/build/index.js.map +1 -1
  16. package/build/testDoubles/Liblsl/FakeLiblsl.d.ts +1 -1
  17. package/build/testDoubles/LslOutlet/FakeLslOutlet.d.ts +1 -1
  18. package/build/testDoubles/MarkerOutlet/FakeMarkerOutlet.d.ts +6 -4
  19. package/build/testDoubles/MarkerOutlet/FakeMarkerOutlet.js +14 -10
  20. package/build/testDoubles/MarkerOutlet/FakeMarkerOutlet.js.map +1 -1
  21. package/build/testDoubles/MarkerOutlet/MockMarkerOutlet.d.ts +2 -1
  22. package/build/testDoubles/MarkerOutlet/MockMarkerOutlet.js +9 -2
  23. package/build/testDoubles/MarkerOutlet/MockMarkerOutlet.js.map +1 -1
  24. package/build/testDoubles/MarkerOutlet/ThrowingMarkerOutlet.d.ts +10 -0
  25. package/build/testDoubles/MarkerOutlet/ThrowingMarkerOutlet.js +22 -0
  26. package/build/testDoubles/MarkerOutlet/ThrowingMarkerOutlet.js.map +1 -0
  27. package/build/testDoubles/StreamInfo/FakeStreamInfo.d.ts +1 -1
  28. package/build/types.d.ts +90 -0
  29. package/build/types.js +3 -0
  30. package/build/types.js.map +1 -0
  31. package/package.json +1 -1
  32. package/src/__tests__/EventMarkerOutlet.test.ts +8 -0
  33. package/src/__tests__/LiblslAdapter.test.ts +1 -1
  34. package/src/__tests__/LslStreamOutlet.test.ts +1 -1
  35. package/src/adapters/LiblslAdapter.ts +1 -1
  36. package/src/assertions.ts +1 -1
  37. package/src/components/EventMarkerOutlet.ts +13 -3
  38. package/src/components/LslStreamInfo.ts +1 -1
  39. package/src/components/LslStreamInlet.ts +1 -1
  40. package/src/components/LslStreamOutlet.ts +1 -1
  41. package/src/index.ts +6 -1
  42. package/src/testDoubles/Liblsl/FakeLiblsl.ts +1 -1
  43. package/src/testDoubles/LslOutlet/FakeLslOutlet.ts +1 -1
  44. package/src/testDoubles/MarkerOutlet/FakeMarkerOutlet.ts +16 -14
  45. package/src/testDoubles/MarkerOutlet/MockMarkerOutlet.ts +12 -3
  46. package/src/testDoubles/MarkerOutlet/ThrowingMarkerOutlet.ts +26 -0
  47. package/src/testDoubles/StreamInfo/FakeStreamInfo.ts +1 -1
  48. /package/src/{nodeLsl.types.ts → types.ts} +0 -0
@@ -10,6 +10,7 @@ export default class EventMarkerOutletTest extends AbstractLslTest {
10
10
  protected static canStartAgainAfterStopping(): Promise<void>;
11
11
  protected static doesNotWaitIfStopped(): Promise<void>;
12
12
  protected static clearsTheTimeoutOnStop(): Promise<void>;
13
+ protected static pushMarkerCallsPushSampleOnMarkerOutlet(): Promise<void>;
13
14
  private static get lslOutlet();
14
15
  private static setupOutlet;
15
16
  private static pushTotalMarkers;
@@ -90,6 +90,11 @@ class EventMarkerOutletTest extends AbstractLslTest_1.default {
90
90
  this.instance.stop();
91
91
  this.lslOutlet.pushSample = () => test_utils_1.assert.fail('Should not have been called');
92
92
  }
93
+ static async pushMarkerCallsPushSampleOnMarkerOutlet() {
94
+ const markerName = (0, test_utils_1.generateId)();
95
+ this.instance.pushMarker(markerName);
96
+ test_utils_1.assert.isEqual(FakeLslOutlet_1.default.callsToPushSample[0][0], markerName);
97
+ }
93
98
  static get lslOutlet() {
94
99
  return this.instance.getLslOutlet();
95
100
  }
@@ -141,4 +146,7 @@ __decorate([
141
146
  __decorate([
142
147
  (0, test_utils_1.test)()
143
148
  ], EventMarkerOutletTest, "clearsTheTimeoutOnStop", null);
149
+ __decorate([
150
+ (0, test_utils_1.test)()
151
+ ], EventMarkerOutletTest, "pushMarkerCallsPushSampleOnMarkerOutlet", null);
144
152
  //# sourceMappingURL=EventMarkerOutlet.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"EventMarkerOutlet.test.js","sourceRoot":"","sources":["../../src/__tests__/EventMarkerOutlet.test.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,mCAAkC;AAClC,uDAAiE;AACjE,wFAA+D;AAE/D,6GAAoF;AACpF,2FAAkE;AAElE,wEAA+C;AAE/C,MAAqB,qBAAsB,SAAQ,yBAAe;IAGpD,MAAM,CAAC,KAAK,CAAC,UAAU;QAC7B,MAAM,KAAK,CAAC,UAAU,EAAE,CAAA;QAExB,IAAI,CAAC,aAAa,EAAE,CAAA;QACpB,IAAI,CAAC,gBAAgB,EAAE,CAAA;QACvB,IAAI,CAAC,kBAAkB,EAAE,CAAA;QAEzB,IAAI,CAAC,QAAQ,GAAG,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAA;IAClD,CAAC;IAGsB,AAAb,MAAM,CAAC,KAAK,CAAC,mCAAmC;QACtD,mBAAM,CAAC,WAAW,CAAC,uBAAa,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE;YAC5D,IAAI,EAAE,eAAe;YACrB,IAAI,EAAE,SAAS;YACf,YAAY,EAAE,CAAC,SAAS,CAAC;YACzB,UAAU,EAAE,CAAC;YACb,aAAa,EAAE,QAAQ;YACvB,QAAQ,EAAE,eAAe;YACzB,YAAY,EAAE,KAAK;YACnB,IAAI,EAAE,KAAK;YACX,SAAS,EAAE,CAAC;YACZ,WAAW,EAAE,CAAC;SACjB,CAAC,CAAA;IACN,CAAC;IAGsB,AAAb,MAAM,CAAC,KAAK,CAAC,yBAAyB;QAC5C,MAAM,OAAO,GAAG,IAAA,qCAA2B,GAAE,CAAA;QAC7C,MAAM,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAA;QAErC,mBAAM,CAAC,WAAW,CAAC,uBAAa,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;IAC5E,CAAC;IAGsB,AAAb,MAAM,CAAC,KAAK,CAAC,gDAAgD;QACnE,MAAM,OAAO,GAAG,CAAC,IAAI,CAAC,sBAAsB,EAAE,CAAC,CAAA;QAC/C,MAAM,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,OAAO,CAAC,CAAA;QAExC,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAAA;QAEzB,mBAAM,CAAC,OAAO,CACV,uBAAa,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EACrC,MAAM,CAAC,IAAI,EACX,0BAA0B,CAC7B,CAAA;QAED,mBAAM,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC,UAAU,CAAC,CAAA;IACpE,CAAC;IAGsB,AAAb,MAAM,CAAC,KAAK,CAAC,mDAAmD;QACtE,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAA;QAE9C,mBAAM,CAAC,OAAO,CAAC,uBAAa,CAAC,iBAAiB,CAAC,MAAM,EAAE,CAAC,CAAC,CAAA;QAEzD,mBAAM,CAAC,OAAO,CACV,IAAI,CAAC,QAAQ,CAAC,eAAe,EAC7B,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,CAChD,CAAA;IACL,CAAC;IAKsB,AAAb,MAAM,CAAC,KAAK,CAAC,0BAA0B,CAAC,OAAe;QAC7D,IAAI,QAAQ,GAAG,CAAC,CAAA;QAEhB,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE,CAAA;QAE3C,MAAM,CAAC,UAAU,GAAG,GAAG,EAAE;YACrB,QAAQ,IAAI,CAAC,CAAA;YACb,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;gBACvB,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAA;YACxB,CAAC;QACL,CAAC,CAAA;QAED,MAAM,IAAI,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAA;QAE/B,mBAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;IACrC,CAAC;IAGsB,AAAb,MAAM,CAAC,KAAK,CAAC,0BAA0B;QAC7C,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAA;QAEpB,IAAI,QAAQ,GAAG,CAAC,CAAA;QAEhB,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE,CAAA;QAE3C,MAAM,CAAC,UAAU,GAAG,GAAG,EAAE;YACrB,QAAQ,EAAE,CAAA;QACd,CAAC,CAAA;QAED,MAAM,IAAI,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAA;QAE/B,mBAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAA;IAChC,CAAC;IAGsB,AAAb,MAAM,CAAC,KAAK,CAAC,oBAAoB;QACvC,MAAM,IAAI,CAAC,WAAW,EAAE,CAAA;QAExB,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;QAC1B,MAAM,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC,CAAC,EAAE,IAAI,CAAC,CAAA;QAC9C,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAA;QACpB,MAAM,OAAO,CAAA;QACb,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;QAExB,mBAAM,CAAC,OAAO,CAAC,KAAK,GAAG,OAAO,EAAE,EAAE,CAAC,CAAA;IACvC,CAAC;IAGsB,AAAb,MAAM,CAAC,KAAK,CAAC,sBAAsB;QACzC,KAAK,IAAI,CAAC,gBAAgB,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;QAClC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAA;QAEpB,IAAI,CAAC,SAAS,CAAC,UAAU,GAAG,GAAG,EAAE,CAC7B,mBAAM,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAA;IAClD,CAAC;IAEO,MAAM,KAAK,SAAS;QACxB,OAAO,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE,CAAA;IACvC,CAAC;IAEO,MAAM,CAAC,KAAK,CAAC,WAAW;QAC5B,2BAAiB,CAAC,KAAK,GAAG,2BAAwB,CAAA;QAClD,IAAI,CAAC,QAAQ,GAAG,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAA;IAClD,CAAC;IAEO,MAAM,CAAC,KAAK,CAAC,gBAAgB,CAAC,KAAa,EAAE,UAAmB;QACpE,MAAM,OAAO,GAAG,IAAI,KAAK,CAAC,KAAK,CAAC;aAC3B,IAAI,CAAC,IAAI,CAAC;aACV,GAAG,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,sBAAsB,CAAC,UAAU,CAAC,CAAC,CAAA;QAEvD,MAAM,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,OAAO,CAAC,CAAA;QAExC,OAAO,OAAO,CAAA;IAClB,CAAC;IAEO,MAAM,CAAC,sBAAsB,CAAC,UAAmB;QACrD,OAAO;YACH,IAAI,EAAE,IAAA,uBAAU,GAAE;YAClB,UAAU,EAAE,UAAU,IAAI,IAAA,kBAAS,EAAC,GAAG,EAAE,IAAI,CAAC;SACjD,CAAA;IACL,CAAC;IAEO,MAAM,CAAC,KAAK,CAAC,iBAAiB,CAClC,OAAmC;QAEnC,OAAO,CAAC,MAAM,2BAAiB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAoB,CAAA;IACvE,CAAC;CACJ;AA3JD,wCA2JC;AA7I0B;IADtB,IAAA,iBAAI,GAAE;sEAcN;AAGsB;IADtB,IAAA,iBAAI,GAAE;4DAMN;AAGsB;IADtB,IAAA,iBAAI,GAAE;mFAcN;AAGsB;IADtB,IAAA,iBAAI,GAAE;sFAUN;AAKsB;IAHtB,IAAA,iBAAI,EAAC,8BAA8B,EAAE,CAAC,CAAC;IACvC,IAAA,iBAAI,EAAC,+BAA+B,EAAE,CAAC,CAAC;IACxC,IAAA,iBAAI,EAAC,8BAA8B,EAAE,CAAC,CAAC;6DAgBvC;AAGsB;IADtB,IAAA,iBAAI,GAAE;6DAeN;AAGsB;IADtB,IAAA,iBAAI,GAAE;uDAWN;AAGsB;IADtB,IAAA,iBAAI,GAAE;yDAON"}
1
+ {"version":3,"file":"EventMarkerOutlet.test.js","sourceRoot":"","sources":["../../src/__tests__/EventMarkerOutlet.test.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { LslSample } from '../nodeLsl.types';
1
+ import { LslSample } from '../types';
2
2
  import AbstractLslTest from './AbstractLslTest';
3
3
  export default class LslStreamOutletTest extends AbstractLslTest {
4
4
  private static randomOutletOptions;
@@ -1,5 +1,5 @@
1
1
  import { define, open } from 'ffi-rs';
2
- import { Liblsl, CreateStreamInfoOptions, AppendChannelsToStreamInfoOptions, CreateOutletOptions, DestroyOutletOptions, PushSampleFloatTimestampOptions, PushSampleStringTimestampOptions, CreateInletOptions, DestroyInletOptions } from '../nodeLsl.types';
2
+ import { Liblsl, CreateStreamInfoOptions, AppendChannelsToStreamInfoOptions, CreateOutletOptions, DestroyOutletOptions, PushSampleFloatTimestampOptions, PushSampleStringTimestampOptions, CreateInletOptions, DestroyInletOptions } from '../types';
3
3
  export default class LiblslAdapter implements Liblsl {
4
4
  private static instance?;
5
5
  static ffiRsOpen: typeof open;
@@ -11,13 +11,13 @@ export default class LiblslAdapter implements Liblsl {
11
11
  static setInstance(instance: Liblsl): void;
12
12
  static resetInstance(): void;
13
13
  private loadBindings;
14
- createStreamInfo(options: CreateStreamInfoOptions): import("../nodeLsl.types").BoundStreamInfo;
14
+ createStreamInfo(options: CreateStreamInfoOptions): import("../types").BoundStreamInfo;
15
15
  appendChannelsToStreamInfo(options: AppendChannelsToStreamInfoOptions): void;
16
- createOutlet(options: CreateOutletOptions): import("../nodeLsl.types").BoundOutlet;
16
+ createOutlet(options: CreateOutletOptions): import("../types").BoundOutlet;
17
17
  pushSampleFloatTimestamp(options: PushSampleFloatTimestampOptions): void;
18
18
  pushSampleStringTimestamp(options: PushSampleStringTimestampOptions): void;
19
19
  destroyOutlet(options: DestroyOutletOptions): void;
20
- createInlet(options: CreateInletOptions): import("../nodeLsl.types").BoundInlet;
20
+ createInlet(options: CreateInletOptions): import("../types").BoundInlet;
21
21
  destroyInlet(_options: DestroyInletOptions): void;
22
22
  localClock(): number;
23
23
  private readonly defaultMacOsPath;
@@ -1,4 +1,4 @@
1
- import { ChannelFormat } from './nodeLsl.types';
1
+ import { ChannelFormat } from './types';
2
2
  export declare function assertValidMaxBuffered(maxBuffered: number): void;
3
3
  export declare function assertValidChunkSize(chunkSize: number): void;
4
4
  export declare function assertValidChannelFormat(channelFormat: ChannelFormat): void;
@@ -1,4 +1,4 @@
1
- import { DurationMarker } from '../nodeLsl.types';
1
+ import { DurationMarker } from '../types';
2
2
  import { LslOutletOptions, LslOutlet } from './LslStreamOutlet';
3
3
  export default class EventMarkerOutlet implements MarkerOutlet {
4
4
  static Class?: MarkerOutletConstructor;
@@ -8,12 +8,15 @@ export default class EventMarkerOutlet implements MarkerOutlet {
8
8
  private timeout?;
9
9
  protected constructor(lslOutlet: LslOutlet);
10
10
  static Create(options?: Partial<LslOutletOptions>): Promise<MarkerOutlet>;
11
+ pushMarker(markerName: string): void;
11
12
  pushMarkers(markers: DurationMarker[]): Promise<void>;
13
+ private pushMarkerToOutlet;
12
14
  protected wait(durationMs: number): Promise<unknown>;
13
15
  private setTimeout;
14
16
  stop(): void;
15
17
  }
16
18
  export interface MarkerOutlet {
19
+ pushMarker(markerName: string): void;
17
20
  pushMarkers(markers: DurationMarker[]): Promise<void>;
18
21
  stop(): void;
19
22
  }
@@ -28,16 +28,23 @@ class EventMarkerOutlet {
28
28
  });
29
29
  return new (this.Class ?? this)(outlet);
30
30
  }
31
+ pushMarker(markerName) {
32
+ this.pushMarkerToOutlet(markerName);
33
+ }
31
34
  async pushMarkers(markers) {
32
35
  this.isPlaying = true;
33
36
  for (let marker of markers) {
34
- this.lslOutlet.pushSample([marker.name]);
35
- await this.wait(marker.durationMs);
37
+ const { name, durationMs } = marker;
38
+ this.pushMarkerToOutlet(name);
39
+ await this.wait(durationMs);
36
40
  if (!this.isPlaying) {
37
41
  return;
38
42
  }
39
43
  }
40
44
  }
45
+ pushMarkerToOutlet(markerName) {
46
+ this.lslOutlet.pushSample([markerName]);
47
+ }
41
48
  async wait(durationMs) {
42
49
  return new Promise((resolve) => this.setTimeout(resolve, durationMs));
43
50
  }
@@ -1 +1 @@
1
- {"version":3,"file":"EventMarkerOutlet.js","sourceRoot":"","sources":["../../src/components/EventMarkerOutlet.ts"],"names":[],"mappings":";;;;;AACA,wEAAgF;AAEhF,MAAqB,iBAAiB;IAQlC,YAAsB,SAAoB;QAJlC,cAAS,GAAG,KAAK,CAAA;QAKrB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAA;IAC9B,CAAC;IAEM,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,OAAmC;QAC1D,MAAM,cAAc,GAAG;YACnB,IAAI,EAAE,eAAe;YACrB,IAAI,EAAE,SAAS;YACf,YAAY,EAAE,CAAC,SAAS,CAAC;YACzB,UAAU,EAAE,CAAC;YACb,aAAa,EAAE,QAAQ;YACvB,QAAQ,EAAE,eAAe;YACzB,YAAY,EAAE,KAAK;YACnB,IAAI,EAAE,KAAK;YACX,SAAS,EAAE,CAAC;YACZ,WAAW,EAAE,CAAC;SACG,CAAA;QAErB,MAAM,MAAM,GAAG,MAAM,yBAAe,CAAC,MAAM,CAAC;YACxC,GAAG,cAAc;YACjB,GAAG,OAAO;SACb,CAAC,CAAA;QAEF,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,MAAM,CAAC,CAAA;IAC3C,CAAC;IAEM,KAAK,CAAC,WAAW,CAAC,OAAyB;QAC9C,IAAI,CAAC,SAAS,GAAG,IAAI,CAAA;QAErB,KAAK,IAAI,MAAM,IAAI,OAAO,EAAE,CAAC;YACzB,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAA;YAExC,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAA;YAElC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;gBAClB,OAAM;YACV,CAAC;QACL,CAAC;IACL,CAAC;IAES,KAAK,CAAC,IAAI,CAAC,UAAkB;QACnC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC,CAAA;IACzE,CAAC;IAEO,UAAU,CAAC,OAAiC,EAAE,UAAkB;QACpE,IAAI,CAAC,WAAW,GAAG,OAAc,CAAA;QACjC,IAAI,CAAC,OAAO,GAAG,UAAU,CAAC,OAAO,EAAE,UAAU,CAAC,CAAA;IAClD,CAAC;IAEM,IAAI;QACP,IAAI,CAAC,WAAW,EAAE,EAAE,CAAA;QACpB,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QAC1B,IAAI,CAAC,SAAS,GAAG,KAAK,CAAA;IAC1B,CAAC;CACJ;AA9DD,oCA8DC"}
1
+ {"version":3,"file":"EventMarkerOutlet.js","sourceRoot":"","sources":["../../src/components/EventMarkerOutlet.ts"],"names":[],"mappings":";;;;;AACA,wEAAgF;AAEhF,MAAqB,iBAAiB;IAQlC,YAAsB,SAAoB;QAJlC,cAAS,GAAG,KAAK,CAAA;QAKrB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAA;IAC9B,CAAC;IAEM,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,OAAmC;QAC1D,MAAM,cAAc,GAAG;YACnB,IAAI,EAAE,eAAe;YACrB,IAAI,EAAE,SAAS;YACf,YAAY,EAAE,CAAC,SAAS,CAAC;YACzB,UAAU,EAAE,CAAC;YACb,aAAa,EAAE,QAAQ;YACvB,QAAQ,EAAE,eAAe;YACzB,YAAY,EAAE,KAAK;YACnB,IAAI,EAAE,KAAK;YACX,SAAS,EAAE,CAAC;YACZ,WAAW,EAAE,CAAC;SACG,CAAA;QAErB,MAAM,MAAM,GAAG,MAAM,yBAAe,CAAC,MAAM,CAAC;YACxC,GAAG,cAAc;YACjB,GAAG,OAAO;SACb,CAAC,CAAA;QAEF,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,MAAM,CAAC,CAAA;IAC3C,CAAC;IAEM,UAAU,CAAC,UAAkB;QAChC,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,CAAA;IACvC,CAAC;IAEM,KAAK,CAAC,WAAW,CAAC,OAAyB;QAC9C,IAAI,CAAC,SAAS,GAAG,IAAI,CAAA;QAErB,KAAK,IAAI,MAAM,IAAI,OAAO,EAAE,CAAC;YACzB,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,MAAM,CAAA;YACnC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAA;YAE7B,MAAM,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;YAE3B,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;gBAClB,OAAM;YACV,CAAC;QACL,CAAC;IACL,CAAC;IAEO,kBAAkB,CAAC,UAAkB;QACzC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,UAAU,CAAC,CAAC,CAAA;IAC3C,CAAC;IAES,KAAK,CAAC,IAAI,CAAC,UAAkB;QACnC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC,CAAA;IACzE,CAAC;IAEO,UAAU,CAAC,OAAiC,EAAE,UAAkB;QACpE,IAAI,CAAC,WAAW,GAAG,OAAc,CAAA;QACjC,IAAI,CAAC,OAAO,GAAG,UAAU,CAAC,OAAO,EAAE,UAAU,CAAC,CAAA;IAClD,CAAC;IAEM,IAAI;QACP,IAAI,CAAC,WAAW,EAAE,EAAE,CAAA;QACpB,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QAC1B,IAAI,CAAC,SAAS,GAAG,KAAK,CAAA;IAC1B,CAAC;CACJ;AAvED,oCAuEC"}
@@ -1,4 +1,4 @@
1
- import { BoundStreamInfo, ChannelFormat } from '../nodeLsl.types';
1
+ import { BoundStreamInfo, ChannelFormat } from '../types';
2
2
  export default class LslStreamInfo implements StreamInfo {
3
3
  static Class?: StreamInfoConstructor;
4
4
  protected name: string;
@@ -10,7 +10,7 @@ export default class LslStreamInfo implements StreamInfo {
10
10
  private channelFormat;
11
11
  private sampleRate;
12
12
  protected constructor(options: StreamInfoOptions);
13
- static Create(options: StreamInfoOptions): LslStreamInfo | StreamInfo;
13
+ static Create(options: StreamInfoOptions): StreamInfo | LslStreamInfo;
14
14
  private createStreamInfo;
15
15
  private appendChannelsToStreamInfo;
16
16
  get boundStreamInfo(): BoundStreamInfo;
@@ -1,4 +1,4 @@
1
- import { ChannelFormat } from '../nodeLsl.types';
1
+ import { ChannelFormat } from '../types';
2
2
  import { StreamInfo } from './LslStreamInfo';
3
3
  export default class LslStreamInlet implements LslInlet {
4
4
  static Class?: LslInletConstructor;
@@ -1,4 +1,4 @@
1
- import { ChannelFormat, LslSample } from '../nodeLsl.types';
1
+ import { ChannelFormat, LslSample } from '../types';
2
2
  import { StreamInfo } from './LslStreamInfo';
3
3
  export default class LslStreamOutlet implements LslOutlet {
4
4
  static Class?: LslOutletConstructor;
package/build/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- export * from './nodeLsl.types';
1
+ export * from './types';
2
2
  export { default as LiblslAdapter } from './adapters/LiblslAdapter';
3
3
  export * from './adapters/LiblslAdapter';
4
4
  export { default as FakeLiblsl } from './testDoubles/Liblsl/FakeLiblsl';
@@ -21,4 +21,6 @@ export { default as MockMarkerOutlet } from './testDoubles/MarkerOutlet/MockMark
21
21
  export * from './testDoubles/MarkerOutlet/MockMarkerOutlet';
22
22
  export { default as SpyMarkerOutlet } from './testDoubles/MarkerOutlet/SpyMarkerOutlet';
23
23
  export * from './testDoubles/MarkerOutlet/SpyMarkerOutlet';
24
+ export { default as ThrowingMarkerOutlet } from './testDoubles/MarkerOutlet/ThrowingMarkerOutlet';
25
+ export * from './testDoubles/MarkerOutlet/ThrowingMarkerOutlet';
24
26
  export { default as generateRandomOutletOptions } from './testDoubles/generateRandomOutletOptions';
package/build/index.js CHANGED
@@ -17,8 +17,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
17
17
  return (mod && mod.__esModule) ? mod : { "default": mod };
18
18
  };
19
19
  Object.defineProperty(exports, "__esModule", { value: true });
20
- exports.generateRandomOutletOptions = exports.SpyMarkerOutlet = exports.MockMarkerOutlet = exports.FakeMarkerOutlet = exports.EventMarkerOutlet = exports.FakeLslOutlet = exports.LslStreamOutlet = exports.FakeStreamInfo = exports.SpyStreamInfo = exports.LslStreamInfo = exports.FakeLiblsl = exports.LiblslAdapter = void 0;
21
- __exportStar(require("./nodeLsl.types"), exports);
20
+ exports.generateRandomOutletOptions = exports.ThrowingMarkerOutlet = exports.SpyMarkerOutlet = exports.MockMarkerOutlet = exports.FakeMarkerOutlet = exports.EventMarkerOutlet = exports.FakeLslOutlet = exports.LslStreamOutlet = exports.FakeStreamInfo = exports.SpyStreamInfo = exports.LslStreamInfo = exports.FakeLiblsl = exports.LiblslAdapter = void 0;
21
+ __exportStar(require("./types"), exports);
22
22
  // Liblsl
23
23
  var LiblslAdapter_1 = require("./adapters/LiblslAdapter");
24
24
  Object.defineProperty(exports, "LiblslAdapter", { enumerable: true, get: function () { return __importDefault(LiblslAdapter_1).default; } });
@@ -56,6 +56,10 @@ __exportStar(require("./testDoubles/MarkerOutlet/MockMarkerOutlet"), exports);
56
56
  var SpyMarkerOutlet_1 = require("./testDoubles/MarkerOutlet/SpyMarkerOutlet");
57
57
  Object.defineProperty(exports, "SpyMarkerOutlet", { enumerable: true, get: function () { return __importDefault(SpyMarkerOutlet_1).default; } });
58
58
  __exportStar(require("./testDoubles/MarkerOutlet/SpyMarkerOutlet"), exports);
59
+ var ThrowingMarkerOutlet_1 = require("./testDoubles/MarkerOutlet/ThrowingMarkerOutlet");
60
+ Object.defineProperty(exports, "ThrowingMarkerOutlet", { enumerable: true, get: function () { return __importDefault(ThrowingMarkerOutlet_1).default; } });
61
+ __exportStar(require("./testDoubles/MarkerOutlet/ThrowingMarkerOutlet"), exports);
62
+ // Utils
59
63
  var generateRandomOutletOptions_1 = require("./testDoubles/generateRandomOutletOptions");
60
64
  Object.defineProperty(exports, "generateRandomOutletOptions", { enumerable: true, get: function () { return __importDefault(generateRandomOutletOptions_1).default; } });
61
65
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA,kDAA+B;AAE/B,SAAS;AAET,0DAAmE;AAA1D,+HAAA,OAAO,OAAiB;AACjC,2DAAwC;AAExC,8DAAuE;AAA9D,yHAAA,OAAO,OAAc;AAC9B,kEAA+C;AAE/C,gBAAgB;AAEhB,4DAAqE;AAA5D,+HAAA,OAAO,OAAiB;AACjC,6DAA0C;AAE1C,wEAAiF;AAAxE,+HAAA,OAAO,OAAiB;AACjC,yEAAsD;AAEtD,0EAAmF;AAA1E,iIAAA,OAAO,OAAkB;AAClC,0EAAuD;AAEvD,kBAAkB;AAElB,gEAAyE;AAAhE,mIAAA,OAAO,OAAmB;AACnC,+DAA4C;AAE5C,uEAAgF;AAAvE,+HAAA,OAAO,OAAiB;AACjC,wEAAqD;AAErD,oBAAoB;AAEpB,oEAA6E;AAApE,uIAAA,OAAO,OAAqB;AACrC,iEAA8C;AAE9C,gFAAyF;AAAhF,qIAAA,OAAO,OAAoB;AACpC,8EAA2D;AAE3D,gFAAyF;AAAhF,qIAAA,OAAO,OAAoB;AACpC,8EAA2D;AAE3D,8EAAuF;AAA9E,mIAAA,OAAO,OAAmB;AACnC,6EAA0D;AAE1D,yFAAkG;AAAzF,2JAAA,OAAO,OAA+B"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA,0CAAuB;AAEvB,SAAS;AAET,0DAAmE;AAA1D,+HAAA,OAAO,OAAiB;AACjC,2DAAwC;AAExC,8DAAuE;AAA9D,yHAAA,OAAO,OAAc;AAC9B,kEAA+C;AAE/C,gBAAgB;AAEhB,4DAAqE;AAA5D,+HAAA,OAAO,OAAiB;AACjC,6DAA0C;AAE1C,wEAAiF;AAAxE,+HAAA,OAAO,OAAiB;AACjC,yEAAsD;AAEtD,0EAAmF;AAA1E,iIAAA,OAAO,OAAkB;AAClC,0EAAuD;AAEvD,kBAAkB;AAElB,gEAAyE;AAAhE,mIAAA,OAAO,OAAmB;AACnC,+DAA4C;AAE5C,uEAAgF;AAAvE,+HAAA,OAAO,OAAiB;AACjC,wEAAqD;AAErD,oBAAoB;AAEpB,oEAA6E;AAApE,uIAAA,OAAO,OAAqB;AACrC,iEAA8C;AAE9C,gFAAyF;AAAhF,qIAAA,OAAO,OAAoB;AACpC,8EAA2D;AAE3D,gFAAyF;AAAhF,qIAAA,OAAO,OAAoB;AACpC,8EAA2D;AAE3D,8EAAuF;AAA9E,mIAAA,OAAO,OAAmB;AACnC,6EAA0D;AAE1D,wFAAiG;AAAxF,6IAAA,OAAO,OAAwB;AACxC,kFAA+D;AAE/D,QAAQ;AAER,yFAAkG;AAAzF,2JAAA,OAAO,OAA+B"}
@@ -1,4 +1,4 @@
1
- import { BoundOutlet, BoundStreamInfo, CreateStreamInfoOptions, AppendChannelsToStreamInfoOptions, CreateOutletOptions, PushSampleFloatTimestampOptions, PushSampleStringTimestampOptions, Liblsl, CreateInletOptions, DestroyInletOptions, BoundInlet } from '../../nodeLsl.types';
1
+ import { BoundOutlet, BoundStreamInfo, CreateStreamInfoOptions, AppendChannelsToStreamInfoOptions, CreateOutletOptions, PushSampleFloatTimestampOptions, PushSampleStringTimestampOptions, Liblsl, CreateInletOptions, DestroyInletOptions, BoundInlet } from '../../types';
2
2
  export default class FakeLiblsl implements Liblsl {
3
3
  outlet: BoundOutlet;
4
4
  streamInfo: BoundStreamInfo;
@@ -1,6 +1,6 @@
1
1
  import { StreamInfo } from '../../components/LslStreamInfo';
2
2
  import { LslOutlet, LslOutletOptions } from '../../components/LslStreamOutlet';
3
- import { LslSample } from '../../nodeLsl.types';
3
+ import { LslSample } from '../../types';
4
4
  export default class FakeLslOutlet implements LslOutlet {
5
5
  static callsToConstructor: CallToConstructor[];
6
6
  static callsToPushSample: LslSample[];
@@ -1,10 +1,12 @@
1
1
  import { MarkerOutlet } from '../../components/EventMarkerOutlet';
2
- import { DurationMarker } from '../../nodeLsl.types';
2
+ import { DurationMarker } from '../../types';
3
3
  export default class FakeMarkerOutlet implements MarkerOutlet {
4
- static pushMarkersCalls: DurationMarker[][];
5
- static numStopCalls: number;
6
- static numDestroyCalls: number;
4
+ static callsToPushMarker: string[];
5
+ static callsToPushMarkers: DurationMarker[][];
6
+ static numCallsToStop: number;
7
+ static numCallsToDestroy: number;
7
8
  constructor();
9
+ pushMarker(markerName: string): void;
8
10
  pushMarkers(markers: DurationMarker[]): Promise<void>;
9
11
  stop(): void;
10
12
  destroy(): void;
@@ -1,25 +1,29 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  class FakeMarkerOutlet {
4
- constructor() {
5
- FakeMarkerOutlet.pushMarkersCalls = [];
6
- FakeMarkerOutlet.numStopCalls = 0;
7
- FakeMarkerOutlet.numDestroyCalls = 0;
4
+ constructor() { }
5
+ pushMarker(markerName) {
6
+ FakeMarkerOutlet.callsToPushMarker.push(markerName);
8
7
  }
9
8
  async pushMarkers(markers) {
10
- FakeMarkerOutlet.pushMarkersCalls.push(markers);
9
+ FakeMarkerOutlet.callsToPushMarkers.push(markers);
11
10
  }
12
11
  stop() {
13
- FakeMarkerOutlet.numStopCalls++;
12
+ FakeMarkerOutlet.numCallsToStop++;
14
13
  }
15
14
  destroy() {
16
- FakeMarkerOutlet.numDestroyCalls++;
15
+ FakeMarkerOutlet.numCallsToDestroy++;
17
16
  }
18
17
  static resetTestDouble() {
19
- this.pushMarkersCalls = [];
20
- this.numStopCalls = 0;
21
- this.numDestroyCalls = 0;
18
+ this.callsToPushMarker = [];
19
+ this.callsToPushMarkers = [];
20
+ this.numCallsToStop = 0;
21
+ this.numCallsToDestroy = 0;
22
22
  }
23
23
  }
24
+ FakeMarkerOutlet.callsToPushMarker = [];
25
+ FakeMarkerOutlet.callsToPushMarkers = [];
26
+ FakeMarkerOutlet.numCallsToStop = 0;
27
+ FakeMarkerOutlet.numCallsToDestroy = 0;
24
28
  exports.default = FakeMarkerOutlet;
25
29
  //# sourceMappingURL=FakeMarkerOutlet.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"FakeMarkerOutlet.js","sourceRoot":"","sources":["../../../src/testDoubles/MarkerOutlet/FakeMarkerOutlet.ts"],"names":[],"mappings":";;AAGA,MAAqB,gBAAgB;IAKjC;QACI,gBAAgB,CAAC,gBAAgB,GAAG,EAAE,CAAA;QACtC,gBAAgB,CAAC,YAAY,GAAG,CAAC,CAAA;QACjC,gBAAgB,CAAC,eAAe,GAAG,CAAC,CAAA;IACxC,CAAC;IAEM,KAAK,CAAC,WAAW,CAAC,OAAyB;QAC9C,gBAAgB,CAAC,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IACnD,CAAC;IAEM,IAAI;QACP,gBAAgB,CAAC,YAAY,EAAE,CAAA;IACnC,CAAC;IAEM,OAAO;QACV,gBAAgB,CAAC,eAAe,EAAE,CAAA;IACtC,CAAC;IAEM,MAAM,CAAC,eAAe;QACzB,IAAI,CAAC,gBAAgB,GAAG,EAAE,CAAA;QAC1B,IAAI,CAAC,YAAY,GAAG,CAAC,CAAA;QACrB,IAAI,CAAC,eAAe,GAAG,CAAC,CAAA;IAC5B,CAAC;CACJ;AA5BD,mCA4BC"}
1
+ {"version":3,"file":"FakeMarkerOutlet.js","sourceRoot":"","sources":["../../../src/testDoubles/MarkerOutlet/FakeMarkerOutlet.ts"],"names":[],"mappings":";;AAGA,MAAqB,gBAAgB;IAMjC,gBAAsB,CAAC;IAEhB,UAAU,CAAC,UAAkB;QAChC,gBAAgB,CAAC,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;IACvD,CAAC;IAEM,KAAK,CAAC,WAAW,CAAC,OAAyB;QAC9C,gBAAgB,CAAC,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IACrD,CAAC;IAEM,IAAI;QACP,gBAAgB,CAAC,cAAc,EAAE,CAAA;IACrC,CAAC;IAEM,OAAO;QACV,gBAAgB,CAAC,iBAAiB,EAAE,CAAA;IACxC,CAAC;IAEM,MAAM,CAAC,eAAe;QACzB,IAAI,CAAC,iBAAiB,GAAG,EAAE,CAAA;QAC3B,IAAI,CAAC,kBAAkB,GAAG,EAAE,CAAA;QAC5B,IAAI,CAAC,cAAc,GAAG,CAAC,CAAA;QACvB,IAAI,CAAC,iBAAiB,GAAG,CAAC,CAAA;IAC9B,CAAC;;AA5Ba,kCAAiB,GAAa,EAAE,CAAA;AAChC,mCAAkB,GAAuB,EAAE,CAAA;AAC3C,+BAAc,GAAG,CAAC,CAAA;AAClB,kCAAiB,GAAG,CAAC,CAAA;kBAJlB,gBAAgB"}
@@ -1,5 +1,5 @@
1
1
  import { MarkerOutlet } from '../../components/EventMarkerOutlet';
2
- import { DurationMarker, LslSample } from '../../nodeLsl.types';
2
+ import { DurationMarker, LslSample } from '../../types';
3
3
  export default class MockMarkerOutlet implements MarkerOutlet {
4
4
  private didPushMarkers;
5
5
  private pushedMarkers?;
@@ -7,6 +7,7 @@ export default class MockMarkerOutlet implements MarkerOutlet {
7
7
  private pushedSamples?;
8
8
  stop(): void;
9
9
  destroy(): void;
10
+ pushMarker(_markerName: string): void;
10
11
  pushSample(sample: LslSample): void;
11
12
  pushMarkers(markers: DurationMarker[]): Promise<void>;
12
13
  assertDidPushSamples(samples?: LslSample[]): void;
@@ -6,8 +6,15 @@ class MockMarkerOutlet {
6
6
  this.didPushMarkers = false;
7
7
  this.didPushSamples = false;
8
8
  }
9
- stop() { }
10
- destroy() { }
9
+ stop() {
10
+ throw new Error('Method not implemented.');
11
+ }
12
+ destroy() {
13
+ throw new Error('Method not implemented.');
14
+ }
15
+ pushMarker(_markerName) {
16
+ throw new Error('Method not implemented.');
17
+ }
11
18
  pushSample(sample) {
12
19
  if (!this.didPushSamples) {
13
20
  this.didPushSamples = true;
@@ -1 +1 @@
1
- {"version":3,"file":"MockMarkerOutlet.js","sourceRoot":"","sources":["../../../src/testDoubles/MarkerOutlet/MockMarkerOutlet.ts"],"names":[],"mappings":";;AAAA,uDAA+C;AAI/C,MAAqB,gBAAgB;IAArC;QACY,mBAAc,GAAG,KAAK,CAAA;QAEtB,mBAAc,GAAG,KAAK,CAAA;IAsDlC,CAAC;IAnDU,IAAI,KAAI,CAAC;IACT,OAAO,KAAI,CAAC;IAEZ,UAAU,CAAC,MAAiB;QAC/B,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;YACvB,IAAI,CAAC,cAAc,GAAG,IAAI,CAAA;YAC1B,IAAI,CAAC,aAAa,GAAG,EAAE,CAAA;QAC3B,CAAC;QACD,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;IACpC,CAAC;IAEM,KAAK,CAAC,WAAW,CAAC,OAAyB;QAC9C,IAAI,CAAC,cAAc,GAAG,IAAI,CAAA;QAC1B,IAAI,CAAC,aAAa,GAAG,OAAO,CAAA;IAChC,CAAC;IAEM,oBAAoB,CAAC,OAAqB;QAC7C,mBAAM,CAAC,MAAM,CACT,IAAI,CAAC,cAAc,EACnB,0EAA0E,CAC7E,CAAA;QAED,IAAI,OAAO,EAAE,CAAC;YACV,mBAAM,CAAC,WAAW,CAAC,IAAI,CAAC,aAAa,EAAE,OAAO,CAAC,CAAA;QACnD,CAAC;IACL,CAAC;IAEM,uBAAuB;QAC1B,mBAAM,CAAC,OAAO,CACV,IAAI,CAAC,cAAc,EACnB,2EAA2E,CAC9E,CAAA;IACL,CAAC;IAEM,oBAAoB,CAAC,OAA0B;QAClD,mBAAM,CAAC,MAAM,CACT,IAAI,CAAC,cAAc,EACnB,2EAA2E,CAC9E,CAAA;QAED,IAAI,OAAO,EAAE,CAAC;YACV,mBAAM,CAAC,WAAW,CAAC,IAAI,CAAC,aAAa,EAAE,OAAO,CAAC,CAAA;QACnD,CAAC;IACL,CAAC;IAEM,uBAAuB;QAC1B,mBAAM,CAAC,OAAO,CACV,IAAI,CAAC,cAAc,EACnB,4EAA4E,CAC/E,CAAA;IACL,CAAC;CACJ;AAzDD,mCAyDC"}
1
+ {"version":3,"file":"MockMarkerOutlet.js","sourceRoot":"","sources":["../../../src/testDoubles/MarkerOutlet/MockMarkerOutlet.ts"],"names":[],"mappings":";;AAAA,uDAA+C;AAI/C,MAAqB,gBAAgB;IAArC;QACY,mBAAc,GAAG,KAAK,CAAA;QAEtB,mBAAc,GAAG,KAAK,CAAA;IA+DlC,CAAC;IA5DU,IAAI;QACP,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAA;IAC9C,CAAC;IAEM,OAAO;QACV,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAA;IAC9C,CAAC;IAEM,UAAU,CAAC,WAAmB;QACjC,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAA;IAC9C,CAAC;IAEM,UAAU,CAAC,MAAiB;QAC/B,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;YACvB,IAAI,CAAC,cAAc,GAAG,IAAI,CAAA;YAC1B,IAAI,CAAC,aAAa,GAAG,EAAE,CAAA;QAC3B,CAAC;QACD,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;IACpC,CAAC;IAEM,KAAK,CAAC,WAAW,CAAC,OAAyB;QAC9C,IAAI,CAAC,cAAc,GAAG,IAAI,CAAA;QAC1B,IAAI,CAAC,aAAa,GAAG,OAAO,CAAA;IAChC,CAAC;IAEM,oBAAoB,CAAC,OAAqB;QAC7C,mBAAM,CAAC,MAAM,CACT,IAAI,CAAC,cAAc,EACnB,0EAA0E,CAC7E,CAAA;QAED,IAAI,OAAO,EAAE,CAAC;YACV,mBAAM,CAAC,WAAW,CAAC,IAAI,CAAC,aAAa,EAAE,OAAO,CAAC,CAAA;QACnD,CAAC;IACL,CAAC;IAEM,uBAAuB;QAC1B,mBAAM,CAAC,OAAO,CACV,IAAI,CAAC,cAAc,EACnB,2EAA2E,CAC9E,CAAA;IACL,CAAC;IAEM,oBAAoB,CAAC,OAA0B;QAClD,mBAAM,CAAC,MAAM,CACT,IAAI,CAAC,cAAc,EACnB,2EAA2E,CAC9E,CAAA;QAED,IAAI,OAAO,EAAE,CAAC;YACV,mBAAM,CAAC,WAAW,CAAC,IAAI,CAAC,aAAa,EAAE,OAAO,CAAC,CAAA;QACnD,CAAC;IACL,CAAC;IAEM,uBAAuB;QAC1B,mBAAM,CAAC,OAAO,CACV,IAAI,CAAC,cAAc,EACnB,4EAA4E,CAC/E,CAAA;IACL,CAAC;CACJ;AAlED,mCAkEC"}
@@ -0,0 +1,10 @@
1
+ import { MarkerOutlet } from '../../components/EventMarkerOutlet';
2
+ import { DurationMarker } from '../../types';
3
+ export default class ThrowingMarkerOutlet implements MarkerOutlet {
4
+ private errorMsg;
5
+ constructor();
6
+ pushMarker(_markerName: string): Promise<void>;
7
+ pushMarkers(_markers: DurationMarker[]): Promise<void>;
8
+ stop(): void;
9
+ destroy(): void;
10
+ }
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ class ThrowingMarkerOutlet {
4
+ constructor() {
5
+ this.errorMsg = 'Intentional throwing: ';
6
+ throw new Error(this.errorMsg + 'constructor');
7
+ }
8
+ async pushMarker(_markerName) {
9
+ throw new Error(this.errorMsg + 'pushMarker');
10
+ }
11
+ async pushMarkers(_markers) {
12
+ throw new Error(this.errorMsg + 'pushMarkers');
13
+ }
14
+ stop() {
15
+ throw new Error(this.errorMsg + 'stop');
16
+ }
17
+ destroy() {
18
+ throw new Error(this.errorMsg + 'destroy');
19
+ }
20
+ }
21
+ exports.default = ThrowingMarkerOutlet;
22
+ //# sourceMappingURL=ThrowingMarkerOutlet.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ThrowingMarkerOutlet.js","sourceRoot":"","sources":["../../../src/testDoubles/MarkerOutlet/ThrowingMarkerOutlet.ts"],"names":[],"mappings":";;AAGA,MAAqB,oBAAoB;IAGrC;QAFQ,aAAQ,GAAG,wBAAwB,CAAA;QAGvC,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC,QAAQ,GAAG,aAAa,CAAC,CAAA;IAClD,CAAC;IAEM,KAAK,CAAC,UAAU,CAAC,WAAmB;QACvC,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC,QAAQ,GAAG,YAAY,CAAC,CAAA;IACjD,CAAC;IAEM,KAAK,CAAC,WAAW,CAAC,QAA0B;QAC/C,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC,QAAQ,GAAG,aAAa,CAAC,CAAA;IAClD,CAAC;IAEM,IAAI;QACP,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,CAAA;IAC3C,CAAC;IAEM,OAAO;QACV,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC,CAAA;IAC9C,CAAC;CACJ;AAtBD,uCAsBC"}
@@ -1,5 +1,5 @@
1
1
  import { StreamInfo, StreamInfoOptions } from '../../components/LslStreamInfo';
2
- import { BoundStreamInfo } from '../../nodeLsl.types';
2
+ import { BoundStreamInfo } from '../../types';
3
3
  export default class FakeStreamInfo implements StreamInfo {
4
4
  static callsToConstructor: StreamInfoOptions[];
5
5
  static boundStreamInfo: BoundStreamInfo;
@@ -0,0 +1,90 @@
1
+ import { FuncObj, FieldType } from 'ffi-rs';
2
+ import { LslInlet } from './components/LslStreamInlet';
3
+ import { LslOutlet } from './components/LslStreamOutlet';
4
+ import { CHANNEL_FORMATS } from './consts';
5
+ export type StreamFixuture = LslOutlet | LslInlet;
6
+ export type ChannelFormat = (typeof CHANNEL_FORMATS)[number];
7
+ export interface DurationMarker {
8
+ name: string;
9
+ durationMs: number;
10
+ }
11
+ export interface Liblsl {
12
+ createStreamInfo(options: CreateStreamInfoOptions): BoundStreamInfo;
13
+ appendChannelsToStreamInfo(options: AppendChannelsToStreamInfoOptions): void;
14
+ createOutlet(options: CreateOutletOptions): BoundOutlet;
15
+ pushSampleFloatTimestamp(options: PushSampleFloatTimestampOptions): void;
16
+ pushSampleStringTimestamp(options: PushSampleStringTimestampOptions): void;
17
+ destroyOutlet(options: DestroyOutletOptions): void;
18
+ createInlet(options: CreateInletOptions): BoundInlet;
19
+ destroyInlet(options: DestroyInletOptions): void;
20
+ localClock(): number;
21
+ }
22
+ export interface CreateStreamInfoOptions {
23
+ name: string;
24
+ type: string;
25
+ channelCount: number;
26
+ sampleRate: number;
27
+ channelFormat: number;
28
+ sourceId: string;
29
+ manufacturer?: string;
30
+ unit?: string;
31
+ }
32
+ export interface AppendChannelsToStreamInfoOptions {
33
+ info: BoundStreamInfo;
34
+ channels: LslChannel[];
35
+ }
36
+ export interface LslChannel {
37
+ label: string;
38
+ unit: string;
39
+ type: string;
40
+ }
41
+ export type LslSample = (number | string | undefined)[];
42
+ export interface CreateOutletOptions {
43
+ info: BoundStreamInfo;
44
+ chunkSize: number;
45
+ maxBuffered: number;
46
+ }
47
+ export interface PushSampleFloatTimestampOptions {
48
+ outlet: BoundOutlet;
49
+ sample: number[];
50
+ timestamp: number;
51
+ }
52
+ export interface PushSampleStringTimestampOptions {
53
+ outlet: BoundOutlet;
54
+ sample: string[];
55
+ timestamp: number;
56
+ }
57
+ export interface DestroyOutletOptions {
58
+ outlet: BoundOutlet;
59
+ }
60
+ export interface CreateInletOptions {
61
+ info: BoundStreamInfo;
62
+ chunkSize: number;
63
+ maxBuffered: number;
64
+ }
65
+ export interface DestroyInletOptions {
66
+ }
67
+ export interface LiblslBindings {
68
+ lsl_create_streaminfo(args: [string, string, number, number, number, string]): BoundStreamInfo;
69
+ lsl_create_outlet(args: [BoundStreamInfo, number, number]): BoundOutlet;
70
+ lsl_push_sample_ft(args: [BoundOutlet, LslSample, number]): void;
71
+ lsl_push_sample_strt(args: [BoundOutlet, LslSample, number]): void;
72
+ lsl_destroy_outlet(args: [BoundOutlet]): void;
73
+ lsl_create_inlet(args: any): BoundInlet;
74
+ lsl_destroy_inlet(args: any): void;
75
+ lsl_local_clock(args: []): number;
76
+ lsl_get_desc(args: [BoundStreamInfo]): BoundDescription;
77
+ lsl_append_child(args: [BoundDescription, string]): BoundChild;
78
+ lsl_append_child_value(args: [BoundChild, string, string]): void;
79
+ }
80
+ export interface BoundStreamInfo {
81
+ }
82
+ export interface BoundOutlet {
83
+ }
84
+ export interface BoundInlet {
85
+ }
86
+ export interface BoundDescription {
87
+ }
88
+ export interface BoundChild {
89
+ }
90
+ export type FfiRsDefineOptions = FuncObj<FieldType, boolean | undefined>;
package/build/types.js ADDED
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@neurodevs/node-lsl",
3
- "version": "11.0.1",
3
+ "version": "11.2.0",
4
4
  "main": "build/index.js",
5
5
  "repository": {
6
6
  "type": "git",
@@ -131,6 +131,14 @@ export default class EventMarkerOutletTest extends AbstractLslTest {
131
131
  assert.fail('Should not have been called')
132
132
  }
133
133
 
134
+ @test()
135
+ protected static async pushMarkerCallsPushSampleOnMarkerOutlet() {
136
+ const markerName = generateId()
137
+ this.instance.pushMarker(markerName)
138
+
139
+ assert.isEqual(FakeLslOutlet.callsToPushSample[0][0], markerName)
140
+ }
141
+
134
142
  private static get lslOutlet() {
135
143
  return this.instance.getLslOutlet()
136
144
  }
@@ -12,7 +12,7 @@ import {
12
12
  Liblsl,
13
13
  LiblslBindings,
14
14
  LslChannel,
15
- } from '../nodeLsl.types'
15
+ } from '../types'
16
16
  import FakeLiblsl from '../testDoubles/Liblsl/FakeLiblsl'
17
17
  import AbstractLslTest from './AbstractLslTest'
18
18
 
@@ -3,7 +3,7 @@ import { StreamInfo } from '../components/LslStreamInfo'
3
3
  import LslStreamOutlet, {
4
4
  LslOutletOptions,
5
5
  } from '../components/LslStreamOutlet'
6
- import { LslSample } from '../nodeLsl.types'
6
+ import { LslSample } from '../types'
7
7
  import {
8
8
  TEST_SUPPORTED_CHANNEL_FORMATS,
9
9
  TEST_UNSUPPORTED_CHANNEL_FORMATS,
@@ -12,7 +12,7 @@ import {
12
12
  PushSampleStringTimestampOptions,
13
13
  CreateInletOptions,
14
14
  DestroyInletOptions,
15
- } from '../nodeLsl.types'
15
+ } from '../types'
16
16
 
17
17
  export default class LiblslAdapter implements Liblsl {
18
18
  private static instance?: Liblsl
package/src/assertions.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import { SchemaError } from '@sprucelabs/schema'
2
2
  import { CHANNEL_FORMATS } from './consts'
3
- import { ChannelFormat } from './nodeLsl.types'
3
+ import { ChannelFormat } from './types'
4
4
  import {
5
5
  isGreaterThanOrEqualToZero,
6
6
  isPositiveInteger,
@@ -1,4 +1,4 @@
1
- import { DurationMarker } from '../nodeLsl.types'
1
+ import { DurationMarker } from '../types'
2
2
  import LslStreamOutlet, { LslOutletOptions, LslOutlet } from './LslStreamOutlet'
3
3
 
4
4
  export default class EventMarkerOutlet implements MarkerOutlet {
@@ -35,13 +35,18 @@ export default class EventMarkerOutlet implements MarkerOutlet {
35
35
  return new (this.Class ?? this)(outlet)
36
36
  }
37
37
 
38
+ public pushMarker(markerName: string) {
39
+ this.pushMarkerToOutlet(markerName)
40
+ }
41
+
38
42
  public async pushMarkers(markers: DurationMarker[]) {
39
43
  this.isPlaying = true
40
44
 
41
45
  for (let marker of markers) {
42
- this.lslOutlet.pushSample([marker.name])
46
+ const { name, durationMs } = marker
47
+ this.pushMarkerToOutlet(name)
43
48
 
44
- await this.wait(marker.durationMs)
49
+ await this.wait(durationMs)
45
50
 
46
51
  if (!this.isPlaying) {
47
52
  return
@@ -49,6 +54,10 @@ export default class EventMarkerOutlet implements MarkerOutlet {
49
54
  }
50
55
  }
51
56
 
57
+ private pushMarkerToOutlet(markerName: string) {
58
+ this.lslOutlet.pushSample([markerName])
59
+ }
60
+
52
61
  protected async wait(durationMs: number) {
53
62
  return new Promise((resolve) => this.setTimeout(resolve, durationMs))
54
63
  }
@@ -66,6 +75,7 @@ export default class EventMarkerOutlet implements MarkerOutlet {
66
75
  }
67
76
 
68
77
  export interface MarkerOutlet {
78
+ pushMarker(markerName: string): void
69
79
  pushMarkers(markers: DurationMarker[]): Promise<void>
70
80
  stop(): void
71
81
  }
@@ -2,7 +2,7 @@ import { assertOptions } from '@sprucelabs/schema'
2
2
  import { generateId } from '@sprucelabs/test-utils'
3
3
  import LiblslAdapter from '../adapters/LiblslAdapter'
4
4
  import { CHANNEL_FORMATS_MAP } from '../consts'
5
- import { BoundStreamInfo, ChannelFormat } from '../nodeLsl.types'
5
+ import { BoundStreamInfo, ChannelFormat } from '../types'
6
6
 
7
7
  export default class LslStreamInfo implements StreamInfo {
8
8
  public static Class?: StreamInfoConstructor
@@ -1,7 +1,7 @@
1
1
  import { assertOptions } from '@sprucelabs/schema'
2
2
  import { generateId } from '@sprucelabs/test-utils'
3
3
  import LiblslAdapter from '../adapters/LiblslAdapter'
4
- import { ChannelFormat } from '../nodeLsl.types'
4
+ import { ChannelFormat } from '../types'
5
5
  import LslStreamInfo, { StreamInfo, StreamInfoOptions } from './LslStreamInfo'
6
6
 
7
7
  export default class LslStreamInlet implements LslInlet {
@@ -7,7 +7,7 @@ import {
7
7
  assertValidMaxBuffered,
8
8
  assertValidSampleRate,
9
9
  } from '../assertions'
10
- import { ChannelFormat, BoundOutlet, Liblsl, LslSample } from '../nodeLsl.types'
10
+ import { ChannelFormat, BoundOutlet, Liblsl, LslSample } from '../types'
11
11
  import LslStreamInfo, { StreamInfo, StreamInfoOptions } from './LslStreamInfo'
12
12
 
13
13
  export default class LslStreamOutlet implements LslOutlet {
package/src/index.ts CHANGED
@@ -1,4 +1,4 @@
1
- export * from './nodeLsl.types'
1
+ export * from './types'
2
2
 
3
3
  // Liblsl
4
4
 
@@ -41,4 +41,9 @@ export * from './testDoubles/MarkerOutlet/MockMarkerOutlet'
41
41
  export { default as SpyMarkerOutlet } from './testDoubles/MarkerOutlet/SpyMarkerOutlet'
42
42
  export * from './testDoubles/MarkerOutlet/SpyMarkerOutlet'
43
43
 
44
+ export { default as ThrowingMarkerOutlet } from './testDoubles/MarkerOutlet/ThrowingMarkerOutlet'
45
+ export * from './testDoubles/MarkerOutlet/ThrowingMarkerOutlet'
46
+
47
+ // Utils
48
+
44
49
  export { default as generateRandomOutletOptions } from './testDoubles/generateRandomOutletOptions'
@@ -10,7 +10,7 @@ import {
10
10
  CreateInletOptions,
11
11
  DestroyInletOptions,
12
12
  BoundInlet,
13
- } from '../../nodeLsl.types'
13
+ } from '../../types'
14
14
 
15
15
  export default class FakeLiblsl implements Liblsl {
16
16
  public outlet: BoundOutlet = {} as BoundOutlet
@@ -1,6 +1,6 @@
1
1
  import { StreamInfo } from '../../components/LslStreamInfo'
2
2
  import { LslOutlet, LslOutletOptions } from '../../components/LslStreamOutlet'
3
- import { LslSample } from '../../nodeLsl.types'
3
+ import { LslSample } from '../../types'
4
4
 
5
5
  export default class FakeLslOutlet implements LslOutlet {
6
6
  public static callsToConstructor: CallToConstructor[] = []
@@ -1,32 +1,34 @@
1
1
  import { MarkerOutlet } from '../../components/EventMarkerOutlet'
2
- import { DurationMarker } from '../../nodeLsl.types'
2
+ import { DurationMarker } from '../../types'
3
3
 
4
4
  export default class FakeMarkerOutlet implements MarkerOutlet {
5
- public static pushMarkersCalls: DurationMarker[][]
6
- public static numStopCalls: number
7
- public static numDestroyCalls: number
5
+ public static callsToPushMarker: string[] = []
6
+ public static callsToPushMarkers: DurationMarker[][] = []
7
+ public static numCallsToStop = 0
8
+ public static numCallsToDestroy = 0
8
9
 
9
- public constructor() {
10
- FakeMarkerOutlet.pushMarkersCalls = []
11
- FakeMarkerOutlet.numStopCalls = 0
12
- FakeMarkerOutlet.numDestroyCalls = 0
10
+ public constructor() {}
11
+
12
+ public pushMarker(markerName: string) {
13
+ FakeMarkerOutlet.callsToPushMarker.push(markerName)
13
14
  }
14
15
 
15
16
  public async pushMarkers(markers: DurationMarker[]) {
16
- FakeMarkerOutlet.pushMarkersCalls.push(markers)
17
+ FakeMarkerOutlet.callsToPushMarkers.push(markers)
17
18
  }
18
19
 
19
20
  public stop() {
20
- FakeMarkerOutlet.numStopCalls++
21
+ FakeMarkerOutlet.numCallsToStop++
21
22
  }
22
23
 
23
24
  public destroy() {
24
- FakeMarkerOutlet.numDestroyCalls++
25
+ FakeMarkerOutlet.numCallsToDestroy++
25
26
  }
26
27
 
27
28
  public static resetTestDouble() {
28
- this.pushMarkersCalls = []
29
- this.numStopCalls = 0
30
- this.numDestroyCalls = 0
29
+ this.callsToPushMarker = []
30
+ this.callsToPushMarkers = []
31
+ this.numCallsToStop = 0
32
+ this.numCallsToDestroy = 0
31
33
  }
32
34
  }
@@ -1,6 +1,6 @@
1
1
  import { assert } from '@sprucelabs/test-utils'
2
2
  import { MarkerOutlet } from '../../components/EventMarkerOutlet'
3
- import { DurationMarker, LslSample } from '../../nodeLsl.types'
3
+ import { DurationMarker, LslSample } from '../../types'
4
4
 
5
5
  export default class MockMarkerOutlet implements MarkerOutlet {
6
6
  private didPushMarkers = false
@@ -8,8 +8,17 @@ export default class MockMarkerOutlet implements MarkerOutlet {
8
8
  private didPushSamples = false
9
9
  private pushedSamples?: LslSample[]
10
10
 
11
- public stop() {}
12
- public destroy() {}
11
+ public stop() {
12
+ throw new Error('Method not implemented.')
13
+ }
14
+
15
+ public destroy() {
16
+ throw new Error('Method not implemented.')
17
+ }
18
+
19
+ public pushMarker(_markerName: string) {
20
+ throw new Error('Method not implemented.')
21
+ }
13
22
 
14
23
  public pushSample(sample: LslSample) {
15
24
  if (!this.didPushSamples) {
@@ -0,0 +1,26 @@
1
+ import { MarkerOutlet } from '../../components/EventMarkerOutlet'
2
+ import { DurationMarker } from '../../types'
3
+
4
+ export default class ThrowingMarkerOutlet implements MarkerOutlet {
5
+ private errorMsg = 'Intentional throwing: '
6
+
7
+ public constructor() {
8
+ throw new Error(this.errorMsg + 'constructor')
9
+ }
10
+
11
+ public async pushMarker(_markerName: string) {
12
+ throw new Error(this.errorMsg + 'pushMarker')
13
+ }
14
+
15
+ public async pushMarkers(_markers: DurationMarker[]) {
16
+ throw new Error(this.errorMsg + 'pushMarkers')
17
+ }
18
+
19
+ public stop() {
20
+ throw new Error(this.errorMsg + 'stop')
21
+ }
22
+
23
+ public destroy() {
24
+ throw new Error(this.errorMsg + 'destroy')
25
+ }
26
+ }
@@ -1,5 +1,5 @@
1
1
  import { StreamInfo, StreamInfoOptions } from '../../components/LslStreamInfo'
2
- import { BoundStreamInfo } from '../../nodeLsl.types'
2
+ import { BoundStreamInfo } from '../../types'
3
3
 
4
4
  export default class FakeStreamInfo implements StreamInfo {
5
5
  public static callsToConstructor: StreamInfoOptions[] = []
File without changes