@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.
- package/build/__tests__/AbstractNodeLslTest.d.ts +18 -0
- package/build/__tests__/AbstractNodeLslTest.js +80 -0
- package/build/__tests__/AbstractNodeLslTest.js.map +1 -0
- package/build/__tests__/{implementation/Liblsl.test.d.ts → Liblsl.test.d.ts} +6 -0
- package/build/__tests__/{implementation/Liblsl.test.js → Liblsl.test.js} +60 -14
- package/build/__tests__/Liblsl.test.js.map +1 -0
- package/build/__tests__/LslInlet.test.d.ts +11 -0
- package/build/__tests__/LslInlet.test.js +94 -0
- package/build/__tests__/LslInlet.test.js.map +1 -0
- package/build/__tests__/{behavioral/LslOutlet.test.d.ts → LslOutlet.test.d.ts} +3 -6
- package/build/__tests__/{behavioral/LslOutlet.test.js → LslOutlet.test.js} +24 -68
- package/build/__tests__/LslOutlet.test.js.map +1 -0
- package/build/__tests__/LslStreamInfo.test.d.ts +21 -0
- package/build/__tests__/LslStreamInfo.test.js +166 -0
- package/build/__tests__/LslStreamInfo.test.js.map +1 -0
- package/build/__tests__/SpyLslStreamInfo.d.ts +5 -0
- package/build/__tests__/SpyLslStreamInfo.js +17 -0
- package/build/__tests__/SpyLslStreamInfo.js.map +1 -0
- package/build/__tests__/{behavioral/TimeMarkerOutlet.test.d.ts → TimeMarkerOutlet.test.d.ts} +2 -3
- package/build/__tests__/{behavioral/TimeMarkerOutlet.test.js → TimeMarkerOutlet.test.js} +7 -33
- package/build/__tests__/TimeMarkerOutlet.test.js.map +1 -0
- package/build/{implementations → components}/Liblsl.d.ts +4 -2
- package/build/{implementations → components}/Liblsl.js +23 -4
- package/build/components/Liblsl.js.map +1 -0
- package/build/components/LslInlet.d.ts +31 -0
- package/build/components/LslInlet.js +51 -0
- package/build/components/LslInlet.js.map +1 -0
- package/build/{implementations → components}/LslOutlet.d.ts +20 -9
- package/build/components/LslOutlet.js +118 -0
- package/build/components/LslOutlet.js.map +1 -0
- package/build/components/LslStreamInfo.d.ts +38 -0
- package/build/components/LslStreamInfo.js +65 -0
- package/build/components/LslStreamInfo.js.map +1 -0
- package/build/{implementations → components}/TimeMarkerOutlet.d.ts +2 -1
- package/build/{implementations → components}/TimeMarkerOutlet.js +1 -1
- package/build/components/TimeMarkerOutlet.js.map +1 -0
- package/build/demo.d.ts +1 -0
- package/build/demo.js +42 -0
- package/build/demo.js.map +1 -0
- package/build/index.d.ts +12 -7
- package/build/index.js +16 -8
- package/build/index.js.map +1 -1
- package/build/nodeLsl.types.d.ts +34 -18
- package/build/testDoubles/FakeLiblsl.d.ts +11 -3
- package/build/testDoubles/FakeLiblsl.js +29 -5
- package/build/testDoubles/FakeLiblsl.js.map +1 -1
- package/build/testDoubles/FakeLslOutlet.d.ts +4 -2
- package/build/testDoubles/FakeLslOutlet.js +2 -1
- package/build/testDoubles/FakeLslOutlet.js.map +1 -1
- package/build/testDoubles/FakeLslStreamInfo.d.ts +5 -0
- package/build/testDoubles/FakeLslStreamInfo.js +10 -0
- package/build/testDoubles/FakeLslStreamInfo.js.map +1 -0
- package/build/testDoubles/FakeStreamInfo.d.ts +9 -0
- package/build/testDoubles/FakeStreamInfo.js +17 -0
- package/build/testDoubles/FakeStreamInfo.js.map +1 -0
- package/build/testDoubles/FakeTimeMarkerOutlet.d.ts +1 -1
- package/build/testDoubles/SpyLslInlet.d.ts +7 -0
- package/build/testDoubles/SpyLslInlet.js +20 -0
- package/build/testDoubles/SpyLslInlet.js.map +1 -0
- package/build/testDoubles/SpyLslStreamInfo.d.ts +9 -0
- package/build/testDoubles/SpyLslStreamInfo.js +28 -0
- package/build/testDoubles/SpyLslStreamInfo.js.map +1 -0
- package/build/testDoubles/SpyTimeMarkerOutlet.d.ts +4 -3
- package/build/testDoubles/SpyTimeMarkerOutlet.js +3 -3
- package/build/testDoubles/SpyTimeMarkerOutlet.js.map +1 -1
- package/build/testDoubles/consts.js.map +1 -0
- package/build/{__tests__/support → testDoubles}/generateRandomOutletOptions.d.ts +1 -1
- package/build/testDoubles/generateRandomOutletOptions.js.map +1 -0
- package/package.json +1 -1
- package/src/__tests__/AbstractNodeLslTest.ts +50 -0
- package/src/__tests__/{implementation/Liblsl.test.ts → Liblsl.test.ts} +49 -8
- package/src/__tests__/LslInlet.test.ts +99 -0
- package/src/__tests__/{behavioral/LslOutlet.test.ts → LslOutlet.test.ts} +29 -64
- package/src/__tests__/LslStreamInfo.test.ts +209 -0
- package/src/__tests__/{behavioral/TimeMarkerOutlet.test.ts → TimeMarkerOutlet.test.ts} +12 -17
- package/src/{implementations → components}/Liblsl.ts +29 -5
- package/src/components/LslInlet.ts +85 -0
- package/src/{implementations → components}/LslOutlet.ts +91 -64
- package/src/components/LslStreamInfo.ts +105 -0
- package/src/{implementations → components}/TimeMarkerOutlet.ts +3 -1
- package/src/demo.ts +43 -0
- package/src/index.ts +15 -7
- package/src/nodeLsl.types.ts +36 -23
- package/src/testDoubles/FakeLiblsl.ts +40 -7
- package/src/testDoubles/FakeLslOutlet.ts +5 -2
- package/src/testDoubles/FakeStreamInfo.ts +19 -0
- package/src/testDoubles/FakeTimeMarkerOutlet.ts +1 -1
- package/src/testDoubles/SpyLslInlet.ts +16 -0
- package/src/testDoubles/SpyLslStreamInfo.ts +27 -0
- package/src/testDoubles/SpyTimeMarkerOutlet.ts +5 -4
- package/src/{__tests__/support → testDoubles}/generateRandomOutletOptions.ts +1 -1
- package/build/__tests__/behavioral/LslOutlet.test.js.map +0 -1
- package/build/__tests__/behavioral/TimeMarkerOutlet.test.js.map +0 -1
- package/build/__tests__/implementation/Liblsl.test.js.map +0 -1
- package/build/__tests__/support/consts.js.map +0 -1
- package/build/__tests__/support/generateRandomOutletOptions.js.map +0 -1
- package/build/implementations/Liblsl.js.map +0 -1
- package/build/implementations/LslOutlet.js +0 -94
- package/build/implementations/LslOutlet.js.map +0 -1
- package/build/implementations/TimeMarkerOutlet.js.map +0 -1
- /package/build/{__tests__/support → testDoubles}/consts.d.ts +0 -0
- /package/build/{__tests__/support → testDoubles}/consts.js +0 -0
- /package/build/{__tests__/support → testDoubles}/generateRandomOutletOptions.js +0 -0
- /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"}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|