@neurodevs/node-lsl 10.1.4 → 10.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 (104) hide show
  1. package/build/__tests__/AbstractNodeLslTest.d.ts +18 -0
  2. package/build/__tests__/AbstractNodeLslTest.js +80 -0
  3. package/build/__tests__/AbstractNodeLslTest.js.map +1 -0
  4. package/build/__tests__/{implementation/Liblsl.test.d.ts → Liblsl.test.d.ts} +6 -0
  5. package/build/__tests__/{implementation/Liblsl.test.js → Liblsl.test.js} +60 -14
  6. package/build/__tests__/Liblsl.test.js.map +1 -0
  7. package/build/__tests__/LslInlet.test.d.ts +11 -0
  8. package/build/__tests__/LslInlet.test.js +94 -0
  9. package/build/__tests__/LslInlet.test.js.map +1 -0
  10. package/build/__tests__/{behavioral/LslOutlet.test.d.ts → LslOutlet.test.d.ts} +3 -6
  11. package/build/__tests__/{behavioral/LslOutlet.test.js → LslOutlet.test.js} +24 -68
  12. package/build/__tests__/LslOutlet.test.js.map +1 -0
  13. package/build/__tests__/LslStreamInfo.test.d.ts +21 -0
  14. package/build/__tests__/LslStreamInfo.test.js +166 -0
  15. package/build/__tests__/LslStreamInfo.test.js.map +1 -0
  16. package/build/__tests__/SpyLslStreamInfo.d.ts +5 -0
  17. package/build/__tests__/SpyLslStreamInfo.js +17 -0
  18. package/build/__tests__/SpyLslStreamInfo.js.map +1 -0
  19. package/build/__tests__/{behavioral/TimeMarkerOutlet.test.d.ts → TimeMarkerOutlet.test.d.ts} +2 -3
  20. package/build/__tests__/{behavioral/TimeMarkerOutlet.test.js → TimeMarkerOutlet.test.js} +7 -33
  21. package/build/__tests__/TimeMarkerOutlet.test.js.map +1 -0
  22. package/build/{implementations → components}/Liblsl.d.ts +4 -2
  23. package/build/{implementations → components}/Liblsl.js +23 -4
  24. package/build/components/Liblsl.js.map +1 -0
  25. package/build/components/LslInlet.d.ts +31 -0
  26. package/build/components/LslInlet.js +51 -0
  27. package/build/components/LslInlet.js.map +1 -0
  28. package/build/{implementations → components}/LslOutlet.d.ts +20 -9
  29. package/build/components/LslOutlet.js +118 -0
  30. package/build/components/LslOutlet.js.map +1 -0
  31. package/build/components/LslStreamInfo.d.ts +38 -0
  32. package/build/components/LslStreamInfo.js +65 -0
  33. package/build/components/LslStreamInfo.js.map +1 -0
  34. package/build/{implementations → components}/TimeMarkerOutlet.d.ts +2 -1
  35. package/build/{implementations → components}/TimeMarkerOutlet.js +1 -1
  36. package/build/components/TimeMarkerOutlet.js.map +1 -0
  37. package/build/demo.d.ts +1 -0
  38. package/build/demo.js +42 -0
  39. package/build/demo.js.map +1 -0
  40. package/build/index.d.ts +12 -7
  41. package/build/index.js +16 -8
  42. package/build/index.js.map +1 -1
  43. package/build/nodeLsl.types.d.ts +34 -18
  44. package/build/testDoubles/FakeLiblsl.d.ts +11 -3
  45. package/build/testDoubles/FakeLiblsl.js +29 -5
  46. package/build/testDoubles/FakeLiblsl.js.map +1 -1
  47. package/build/testDoubles/FakeLslOutlet.d.ts +4 -2
  48. package/build/testDoubles/FakeLslOutlet.js +2 -1
  49. package/build/testDoubles/FakeLslOutlet.js.map +1 -1
  50. package/build/testDoubles/FakeLslStreamInfo.d.ts +5 -0
  51. package/build/testDoubles/FakeLslStreamInfo.js +10 -0
  52. package/build/testDoubles/FakeLslStreamInfo.js.map +1 -0
  53. package/build/testDoubles/FakeStreamInfo.d.ts +9 -0
  54. package/build/testDoubles/FakeStreamInfo.js +17 -0
  55. package/build/testDoubles/FakeStreamInfo.js.map +1 -0
  56. package/build/testDoubles/FakeTimeMarkerOutlet.d.ts +1 -1
  57. package/build/testDoubles/SpyLslInlet.d.ts +7 -0
  58. package/build/testDoubles/SpyLslInlet.js +20 -0
  59. package/build/testDoubles/SpyLslInlet.js.map +1 -0
  60. package/build/testDoubles/SpyLslStreamInfo.d.ts +9 -0
  61. package/build/testDoubles/SpyLslStreamInfo.js +28 -0
  62. package/build/testDoubles/SpyLslStreamInfo.js.map +1 -0
  63. package/build/testDoubles/SpyTimeMarkerOutlet.d.ts +4 -3
  64. package/build/testDoubles/SpyTimeMarkerOutlet.js +3 -3
  65. package/build/testDoubles/SpyTimeMarkerOutlet.js.map +1 -1
  66. package/build/testDoubles/consts.js.map +1 -0
  67. package/build/{__tests__/support → testDoubles}/generateRandomOutletOptions.d.ts +1 -1
  68. package/build/testDoubles/generateRandomOutletOptions.js.map +1 -0
  69. package/package.json +1 -1
  70. package/src/__tests__/AbstractNodeLslTest.ts +50 -0
  71. package/src/__tests__/{implementation/Liblsl.test.ts → Liblsl.test.ts} +49 -8
  72. package/src/__tests__/LslInlet.test.ts +99 -0
  73. package/src/__tests__/{behavioral/LslOutlet.test.ts → LslOutlet.test.ts} +29 -64
  74. package/src/__tests__/LslStreamInfo.test.ts +209 -0
  75. package/src/__tests__/{behavioral/TimeMarkerOutlet.test.ts → TimeMarkerOutlet.test.ts} +12 -17
  76. package/src/{implementations → components}/Liblsl.ts +29 -5
  77. package/src/components/LslInlet.ts +85 -0
  78. package/src/{implementations → components}/LslOutlet.ts +91 -64
  79. package/src/components/LslStreamInfo.ts +105 -0
  80. package/src/{implementations → components}/TimeMarkerOutlet.ts +3 -1
  81. package/src/demo.ts +43 -0
  82. package/src/index.ts +15 -7
  83. package/src/nodeLsl.types.ts +36 -23
  84. package/src/testDoubles/FakeLiblsl.ts +40 -7
  85. package/src/testDoubles/FakeLslOutlet.ts +5 -2
  86. package/src/testDoubles/FakeStreamInfo.ts +19 -0
  87. package/src/testDoubles/FakeTimeMarkerOutlet.ts +1 -1
  88. package/src/testDoubles/SpyLslInlet.ts +16 -0
  89. package/src/testDoubles/SpyLslStreamInfo.ts +27 -0
  90. package/src/testDoubles/SpyTimeMarkerOutlet.ts +5 -4
  91. package/src/{__tests__/support → testDoubles}/generateRandomOutletOptions.ts +1 -1
  92. package/build/__tests__/behavioral/LslOutlet.test.js.map +0 -1
  93. package/build/__tests__/behavioral/TimeMarkerOutlet.test.js.map +0 -1
  94. package/build/__tests__/implementation/Liblsl.test.js.map +0 -1
  95. package/build/__tests__/support/consts.js.map +0 -1
  96. package/build/__tests__/support/generateRandomOutletOptions.js.map +0 -1
  97. package/build/implementations/Liblsl.js.map +0 -1
  98. package/build/implementations/LslOutlet.js +0 -94
  99. package/build/implementations/LslOutlet.js.map +0 -1
  100. package/build/implementations/TimeMarkerOutlet.js.map +0 -1
  101. /package/build/{__tests__/support → testDoubles}/consts.d.ts +0 -0
  102. /package/build/{__tests__/support → testDoubles}/consts.js +0 -0
  103. /package/build/{__tests__/support → testDoubles}/generateRandomOutletOptions.js +0 -0
  104. /package/src/{__tests__/support → testDoubles}/consts.ts +0 -0
