@neurodevs/node-lsl 8.0.11 → 10.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.
- package/build/__tests__/behavioral/LslOutlet.test.d.ts +4 -2
- package/build/__tests__/behavioral/LslOutlet.test.js +66 -46
- package/build/__tests__/behavioral/LslOutlet.test.js.map +1 -1
- package/build/__tests__/behavioral/TimeMarkerOutlet.test.js +12 -12
- package/build/__tests__/behavioral/TimeMarkerOutlet.test.js.map +1 -1
- package/build/__tests__/support/generateRandomOutletOptions.d.ts +1 -1
- package/build/implementations/LslOutlet.d.ts +22 -3
- package/build/implementations/LslOutlet.js +10 -4
- package/build/implementations/LslOutlet.js.map +1 -1
- package/build/implementations/TimeMarkerOutlet.d.ts +8 -3
- package/build/implementations/TimeMarkerOutlet.js +1 -1
- package/build/implementations/TimeMarkerOutlet.js.map +1 -1
- package/build/index.d.ts +5 -5
- package/build/index.js +8 -8
- package/build/index.js.map +1 -1
- package/build/nodeLsl.types.d.ts +0 -21
- package/build/testDoubles/{SpyImplementsTimeMarkerOutlet.d.ts → FakeTimeMarkerOutlet.d.ts} +4 -3
- package/build/testDoubles/{SpyImplementsTimeMarkerOutlet.js → FakeTimeMarkerOutlet.js} +4 -4
- package/build/testDoubles/FakeTimeMarkerOutlet.js.map +1 -0
- package/build/testDoubles/{SpyExtendsTimeMarkerOutlet.d.ts → SpyTimeMarkerOutlet.d.ts} +3 -3
- package/build/testDoubles/{SpyExtendsTimeMarkerOutlet.js → SpyTimeMarkerOutlet.js} +4 -4
- package/build/testDoubles/SpyTimeMarkerOutlet.js.map +1 -0
- package/package.json +1 -1
- package/src/__tests__/behavioral/LslOutlet.test.ts +82 -54
- package/src/__tests__/behavioral/TimeMarkerOutlet.test.ts +15 -15
- package/src/__tests__/support/generateRandomOutletOptions.ts +1 -1
- package/src/implementations/LslOutlet.ts +34 -7
- package/src/implementations/TimeMarkerOutlet.ts +12 -8
- package/src/index.ts +6 -6
- package/src/nodeLsl.types.ts +0 -27
- package/src/testDoubles/{SpyImplementsTimeMarkerOutlet.ts → FakeTimeMarkerOutlet.ts} +4 -3
- package/src/testDoubles/{SpyExtendsTimeMarkerOutlet.ts → SpyTimeMarkerOutlet.ts} +4 -4
- package/build/testDoubles/SpyExtendsTimeMarkerOutlet.js.map +0 -1
- package/build/testDoubles/SpyImplementsTimeMarkerOutlet.js.map +0 -1
|
@@ -5,8 +5,9 @@ export default class LslOutletTest extends AbstractSpruceTest {
|
|
|
5
5
|
private static randomOutletOptions;
|
|
6
6
|
private static channelFormatIdx;
|
|
7
7
|
protected static beforeEach(): Promise<void>;
|
|
8
|
-
protected static
|
|
8
|
+
protected static throwsWithMissingRequiredParams(): Promise<void>;
|
|
9
9
|
protected static throwsWithInvalidChannelNames(): Promise<void>;
|
|
10
|
+
protected static allowsZeroSampleRate(): Promise<void>;
|
|
10
11
|
protected static throwsWithInvalidSampleRate(): Promise<void>;
|
|
11
12
|
protected static throwsWithInvalidChannelFormat(): Promise<void>;
|
|
12
13
|
protected static throwsWithInvalidChunkSize(): Promise<void>;
|
|
@@ -21,12 +22,13 @@ export default class LslOutletTest extends AbstractSpruceTest {
|
|
|
21
22
|
protected static appendsChannelsBasedOnCount(labels: string[]): Promise<void>;
|
|
22
23
|
protected static canDestroyOutlet(): Promise<void>;
|
|
23
24
|
protected static pushSampleShouldNotCreateMultipleOutlets(): Promise<void>;
|
|
25
|
+
protected static waitsForTenMsAfterConstructionBeforeReturning(): Promise<void>;
|
|
24
26
|
private static assertThrowsInvalidMaxBuffered;
|
|
25
27
|
private static assertThrowsInvalidChunkSize;
|
|
26
28
|
private static assertThrowsInvalidSampleRate;
|
|
27
29
|
private static assertThrowsInvalidChannelNames;
|
|
28
30
|
private static assertDoesThrowInvalidParameters;
|
|
29
|
-
private static Outlet;
|
|
30
31
|
private static StringOutlet;
|
|
31
32
|
private static FloatOutlet;
|
|
33
|
+
private static Outlet;
|
|
32
34
|
}
|
|
@@ -48,9 +48,10 @@ class LslOutletTest extends test_utils_1.default {
|
|
|
48
48
|
this.fakeLiblsl = new FakeLiblsl_1.default();
|
|
49
49
|
Liblsl_1.default.setInstance(this.fakeLiblsl);
|
|
50
50
|
}
|
|
51
|
-
static async
|
|
51
|
+
static async throwsWithMissingRequiredParams() {
|
|
52
|
+
const err = await test_utils_1.assert.doesThrowAsync(
|
|
52
53
|
//@ts-ignore
|
|
53
|
-
|
|
54
|
+
async () => await LslOutlet_1.default.Create());
|
|
54
55
|
test_utils_1.errorAssert.assertError(err, 'MISSING_PARAMETERS', {
|
|
55
56
|
parameters: [
|
|
56
57
|
'name',
|
|
@@ -67,44 +68,45 @@ class LslOutletTest extends test_utils_1.default {
|
|
|
67
68
|
});
|
|
68
69
|
}
|
|
69
70
|
static async throwsWithInvalidChannelNames() {
|
|
70
|
-
this.assertThrowsInvalidChannelNames(0);
|
|
71
|
+
await this.assertThrowsInvalidChannelNames(0);
|
|
72
|
+
}
|
|
73
|
+
static async allowsZeroSampleRate() {
|
|
74
|
+
await this.Outlet({ sampleRate: 0 });
|
|
71
75
|
}
|
|
72
76
|
static async throwsWithInvalidSampleRate() {
|
|
73
|
-
this.
|
|
74
|
-
this.assertThrowsInvalidSampleRate(-1);
|
|
75
|
-
this.assertThrowsInvalidSampleRate(-1.5);
|
|
77
|
+
await this.assertThrowsInvalidSampleRate(-1);
|
|
78
|
+
await this.assertThrowsInvalidSampleRate(-1.5);
|
|
76
79
|
}
|
|
77
80
|
static async throwsWithInvalidChannelFormat() {
|
|
81
|
+
await this.assertDoesThrowInvalidParameters(
|
|
78
82
|
//@ts-ignore
|
|
79
|
-
|
|
80
|
-
'channelFormat',
|
|
81
|
-
]);
|
|
83
|
+
{ channelFormat: (0, test_utils_1.generateId)() }, ['channelFormat']);
|
|
82
84
|
}
|
|
83
85
|
static async throwsWithInvalidChunkSize() {
|
|
84
|
-
this.Outlet({ chunkSize: 0 });
|
|
85
|
-
this.assertThrowsInvalidChunkSize(-1);
|
|
86
|
-
this.assertThrowsInvalidChunkSize(-1.5);
|
|
87
|
-
this.assertThrowsInvalidChunkSize(1.5);
|
|
86
|
+
await this.Outlet({ chunkSize: 0 });
|
|
87
|
+
await this.assertThrowsInvalidChunkSize(-1);
|
|
88
|
+
await this.assertThrowsInvalidChunkSize(-1.5);
|
|
89
|
+
await this.assertThrowsInvalidChunkSize(1.5);
|
|
88
90
|
}
|
|
89
91
|
static async throwsWithInvalidMaxBuffered() {
|
|
90
|
-
this.Outlet({ maxBuffered: 0 });
|
|
91
|
-
this.assertThrowsInvalidMaxBuffered(-1);
|
|
92
|
-
this.assertThrowsInvalidMaxBuffered(-1.5);
|
|
93
|
-
this.assertThrowsInvalidMaxBuffered(1.5);
|
|
92
|
+
await this.Outlet({ maxBuffered: 0 });
|
|
93
|
+
await this.assertThrowsInvalidMaxBuffered(-1);
|
|
94
|
+
await this.assertThrowsInvalidMaxBuffered(-1.5);
|
|
95
|
+
await this.assertThrowsInvalidMaxBuffered(1.5);
|
|
94
96
|
}
|
|
95
97
|
static async throwsWithUnsupportedType() {
|
|
96
98
|
for (let unsupportedType of consts_1.TEST_UNSUPPORTED_CHANNEL_FORMATS) {
|
|
97
|
-
test_utils_1.assert.
|
|
99
|
+
await test_utils_1.assert.doesThrowAsync(async () => await this.Outlet({ channelFormat: unsupportedType }), `This method currently does not support the ${unsupportedType} type! Please implement it.`);
|
|
98
100
|
}
|
|
99
101
|
}
|
|
100
102
|
static async supportsAllKnownChannelFormats() {
|
|
101
103
|
for (const format of consts_1.TEST_SUPPORTED_CHANNEL_FORMATS) {
|
|
102
|
-
this.Outlet({ channelFormat: format });
|
|
104
|
+
await this.Outlet({ channelFormat: format });
|
|
103
105
|
}
|
|
104
106
|
}
|
|
105
107
|
static async canPushFloatSampleToLsl(sample) {
|
|
106
108
|
var _a, _b, _c;
|
|
107
|
-
const outlet = this.FloatOutlet();
|
|
109
|
+
const outlet = await this.FloatOutlet();
|
|
108
110
|
outlet.pushSample(sample);
|
|
109
111
|
test_utils_1.assert.isEqual((_a = this.fakeLiblsl.lastPushSampleFloatTimestampOptions) === null || _a === void 0 ? void 0 : _a.outlet, this.fakeLiblsl.outlet);
|
|
110
112
|
test_utils_1.assert.isEqualDeep((_b = this.fakeLiblsl.lastPushSampleFloatTimestampOptions) === null || _b === void 0 ? void 0 : _b.sample, sample);
|
|
@@ -118,7 +120,7 @@ class LslOutletTest extends test_utils_1.default {
|
|
|
118
120
|
static async canPushStringSampleToLsl() {
|
|
119
121
|
var _a, _b, _c;
|
|
120
122
|
const sample = [(0, test_utils_1.generateId)()];
|
|
121
|
-
const outlet = this.StringOutlet();
|
|
123
|
+
const outlet = await this.StringOutlet();
|
|
122
124
|
outlet.pushSample(sample);
|
|
123
125
|
test_utils_1.assert.isEqual((_a = this.fakeLiblsl.lastPushSampleStringTimestampOptions) === null || _a === void 0 ? void 0 : _a.outlet, this.fakeLiblsl.outlet);
|
|
124
126
|
test_utils_1.assert.isEqualDeep((_b = this.fakeLiblsl.lastPushSampleStringTimestampOptions) === null || _b === void 0 ? void 0 : _b.sample, sample);
|
|
@@ -126,7 +128,7 @@ class LslOutletTest extends test_utils_1.default {
|
|
|
126
128
|
}
|
|
127
129
|
static async pushingStringTwiceGivesDifferentTimestamps() {
|
|
128
130
|
var _a, _b;
|
|
129
|
-
const outlet = this.StringOutlet();
|
|
131
|
+
const outlet = await this.StringOutlet();
|
|
130
132
|
const sample = [(0, test_utils_1.generateId)()];
|
|
131
133
|
outlet.pushSample(sample);
|
|
132
134
|
const t1 = (_a = this.fakeLiblsl.lastPushSampleStringTimestampOptions) === null || _a === void 0 ? void 0 : _a.timestamp;
|
|
@@ -137,7 +139,7 @@ class LslOutletTest extends test_utils_1.default {
|
|
|
137
139
|
test_utils_1.assert.isEqual(this.fakeLiblsl.localClockHitCount, 2);
|
|
138
140
|
}
|
|
139
141
|
static async constructionCreatesStreamInfo() {
|
|
140
|
-
this.Outlet();
|
|
142
|
+
await this.Outlet();
|
|
141
143
|
const { ...options } = this.randomOutletOptions;
|
|
142
144
|
options.channelCount = options.channelNames.length;
|
|
143
145
|
delete options.manufacturer;
|
|
@@ -152,13 +154,13 @@ class LslOutletTest extends test_utils_1.default {
|
|
|
152
154
|
}
|
|
153
155
|
static async canOverrideClassInstantiatedInFactory() {
|
|
154
156
|
LslOutlet_1.default.Class = CheckingOutlet;
|
|
155
|
-
const instance = this.Outlet();
|
|
157
|
+
const instance = await this.Outlet();
|
|
156
158
|
test_utils_1.assert.isInstanceOf(instance, CheckingOutlet);
|
|
157
159
|
}
|
|
158
160
|
static async appendsChannelsBasedOnCount(labels) {
|
|
159
161
|
const type = (0, test_utils_1.generateId)();
|
|
160
162
|
const unit = (0, test_utils_1.generateId)();
|
|
161
|
-
this.Outlet({ channelNames: labels, type, unit });
|
|
163
|
+
await this.Outlet({ channelNames: labels, type, unit });
|
|
162
164
|
test_utils_1.assert.isEqualDeep(this.fakeLiblsl.lastAppendChannelsToStreamInfoOptions, {
|
|
163
165
|
info: this.fakeLiblsl.streamInfo,
|
|
164
166
|
channels: labels.map((label) => ({
|
|
@@ -169,55 +171,70 @@ class LslOutletTest extends test_utils_1.default {
|
|
|
169
171
|
});
|
|
170
172
|
}
|
|
171
173
|
static async canDestroyOutlet() {
|
|
172
|
-
const outlet = this.Outlet();
|
|
174
|
+
const outlet = await this.Outlet();
|
|
173
175
|
outlet.destroy();
|
|
174
176
|
test_utils_1.assert.isEqual(this.fakeLiblsl.destroyOutletHitCount, 1);
|
|
175
177
|
}
|
|
176
178
|
static async pushSampleShouldNotCreateMultipleOutlets() {
|
|
177
|
-
const outlet = this.FloatOutlet();
|
|
179
|
+
const outlet = await this.FloatOutlet();
|
|
178
180
|
outlet.pushSample([1.0]);
|
|
179
181
|
outlet.pushSample([2.0]);
|
|
180
182
|
outlet.pushSample([3.0]);
|
|
181
183
|
test_utils_1.assert.isEqual(this.fakeLiblsl.createStreamInfoHitCount, 1);
|
|
182
184
|
}
|
|
183
|
-
static
|
|
184
|
-
|
|
185
|
+
static async waitsForTenMsAfterConstructionBeforeReturning() {
|
|
186
|
+
const startMs = Date.now();
|
|
187
|
+
await this.Outlet({ waitAfterConstructionMs: 10 });
|
|
188
|
+
const endMs = Date.now();
|
|
189
|
+
test_utils_1.assert.isAbove(endMs - startMs, 10);
|
|
185
190
|
}
|
|
186
|
-
static
|
|
187
|
-
this.assertDoesThrowInvalidParameters({
|
|
191
|
+
static async assertThrowsInvalidMaxBuffered(maxBuffered) {
|
|
192
|
+
await this.assertDoesThrowInvalidParameters({ maxBuffered }, [
|
|
193
|
+
'maxBuffered',
|
|
194
|
+
]);
|
|
188
195
|
}
|
|
189
|
-
static
|
|
190
|
-
this.assertDoesThrowInvalidParameters({
|
|
196
|
+
static async assertThrowsInvalidChunkSize(chunkSize) {
|
|
197
|
+
await this.assertDoesThrowInvalidParameters({ chunkSize }, [
|
|
198
|
+
'chunkSize',
|
|
199
|
+
]);
|
|
191
200
|
}
|
|
192
|
-
static
|
|
193
|
-
this.assertDoesThrowInvalidParameters({
|
|
201
|
+
static async assertThrowsInvalidSampleRate(sampleRate) {
|
|
202
|
+
await this.assertDoesThrowInvalidParameters({ sampleRate }, [
|
|
203
|
+
'sampleRate',
|
|
204
|
+
]);
|
|
205
|
+
}
|
|
206
|
+
static async assertThrowsInvalidChannelNames(count) {
|
|
207
|
+
await this.assertDoesThrowInvalidParameters({ channelNames: new Array(count).fill((0, test_utils_1.generateId)()) }, ['channelNames']);
|
|
194
208
|
}
|
|
195
|
-
static assertDoesThrowInvalidParameters(options, parameters) {
|
|
196
|
-
const err = test_utils_1.assert.
|
|
209
|
+
static async assertDoesThrowInvalidParameters(options, parameters) {
|
|
210
|
+
const err = await test_utils_1.assert.doesThrowAsync(async () => await this.Outlet(options));
|
|
197
211
|
test_utils_1.errorAssert.assertError(err, 'INVALID_PARAMETERS', {
|
|
198
212
|
parameters,
|
|
199
213
|
});
|
|
200
214
|
}
|
|
201
|
-
static
|
|
202
|
-
return
|
|
215
|
+
static async StringOutlet() {
|
|
216
|
+
return await this.Outlet({ channelFormat: 'string' });
|
|
217
|
+
}
|
|
218
|
+
static async FloatOutlet() {
|
|
219
|
+
return await this.Outlet({ channelFormat: 'float32' });
|
|
220
|
+
}
|
|
221
|
+
static async Outlet(options) {
|
|
222
|
+
return await LslOutlet_1.default.Create({
|
|
203
223
|
...this.randomOutletOptions,
|
|
204
224
|
...options,
|
|
205
225
|
});
|
|
206
226
|
}
|
|
207
|
-
static StringOutlet() {
|
|
208
|
-
return this.Outlet({ channelFormat: 'string' });
|
|
209
|
-
}
|
|
210
|
-
static FloatOutlet() {
|
|
211
|
-
return this.Outlet({ channelFormat: 'float32' });
|
|
212
|
-
}
|
|
213
227
|
}
|
|
214
228
|
exports.default = LslOutletTest;
|
|
215
229
|
__decorate([
|
|
216
230
|
(0, test_utils_1.test)()
|
|
217
|
-
], LslOutletTest, "
|
|
231
|
+
], LslOutletTest, "throwsWithMissingRequiredParams", null);
|
|
218
232
|
__decorate([
|
|
219
233
|
(0, test_utils_1.test)()
|
|
220
234
|
], LslOutletTest, "throwsWithInvalidChannelNames", null);
|
|
235
|
+
__decorate([
|
|
236
|
+
(0, test_utils_1.test)()
|
|
237
|
+
], LslOutletTest, "allowsZeroSampleRate", null);
|
|
221
238
|
__decorate([
|
|
222
239
|
(0, test_utils_1.test)()
|
|
223
240
|
], LslOutletTest, "throwsWithInvalidSampleRate", null);
|
|
@@ -262,6 +279,9 @@ __decorate([
|
|
|
262
279
|
__decorate([
|
|
263
280
|
(0, test_utils_1.test)()
|
|
264
281
|
], LslOutletTest, "pushSampleShouldNotCreateMultipleOutlets", null);
|
|
282
|
+
__decorate([
|
|
283
|
+
(0, test_utils_1.test)()
|
|
284
|
+
], LslOutletTest, "waitsForTenMsAfterConstructionBeforeReturning", null);
|
|
265
285
|
class CheckingOutlet extends LslOutlet_1.default {
|
|
266
286
|
constructor(options) {
|
|
267
287
|
super(options);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LslOutlet.test.js","sourceRoot":"","sources":["../../../src/__tests__/behavioral/LslOutlet.test.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,qEAK+B;AAC/B,0EAAqD;AACrD,
|
|
1
|
+
{"version":3,"file":"LslOutlet.test.js","sourceRoot":"","sources":["../../../src/__tests__/behavioral/LslOutlet.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -37,18 +37,18 @@ const test_utils_1 = __importStar(require("@sprucelabs/test-utils"));
|
|
|
37
37
|
const Liblsl_1 = __importDefault(require("../../implementations/Liblsl"));
|
|
38
38
|
const TimeMarkerOutlet_1 = __importDefault(require("../../implementations/TimeMarkerOutlet"));
|
|
39
39
|
const FakeLiblsl_1 = __importDefault(require("../../testDoubles/FakeLiblsl"));
|
|
40
|
-
const
|
|
40
|
+
const SpyTimeMarkerOutlet_1 = __importDefault(require("../../testDoubles/SpyTimeMarkerOutlet"));
|
|
41
41
|
const generateRandomOutletOptions_1 = __importDefault(require("../support/generateRandomOutletOptions"));
|
|
42
42
|
class TimeMarkerOutletTest extends test_utils_1.default {
|
|
43
43
|
static async beforeEach() {
|
|
44
44
|
await super.beforeEach();
|
|
45
|
-
TimeMarkerOutlet_1.default.Class =
|
|
45
|
+
TimeMarkerOutlet_1.default.Class = SpyTimeMarkerOutlet_1.default;
|
|
46
46
|
this.fakeLiblsl = new FakeLiblsl_1.default();
|
|
47
47
|
Liblsl_1.default.setInstance(this.fakeLiblsl);
|
|
48
|
-
this.outlet = this.Outlet();
|
|
48
|
+
this.outlet = await this.Outlet();
|
|
49
49
|
}
|
|
50
50
|
static async loadsWithTimeMarkerSpecificOptions() {
|
|
51
|
-
test_utils_1.assert.isEqualDeep(this.outlet.
|
|
51
|
+
test_utils_1.assert.isEqualDeep(this.outlet.passedOptions, {
|
|
52
52
|
name: 'Time markers',
|
|
53
53
|
type: 'Markers',
|
|
54
54
|
channelNames: ['Markers'],
|
|
@@ -63,8 +63,8 @@ class TimeMarkerOutletTest extends test_utils_1.default {
|
|
|
63
63
|
}
|
|
64
64
|
static async canOverrideDefaultOptions() {
|
|
65
65
|
const options = (0, generateRandomOutletOptions_1.default)();
|
|
66
|
-
const outlet = this.Outlet(options);
|
|
67
|
-
test_utils_1.assert.isEqualDeep(outlet.
|
|
66
|
+
const outlet = await this.Outlet(options);
|
|
67
|
+
test_utils_1.assert.isEqualDeep(outlet.passedOptions, options);
|
|
68
68
|
}
|
|
69
69
|
static async pushingSingleMarkerIncrementsHitCountAndWaitTime() {
|
|
70
70
|
const markers = [this.generateDurationMarkerValues()];
|
|
@@ -98,7 +98,7 @@ class TimeMarkerOutletTest extends test_utils_1.default {
|
|
|
98
98
|
test_utils_1.assert.isEqual(hitCount, 10);
|
|
99
99
|
}
|
|
100
100
|
static async doesNotWaitIfStopped() {
|
|
101
|
-
this.setupTimeMarkerImpl();
|
|
101
|
+
await this.setupTimeMarkerImpl();
|
|
102
102
|
const startMs = Date.now();
|
|
103
103
|
const promise = this.pushTotalMarkers(2, 1000);
|
|
104
104
|
this.outlet.stop();
|
|
@@ -107,16 +107,16 @@ class TimeMarkerOutletTest extends test_utils_1.default {
|
|
|
107
107
|
test_utils_1.assert.isBelow(endMs - startMs, 10);
|
|
108
108
|
}
|
|
109
109
|
static async clearsTheTimeoutOnStop() {
|
|
110
|
-
this.setupTimeMarkerImpl();
|
|
110
|
+
await this.setupTimeMarkerImpl();
|
|
111
111
|
const promise = this.pushTotalMarkers(2, 100);
|
|
112
112
|
this.outlet.stop();
|
|
113
113
|
this.outlet.pushSample = () => test_utils_1.assert.fail('Should not have been called');
|
|
114
114
|
await promise;
|
|
115
115
|
await this.wait(100);
|
|
116
116
|
}
|
|
117
|
-
static setupTimeMarkerImpl() {
|
|
117
|
+
static async setupTimeMarkerImpl() {
|
|
118
118
|
TimeMarkerOutlet_1.default.Class = TimeMarkerOutlet_1.default;
|
|
119
|
-
this.outlet = this.Outlet();
|
|
119
|
+
this.outlet = await this.Outlet();
|
|
120
120
|
}
|
|
121
121
|
static async pushTotalMarkers(total, durationMs) {
|
|
122
122
|
const markers = new Array(total)
|
|
@@ -131,8 +131,8 @@ class TimeMarkerOutletTest extends test_utils_1.default {
|
|
|
131
131
|
durationMs: durationMs !== null && durationMs !== void 0 ? durationMs : (0, crypto_1.randomInt)(100, 1000),
|
|
132
132
|
};
|
|
133
133
|
}
|
|
134
|
-
static Outlet(options) {
|
|
135
|
-
return TimeMarkerOutlet_1.default.
|
|
134
|
+
static async Outlet(options) {
|
|
135
|
+
return (await TimeMarkerOutlet_1.default.Create(options));
|
|
136
136
|
}
|
|
137
137
|
}
|
|
138
138
|
exports.default = TimeMarkerOutletTest;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TimeMarkerOutlet.test.js","sourceRoot":"","sources":["../../../src/__tests__/behavioral/TimeMarkerOutlet.test.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,mCAAkC;AAClC,qEAI+B;AAC/B,0EAAqD;
|
|
1
|
+
{"version":3,"file":"TimeMarkerOutlet.test.js","sourceRoot":"","sources":["../../../src/__tests__/behavioral/TimeMarkerOutlet.test.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,mCAAkC;AAClC,qEAI+B;AAC/B,0EAAqD;AAErD,8FAAyE;AACzE,8EAAqD;AACrD,gGAAuE;AACvE,yGAAgF;AAEhF,MAAqB,oBAAqB,SAAQ,oBAAkB;IAItD,MAAM,CAAC,KAAK,CAAC,UAAU;QAC7B,MAAM,KAAK,CAAC,UAAU,EAAE,CAAA;QACxB,0BAAoB,CAAC,KAAK,GAAG,6BAAmB,CAAA;QAChD,IAAI,CAAC,UAAU,GAAG,IAAI,oBAAU,EAAE,CAAA;QAClC,gBAAU,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;QACvC,IAAI,CAAC,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,EAAE,CAAA;IACrC,CAAC;IAGsB,AAAb,MAAM,CAAC,KAAK,CAAC,kCAAkC;QACrD,mBAAM,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE;YAC1C,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;SACjB,CAAC,CAAA;IACN,CAAC;IAGsB,AAAb,MAAM,CAAC,KAAK,CAAC,yBAAyB;QAC5C,MAAM,OAAO,GAAG,IAAA,qCAA2B,GAAE,CAAA;QAC7C,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;QACzC,mBAAM,CAAC,WAAW,CAAC,MAAM,CAAC,aAAa,EAAE,OAAO,CAAC,CAAA;IACrD,CAAC;IAGsB,AAAb,MAAM,CAAC,KAAK,CAAC,gDAAgD;QACnE,MAAM,OAAO,GAAG,CAAC,IAAI,CAAC,4BAA4B,EAAE,CAAC,CAAA;QACrD,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,CAAA;QAEtC,mBAAM,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,iCAAiC,EAAE,CAAC,CAAC,CAAA;QACpE,mBAAM,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAA;IACtE,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,IAAI,CAAC,UAAU,CAAC,iCAAiC,EAAE,CAAC,CAAC,CAAA;QACpE,mBAAM,CAAC,OAAO,CACV,IAAI,CAAC,MAAM,CAAC,eAAe,EAC3B,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,CAChD,CAAA;IACL,CAAC;IAKsB,AAAb,MAAM,CAAC,KAAK,CAAC,yBAAyB,CAAC,OAAe;QAC5D,IAAI,QAAQ,GAAG,CAAC,CAAA;QAEhB,IAAI,CAAC,MAAM,CAAC,UAAU,GAAG,GAAG,EAAE;YAC1B,QAAQ,IAAI,CAAC,CAAA;YACb,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;gBACvB,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAA;YACtB,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,MAAM,CAAC,IAAI,EAAE,CAAA;QAElB,IAAI,QAAQ,GAAG,CAAC,CAAA;QAEhB,IAAI,CAAC,MAAM,CAAC,UAAU,GAAG,GAAG,EAAE;YAC1B,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,mBAAmB,EAAE,CAAA;QAEhC,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;QAC1B,MAAM,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC,CAAC,EAAE,IAAI,CAAC,CAAA;QAC9C,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAA;QAClB,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,MAAM,IAAI,CAAC,mBAAmB,EAAE,CAAA;QAEhC,MAAM,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;QAE7C,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAA;QAClB,IAAI,CAAC,MAAM,CAAC,UAAU,GAAG,GAAG,EAAE,CAC1B,mBAAM,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAA;QAE9C,MAAM,OAAO,CAAA;QACb,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IACxB,CAAC;IAEO,MAAM,CAAC,KAAK,CAAC,mBAAmB;QACpC,0BAAoB,CAAC,KAAK,GAAG,0BAA2B,CAAA;QACxD,IAAI,CAAC,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,EAAE,CAAA;IACrC,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,4BAA4B,CAAC,UAAU,CAAC,CAAC,CAAA;QAE7D,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,CAAA;QAEtC,OAAO,OAAO,CAAA;IAClB,CAAC;IAEO,MAAM,CAAC,4BAA4B,CAAC,UAAmB;QAC3D,OAAO;YACH,IAAI,EAAE,IAAA,uBAAU,GAAE;YAClB,UAAU,EAAE,UAAU,aAAV,UAAU,cAAV,UAAU,GAAI,IAAA,kBAAS,EAAC,GAAG,EAAE,IAAI,CAAC;SACjD,CAAA;IACL,CAAC;IAEO,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,OAAmC;QAC3D,OAAO,CAAC,MAAM,0BAAoB,CAAC,MAAM,CACrC,OAAO,CACV,CAAwB,CAAA;IAC7B,CAAC;CACJ;AA9ID,uCA8IC;AAjI0B;IADtB,IAAA,iBAAI,GAAE;oEAcN;AAGsB;IADtB,IAAA,iBAAI,GAAE;2DAKN;AAGsB;IADtB,IAAA,iBAAI,GAAE;kFAON;AAGsB;IADtB,IAAA,iBAAI,GAAE;qFASN;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;2DAcvC;AAGsB;IADtB,IAAA,iBAAI,GAAE;4DAaN;AAGsB;IADtB,IAAA,iBAAI,GAAE;sDAWN;AAGsB;IADtB,IAAA,iBAAI,GAAE;wDAYN"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { LslOutletOptions } from '../../
|
|
1
|
+
import { LslOutletOptions } from '../../implementations/LslOutlet';
|
|
2
2
|
export default function generateRandomOutletOptions(): LslOutletOptions;
|
|
@@ -1,15 +1,34 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { ChannelFormat, LslSample } from '../nodeLsl.types';
|
|
2
2
|
export default class LslOutletImpl implements LslOutlet {
|
|
3
|
-
static Class?:
|
|
3
|
+
static Class?: LslOutletConstructor;
|
|
4
4
|
private options;
|
|
5
5
|
private streamInfo;
|
|
6
6
|
private outlet;
|
|
7
7
|
private pushSampleByType;
|
|
8
|
-
static Outlet(options: LslOutletOptions): LslOutlet;
|
|
9
8
|
protected constructor(options: LslOutletOptions);
|
|
9
|
+
static Create(options: LslOutletOptions): Promise<LslOutlet>;
|
|
10
|
+
private static wait;
|
|
10
11
|
destroy(): void;
|
|
11
12
|
pushSample(sample: LslSample): void;
|
|
12
13
|
private getPushMethod;
|
|
13
14
|
private lookupChannelFormat;
|
|
14
15
|
private get lsl();
|
|
15
16
|
}
|
|
17
|
+
export interface LslOutlet {
|
|
18
|
+
destroy(): void;
|
|
19
|
+
pushSample(sample: LslSample): void;
|
|
20
|
+
}
|
|
21
|
+
export type LslOutletConstructor = new (options: LslOutletOptions) => LslOutlet;
|
|
22
|
+
export interface LslOutletOptions {
|
|
23
|
+
name: string;
|
|
24
|
+
type: string;
|
|
25
|
+
channelNames: string[];
|
|
26
|
+
sampleRate: number;
|
|
27
|
+
channelFormat: ChannelFormat;
|
|
28
|
+
sourceId: string;
|
|
29
|
+
manufacturer: string;
|
|
30
|
+
unit: string;
|
|
31
|
+
chunkSize: number;
|
|
32
|
+
maxBuffered: number;
|
|
33
|
+
waitAfterConstructionMs?: number;
|
|
34
|
+
}
|
|
@@ -8,10 +8,6 @@ const assertions_1 = require("../assertions");
|
|
|
8
8
|
const consts_1 = require("../consts");
|
|
9
9
|
const Liblsl_1 = __importDefault(require("./Liblsl"));
|
|
10
10
|
class LslOutletImpl {
|
|
11
|
-
static Outlet(options) {
|
|
12
|
-
var _a;
|
|
13
|
-
return new ((_a = this.Class) !== null && _a !== void 0 ? _a : this)(options);
|
|
14
|
-
}
|
|
15
11
|
constructor(options) {
|
|
16
12
|
const { sampleRate, channelFormat } = (0, schema_1.assertOptions)(options, [
|
|
17
13
|
'name',
|
|
@@ -56,6 +52,16 @@ class LslOutletImpl {
|
|
|
56
52
|
const pushMethod = this.getPushMethod();
|
|
57
53
|
this.pushSampleByType = this.lsl[pushMethod].bind(this.lsl);
|
|
58
54
|
}
|
|
55
|
+
static async Create(options) {
|
|
56
|
+
var _a;
|
|
57
|
+
const { waitAfterConstructionMs = 10 } = options !== null && options !== void 0 ? options : {};
|
|
58
|
+
const instance = new ((_a = this.Class) !== null && _a !== void 0 ? _a : this)(options);
|
|
59
|
+
await this.wait(waitAfterConstructionMs);
|
|
60
|
+
return instance;
|
|
61
|
+
}
|
|
62
|
+
static wait(waitMs) {
|
|
63
|
+
return new Promise((resolve) => setTimeout(resolve, waitMs));
|
|
64
|
+
}
|
|
59
65
|
destroy() {
|
|
60
66
|
this.lsl.destroyOutlet({ outlet: this.outlet });
|
|
61
67
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LslOutlet.js","sourceRoot":"","sources":["../../src/implementations/LslOutlet.ts"],"names":[],"mappings":";;;;;AAAA,+CAAkD;AAClD,8CAMsB;AACtB,sCAA+C;
|
|
1
|
+
{"version":3,"file":"LslOutlet.js","sourceRoot":"","sources":["../../src/implementations/LslOutlet.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,13 +1,18 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import LslOutletImpl from './LslOutlet';
|
|
1
|
+
import { DurationMarker } from '../nodeLsl.types';
|
|
2
|
+
import LslOutletImpl, { LslOutlet, LslOutletOptions } from './LslOutlet';
|
|
3
3
|
export default class TimeMarkerOutletImpl extends LslOutletImpl implements TimeMarkerOutlet {
|
|
4
4
|
static Class?: TimeMarkerOutletConstructor;
|
|
5
5
|
private isPlaying;
|
|
6
6
|
private waitResolve?;
|
|
7
7
|
private timeout?;
|
|
8
|
-
static
|
|
8
|
+
static Create(options?: Partial<LslOutletOptions>): Promise<TimeMarkerOutlet>;
|
|
9
9
|
pushMarkers(markers: DurationMarker[]): Promise<void>;
|
|
10
10
|
protected wait(durationMs: number): Promise<unknown>;
|
|
11
11
|
private setTimeout;
|
|
12
12
|
stop(): void;
|
|
13
13
|
}
|
|
14
|
+
export interface TimeMarkerOutlet extends LslOutlet {
|
|
15
|
+
pushMarkers(markers: DurationMarker[]): Promise<void>;
|
|
16
|
+
stop(): void;
|
|
17
|
+
}
|
|
18
|
+
export type TimeMarkerOutletConstructor = new (options: LslOutletOptions) => TimeMarkerOutlet;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TimeMarkerOutlet.js","sourceRoot":"","sources":["../../src/implementations/TimeMarkerOutlet.ts"],"names":[],"mappings":";;;;;
|
|
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,MAAA,IAAI,CAAC,KAAK,mCAAI,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,MAAA,IAAI,CAAC,WAAW,oDAAI,CAAA;QACpB,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QAC1B,IAAI,CAAC,SAAS,GAAG,KAAK,CAAA;IAC1B,CAAC;CACJ;AA1DD,uCA0DC"}
|
package/build/index.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
export * from './nodeLsl.types';
|
|
1
2
|
export { default as LiblslImpl } from './implementations/Liblsl';
|
|
2
3
|
export * from './implementations/Liblsl';
|
|
3
4
|
export { default as LslOutletImpl } from './implementations/LslOutlet';
|
|
@@ -6,11 +7,10 @@ export { default as TimeMarkerOutletImpl } from './implementations/TimeMarkerOut
|
|
|
6
7
|
export * from './implementations/TimeMarkerOutlet';
|
|
7
8
|
export { default as FakeLiblsl } from './testDoubles/FakeLiblsl';
|
|
8
9
|
export * from './testDoubles/FakeLiblsl';
|
|
9
|
-
export { default as
|
|
10
|
-
export * from './testDoubles/
|
|
11
|
-
export { default as SpyImplementsTimeMarkerOutlet } from './testDoubles/SpyImplementsTimeMarkerOutlet';
|
|
12
|
-
export * from './testDoubles/SpyImplementsTimeMarkerOutlet';
|
|
10
|
+
export { default as FakeTimeMarkerOutlet } from './testDoubles/FakeTimeMarkerOutlet';
|
|
11
|
+
export * from './testDoubles/FakeTimeMarkerOutlet';
|
|
13
12
|
export { default as MockTimeMarkerOutlet } from './testDoubles/MockTimeMarkerOutlet';
|
|
14
13
|
export * from './testDoubles/MockTimeMarkerOutlet';
|
|
15
|
-
export
|
|
14
|
+
export { default as SpyTimeMarkerOutlet } from './testDoubles/SpyTimeMarkerOutlet';
|
|
15
|
+
export * from './testDoubles/SpyTimeMarkerOutlet';
|
|
16
16
|
export { default as generateRandomOutletOptions } from './__tests__/support/generateRandomOutletOptions';
|
package/build/index.js
CHANGED
|
@@ -17,7 +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.
|
|
20
|
+
exports.generateRandomOutletOptions = exports.SpyTimeMarkerOutlet = exports.MockTimeMarkerOutlet = exports.FakeTimeMarkerOutlet = exports.FakeLiblsl = exports.TimeMarkerOutletImpl = exports.LslOutletImpl = exports.LiblslImpl = void 0;
|
|
21
|
+
__exportStar(require("./nodeLsl.types"), exports);
|
|
21
22
|
var Liblsl_1 = require("./implementations/Liblsl");
|
|
22
23
|
Object.defineProperty(exports, "LiblslImpl", { enumerable: true, get: function () { return __importDefault(Liblsl_1).default; } });
|
|
23
24
|
__exportStar(require("./implementations/Liblsl"), exports);
|
|
@@ -30,16 +31,15 @@ __exportStar(require("./implementations/TimeMarkerOutlet"), exports);
|
|
|
30
31
|
var FakeLiblsl_1 = require("./testDoubles/FakeLiblsl");
|
|
31
32
|
Object.defineProperty(exports, "FakeLiblsl", { enumerable: true, get: function () { return __importDefault(FakeLiblsl_1).default; } });
|
|
32
33
|
__exportStar(require("./testDoubles/FakeLiblsl"), exports);
|
|
33
|
-
var
|
|
34
|
-
Object.defineProperty(exports, "
|
|
35
|
-
__exportStar(require("./testDoubles/
|
|
36
|
-
var SpyImplementsTimeMarkerOutlet_1 = require("./testDoubles/SpyImplementsTimeMarkerOutlet");
|
|
37
|
-
Object.defineProperty(exports, "SpyImplementsTimeMarkerOutlet", { enumerable: true, get: function () { return __importDefault(SpyImplementsTimeMarkerOutlet_1).default; } });
|
|
38
|
-
__exportStar(require("./testDoubles/SpyImplementsTimeMarkerOutlet"), exports);
|
|
34
|
+
var FakeTimeMarkerOutlet_1 = require("./testDoubles/FakeTimeMarkerOutlet");
|
|
35
|
+
Object.defineProperty(exports, "FakeTimeMarkerOutlet", { enumerable: true, get: function () { return __importDefault(FakeTimeMarkerOutlet_1).default; } });
|
|
36
|
+
__exportStar(require("./testDoubles/FakeTimeMarkerOutlet"), exports);
|
|
39
37
|
var MockTimeMarkerOutlet_1 = require("./testDoubles/MockTimeMarkerOutlet");
|
|
40
38
|
Object.defineProperty(exports, "MockTimeMarkerOutlet", { enumerable: true, get: function () { return __importDefault(MockTimeMarkerOutlet_1).default; } });
|
|
41
39
|
__exportStar(require("./testDoubles/MockTimeMarkerOutlet"), exports);
|
|
42
|
-
|
|
40
|
+
var SpyTimeMarkerOutlet_1 = require("./testDoubles/SpyTimeMarkerOutlet");
|
|
41
|
+
Object.defineProperty(exports, "SpyTimeMarkerOutlet", { enumerable: true, get: function () { return __importDefault(SpyTimeMarkerOutlet_1).default; } });
|
|
42
|
+
__exportStar(require("./testDoubles/SpyTimeMarkerOutlet"), exports);
|
|
43
43
|
var generateRandomOutletOptions_1 = require("./__tests__/support/generateRandomOutletOptions");
|
|
44
44
|
Object.defineProperty(exports, "generateRandomOutletOptions", { enumerable: true, get: function () { return __importDefault(generateRandomOutletOptions_1).default; } });
|
|
45
45
|
//# sourceMappingURL=index.js.map
|
package/build/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA,mDAAgE;AAAvD,qHAAA,OAAO,OAAc;AAC9B,2DAAwC;AAExC,yDAAsE;AAA7D,2HAAA,OAAO,OAAiB;AACjC,8DAA2C;AAE3C,uEAAoF;AAA3E,yIAAA,OAAO,OAAwB;AACxC,qEAAkD;AAElD,uDAAgE;AAAvD,yHAAA,OAAO,OAAc;AAC9B,2DAAwC;AAExC,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA,kDAA+B;AAE/B,mDAAgE;AAAvD,qHAAA,OAAO,OAAc;AAC9B,2DAAwC;AAExC,yDAAsE;AAA7D,2HAAA,OAAO,OAAiB;AACjC,8DAA2C;AAE3C,uEAAoF;AAA3E,yIAAA,OAAO,OAAwB;AACxC,qEAAkD;AAElD,uDAAgE;AAAvD,yHAAA,OAAO,OAAc;AAC9B,2DAAwC;AAExC,2EAAoF;AAA3E,6IAAA,OAAO,OAAwB;AACxC,qEAAkD;AAElD,2EAAoF;AAA3E,6IAAA,OAAO,OAAwB;AACxC,qEAAkD;AAElD,yEAAkF;AAAzE,2IAAA,OAAO,OAAuB;AACvC,oEAAiD;AAEjD,+FAAwG;AAA/F,2JAAA,OAAO,OAA+B"}
|
package/build/nodeLsl.types.d.ts
CHANGED
|
@@ -1,27 +1,6 @@
|
|
|
1
1
|
import { FuncObj, FieldType } from 'ffi-rs';
|
|
2
2
|
import { CHANNEL_FORMATS } from './consts';
|
|
3
|
-
export interface LslOutlet {
|
|
4
|
-
destroy(): void;
|
|
5
|
-
pushSample(sample: LslSample): void;
|
|
6
|
-
}
|
|
7
|
-
export interface LslOutletOptions {
|
|
8
|
-
name: string;
|
|
9
|
-
type: string;
|
|
10
|
-
channelNames: string[];
|
|
11
|
-
sampleRate: number;
|
|
12
|
-
channelFormat: ChannelFormat;
|
|
13
|
-
sourceId: string;
|
|
14
|
-
manufacturer: string;
|
|
15
|
-
unit: string;
|
|
16
|
-
chunkSize: number;
|
|
17
|
-
maxBuffered: number;
|
|
18
|
-
}
|
|
19
3
|
export type ChannelFormat = (typeof CHANNEL_FORMATS)[number];
|
|
20
|
-
export interface TimeMarkerOutlet extends LslOutlet {
|
|
21
|
-
pushMarkers(markers: DurationMarker[]): Promise<void>;
|
|
22
|
-
stop(): void;
|
|
23
|
-
}
|
|
24
|
-
export type TimeMarkerOutletConstructor = new (options: LslOutletOptions) => TimeMarkerOutlet;
|
|
25
4
|
export interface DurationMarker {
|
|
26
5
|
name: string;
|
|
27
6
|
durationMs: number;
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
1
|
+
import { TimeMarkerOutlet } from '../implementations/TimeMarkerOutlet';
|
|
2
|
+
import { DurationMarker } from '../nodeLsl.types';
|
|
3
|
+
export default class FakeTimeMarkerOutlet implements TimeMarkerOutlet {
|
|
3
4
|
pushMarkersCalls: DurationMarker[][];
|
|
4
5
|
pushSampleCalls: string[][];
|
|
5
6
|
numStopCalls: number;
|
|
@@ -9,5 +10,5 @@ export default class SpyImplementsTimeMarkerOutlet implements TimeMarkerOutlet {
|
|
|
9
10
|
pushSample(sample: string[]): void;
|
|
10
11
|
stop(): void;
|
|
11
12
|
destroy(): void;
|
|
12
|
-
|
|
13
|
+
resetTestDouble(): void;
|
|
13
14
|
}
|