@@ -1,94 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- const schema_1 = require("@sprucelabs/schema");
7
- const assertions_1 = require("../assertions");
8
- const consts_1 = require("../consts");
9
- const Liblsl_1 = __importDefault(require("./Liblsl"));
10
- class LslOutletImpl {
11
- constructor(options) {
12
- const { sampleRate, channelFormat } = (0, schema_1.assertOptions)(options, [
13
- 'name',
14
- 'type',
15
- 'channelNames',
16
- 'sampleRate',
17
- 'channelFormat',
18
- 'sourceId',
19
- 'manufacturer',
20
- 'unit',
21
- 'chunkSize',
22
- 'maxBuffered',
23
- ]);
24
- this.options = options;
25
- const { chunkSize, maxBuffered, channelNames, ...streamInfoOptions } = this.options;
26
- const channelCount = channelNames.length;
27
- (0, assertions_1.assertValidChannelCount)(channelCount);
28
- (0, assertions_1.assertValidSampleRate)(sampleRate);
29
- (0, assertions_1.assertValidChannelFormat)(channelFormat);
30
- (0, assertions_1.assertValidChunkSize)(chunkSize);
31
- (0, assertions_1.assertValidMaxBuffered)(maxBuffered);
32
- delete streamInfoOptions.manufacturer;
33
- delete streamInfoOptions.unit;
34
- this.streamInfo = this.lsl.createStreamInfo({
35
- ...streamInfoOptions,
36
- channelCount,
37
- channelFormat: this.lookupChannelFormat(channelFormat),
38
- });
39
- this.lsl.appendChannelsToStreamInfo({
40
- info: this.streamInfo,
41
- channels: channelNames.map((label) => ({
42
- label,
43
- unit: this.options.unit,
44
- type: this.options.type,
45
- })),
46
- });
47
- this.outlet = this.lsl.createOutlet({
48
- info: this.streamInfo,
49
- chunkSize: this.options.chunkSize,
50
- maxBuffered: this.options.maxBuffered,
51
- });
52
- const pushMethod = this.getPushMethod();
53
- this.pushSampleByType = this.lsl[pushMethod].bind(this.lsl);
54
- }
55
- static async Create(options) {
56
- const { waitAfterConstructionMs = 10 } = options ?? {};
57
- const instance = new (this.Class ?? this)(options);
58
- await this.wait(waitAfterConstructionMs);
59
- return instance;
60
- }
61
- static async wait(waitMs) {
62
- return new Promise((resolve) => setTimeout(resolve, waitMs));
63
- }
64
- destroy() {
65
- this.lsl.destroyOutlet({ outlet: this.outlet });
66
- }
67
- pushSample(sample) {
68
- const timestamp = this.lsl.localClock();
69
- this.pushSampleByType({
70
- outlet: this.outlet,
71
- sample,
72
- timestamp,
73
- });
74
- }
75
- getPushMethod() {
76
- const channelFormat = this.options.channelFormat;
77
- const methodMap = {
78
- float32: 'pushSampleFloatTimestamp',
79
- string: 'pushSampleStringTimestamp',
80
- };
81
- if (!(channelFormat in methodMap)) {
82
- throw new Error(`This method currently does not support the ${channelFormat} type! Please implement it.`);
83
- }
84
- return methodMap[channelFormat];
85
- }
86
- lookupChannelFormat(channelFormat) {
87
- return consts_1.CHANNEL_FORMATS_MAP[channelFormat];
88
- }
89
- get lsl() {
90
- return Liblsl_1.default.getInstance();
91
- }
92
- }
93
- exports.default = LslOutletImpl;
94
- //# sourceMappingURL=LslOutlet.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"LslOutlet.js","sourceRoot":"","sources":["../../src/implementations/LslOutlet.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"TimeMarkerOutlet.js","sourceRoot":"","sources":["../../src/implementations/TimeMarkerOutlet.ts"],"names":[],"mappings":";;;;;AACA,4DAAwE;AAExE,MAAqB,oBACjB,SAAQ,mBAAa;IADzB;;QAMY,cAAS,GAAG,KAAK,CAAA;IAoD7B,CAAC;IAhDU,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,OAAmC;QAC1D,MAAM,cAAc,GAAG;YACnB,IAAI,EAAE,cAAc;YACpB,IAAI,EAAE,SAAS;YACf,YAAY,EAAE,CAAC,SAAS,CAAC;YACzB,UAAU,EAAE,CAAC;YACb,aAAa,EAAE,QAAQ;YACvB,QAAQ,EAAE,cAAc;YACxB,YAAY,EAAE,KAAK;YACnB,IAAI,EAAE,KAAK;YACX,SAAS,EAAE,CAAC;YACZ,WAAW,EAAE,CAAC;SACG,CAAA;QAErB,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC;YAC5B,GAAG,cAAc;YACjB,GAAG,OAAO;SACb,CAAqB,CAAA;IAC1B,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,UAAU,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAA;YAE9B,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;AA1DD,uCA0DC"}