@neurodevs/node-lsl 12.0.0 → 12.0.1
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__/AbstractPackageTest.d.ts +3 -3
- package/build/__tests__/AbstractPackageTest.js +34 -39
- package/build/__tests__/AbstractPackageTest.js.map +1 -1
- package/build/__tests__/impl/LiblslAdapter.test.d.ts +3 -1
- package/build/__tests__/impl/LiblslAdapter.test.js +177 -142
- package/build/__tests__/impl/LiblslAdapter.test.js.map +1 -1
- package/build/__tests__/impl/LslEventMarkerOutlet.test.d.ts +1 -1
- package/build/__tests__/impl/LslEventMarkerOutlet.test.js +39 -44
- package/build/__tests__/impl/LslEventMarkerOutlet.test.js.map +1 -1
- package/build/__tests__/impl/LslStreamInfo.test.d.ts +1 -1
- package/build/__tests__/impl/LslStreamInfo.test.js +51 -58
- package/build/__tests__/impl/LslStreamInfo.test.js.map +1 -1
- package/build/__tests__/impl/LslStreamInlet.test.d.ts +2 -1
- package/build/__tests__/impl/LslStreamInlet.test.js +23 -21
- package/build/__tests__/impl/LslStreamInlet.test.js.map +1 -1
- package/build/__tests__/impl/LslStreamOutlet.test.d.ts +2 -2
- package/build/__tests__/impl/LslStreamOutlet.test.js +56 -61
- package/build/__tests__/impl/LslStreamOutlet.test.js.map +1 -1
- package/build/__tests__/impl/LslWebSocketBridge.test.d.ts +2 -2
- package/build/__tests__/impl/LslWebSocketBridge.test.js +8 -45
- package/build/__tests__/impl/LslWebSocketBridge.test.js.map +1 -1
- package/build/assertions.d.ts +1 -1
- package/build/assertions.js +13 -20
- package/build/assertions.js.map +1 -1
- package/build/consts.js +2 -5
- package/build/consts.js.map +1 -1
- package/build/impl/LiblslAdapter.d.ts +5 -4
- package/build/impl/LiblslAdapter.js +60 -51
- package/build/impl/LiblslAdapter.js.map +1 -1
- package/build/impl/LslEventMarkerOutlet.d.ts +3 -3
- package/build/impl/LslEventMarkerOutlet.js +10 -12
- package/build/impl/LslEventMarkerOutlet.js.map +1 -1
- package/build/impl/LslStreamInfo.d.ts +1 -1
- package/build/impl/LslStreamInfo.js +19 -16
- package/build/impl/LslStreamInfo.js.map +1 -1
- package/build/impl/LslStreamInlet.d.ts +5 -2
- package/build/impl/LslStreamInlet.js +17 -14
- package/build/impl/LslStreamInlet.js.map +1 -1
- package/build/impl/LslStreamOutlet.d.ts +2 -2
- package/build/impl/LslStreamOutlet.js +20 -21
- package/build/impl/LslStreamOutlet.js.map +1 -1
- package/build/impl/LslWebSocketBridge.js +2 -4
- package/build/impl/LslWebSocketBridge.js.map +1 -1
- package/build/index.d.ts +34 -34
- package/build/index.js +34 -71
- package/build/index.js.map +1 -1
- package/build/scripts/runLslEventMarkerOutlet.js +2 -7
- package/build/scripts/runLslEventMarkerOutlet.js.map +1 -1
- package/build/scripts/runLslStreamOutlet.js +2 -7
- package/build/scripts/runLslStreamOutlet.js.map +1 -1
- package/build/testDoubles/EventMarkerOutlet/FakeEventMarkerOutlet.d.ts +2 -2
- package/build/testDoubles/EventMarkerOutlet/FakeEventMarkerOutlet.js +5 -8
- package/build/testDoubles/EventMarkerOutlet/FakeEventMarkerOutlet.js.map +1 -1
- package/build/testDoubles/EventMarkerOutlet/MockEventMarkerOutlet.d.ts +2 -2
- package/build/testDoubles/EventMarkerOutlet/MockEventMarkerOutlet.js +12 -15
- package/build/testDoubles/EventMarkerOutlet/MockEventMarkerOutlet.js.map +1 -1
- package/build/testDoubles/EventMarkerOutlet/SpyEventMarkerOutlet.d.ts +2 -2
- package/build/testDoubles/EventMarkerOutlet/SpyEventMarkerOutlet.js +4 -9
- package/build/testDoubles/EventMarkerOutlet/SpyEventMarkerOutlet.js.map +1 -1
- package/build/testDoubles/EventMarkerOutlet/ThrowingEventMarkerOutlet.d.ts +2 -2
- package/build/testDoubles/EventMarkerOutlet/ThrowingEventMarkerOutlet.js +2 -5
- package/build/testDoubles/EventMarkerOutlet/ThrowingEventMarkerOutlet.js.map +1 -1
- package/build/testDoubles/Liblsl/FakeLiblsl.d.ts +4 -1
- package/build/testDoubles/Liblsl/FakeLiblsl.js +23 -15
- package/build/testDoubles/Liblsl/FakeLiblsl.js.map +1 -1
- package/build/testDoubles/StreamInfo/FakeStreamInfo.d.ts +2 -2
- package/build/testDoubles/StreamInfo/FakeStreamInfo.js +3 -6
- package/build/testDoubles/StreamInfo/FakeStreamInfo.js.map +1 -1
- package/build/testDoubles/StreamInfo/SpyStreamInfo.d.ts +2 -2
- package/build/testDoubles/StreamInfo/SpyStreamInfo.js +2 -8
- package/build/testDoubles/StreamInfo/SpyStreamInfo.js.map +1 -1
- package/build/testDoubles/StreamInlet/FakeStreamInlet.d.ts +4 -2
- package/build/testDoubles/StreamInlet/FakeStreamInlet.js +7 -5
- package/build/testDoubles/StreamInlet/FakeStreamInlet.js.map +1 -1
- package/build/testDoubles/StreamInlet/SpyStreamInlet.d.ts +3 -2
- package/build/testDoubles/StreamInlet/SpyStreamInlet.js +5 -9
- package/build/testDoubles/StreamInlet/SpyStreamInlet.js.map +1 -1
- package/build/testDoubles/StreamOutlet/FakeStreamOutlet.d.ts +3 -3
- package/build/testDoubles/StreamOutlet/FakeStreamOutlet.js +16 -21
- package/build/testDoubles/StreamOutlet/FakeStreamOutlet.js.map +1 -1
- package/build/testDoubles/StreamTransportBridge/FakeStreamTransportBridge.d.ts +1 -1
- package/build/testDoubles/StreamTransportBridge/FakeStreamTransportBridge.js +2 -5
- package/build/testDoubles/StreamTransportBridge/FakeStreamTransportBridge.js.map +1 -1
- package/build/testDoubles/consts.js +4 -7
- package/build/testDoubles/consts.js.map +1 -1
- package/build/testDoubles/generateRandomOutletOptions.d.ts +1 -1
- package/build/testDoubles/generateRandomOutletOptions.js +14 -20
- package/build/testDoubles/generateRandomOutletOptions.js.map +1 -1
- package/build/types.d.ts +8 -3
- package/build/types.js +1 -2
- package/build/validations.js +4 -10
- package/build/validations.js.map +1 -1
- package/package.json +4 -6
- package/src/__tests__/AbstractPackageTest.ts +14 -13
- package/src/__tests__/impl/LiblslAdapter.test.ts +49 -28
- package/src/__tests__/impl/LslEventMarkerOutlet.test.ts +8 -7
- package/src/__tests__/impl/LslStreamInfo.test.ts +6 -5
- package/src/__tests__/impl/LslStreamInlet.test.ts +18 -5
- package/src/__tests__/impl/LslStreamOutlet.test.ts +10 -10
- package/src/__tests__/impl/LslWebSocketBridge.test.ts +5 -3
- package/src/assertions.ts +3 -3
- package/src/impl/LiblslAdapter.ts +33 -21
- package/src/impl/LslEventMarkerOutlet.ts +5 -5
- package/src/impl/LslStreamInfo.ts +4 -3
- package/src/impl/LslStreamInlet.ts +16 -5
- package/src/impl/LslStreamOutlet.ts +7 -4
- package/src/index.ts +34 -34
- package/src/scripts/runLslEventMarkerOutlet.ts +1 -1
- package/src/scripts/runLslStreamOutlet.ts +1 -1
- package/src/testDoubles/EventMarkerOutlet/FakeEventMarkerOutlet.ts +2 -2
- package/src/testDoubles/EventMarkerOutlet/MockEventMarkerOutlet.ts +4 -3
- package/src/testDoubles/EventMarkerOutlet/SpyEventMarkerOutlet.ts +3 -3
- package/src/testDoubles/EventMarkerOutlet/ThrowingEventMarkerOutlet.ts +2 -2
- package/src/testDoubles/Liblsl/FakeLiblsl.ts +9 -1
- package/src/testDoubles/StreamInfo/FakeStreamInfo.ts +2 -2
- package/src/testDoubles/StreamInfo/SpyStreamInfo.ts +1 -1
- package/src/testDoubles/StreamInlet/FakeStreamInlet.ts +9 -2
- package/src/testDoubles/StreamInlet/SpyStreamInlet.ts +8 -2
- package/src/testDoubles/StreamOutlet/FakeStreamOutlet.ts +7 -3
- package/src/testDoubles/StreamTransportBridge/FakeStreamTransportBridge.ts +1 -1
- package/src/testDoubles/generateRandomOutletOptions.ts +3 -2
- package/src/types.ts +10 -3
- package/tsconfig.json +17 -28
|
@@ -1,11 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.SpyStreamInlet = void 0;
|
|
7
|
-
const LslStreamInlet_1 = __importDefault(require("../../impl/LslStreamInlet"));
|
|
8
|
-
class SpyStreamInlet extends LslStreamInlet_1.default {
|
|
1
|
+
import LslStreamInlet from '../../impl/LslStreamInlet.js';
|
|
2
|
+
export class SpyStreamInlet extends LslStreamInlet {
|
|
9
3
|
constructor(info, options) {
|
|
10
4
|
super(info, options);
|
|
11
5
|
}
|
|
@@ -15,6 +9,8 @@ class SpyStreamInlet extends LslStreamInlet_1.default {
|
|
|
15
9
|
getStreamInfo() {
|
|
16
10
|
return this.info;
|
|
17
11
|
}
|
|
12
|
+
getBoundInlet() {
|
|
13
|
+
return this.inlet;
|
|
14
|
+
}
|
|
18
15
|
}
|
|
19
|
-
exports.SpyStreamInlet = SpyStreamInlet;
|
|
20
16
|
//# sourceMappingURL=SpyStreamInlet.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SpyStreamInlet.js","sourceRoot":"","sources":["../../../src/testDoubles/StreamInlet/SpyStreamInlet.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"SpyStreamInlet.js","sourceRoot":"","sources":["../../../src/testDoubles/StreamInlet/SpyStreamInlet.ts"],"names":[],"mappings":"AACA,OAAO,cAEN,MAAM,8BAA8B,CAAA;AAErC,MAAM,OAAO,cAAe,SAAQ,cAAc;IAC9C,YAAmB,IAAgB,EAAE,OAA2B;QAC5D,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;IACxB,CAAC;IAEM,OAAO;QACV,OAAO,IAAI,CAAC,IAAI,CAAA;IACpB,CAAC;IAEM,aAAa;QAChB,OAAO,IAAI,CAAC,IAAI,CAAA;IACpB,CAAC;IAEM,aAAa;QAChB,OAAO,IAAI,CAAC,KAAK,CAAA;IACrB,CAAC;CACJ"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { StreamInfo } from '../../impl/LslStreamInfo';
|
|
2
|
-
import { StreamOutlet, StreamOutletOptions } from '../../impl/LslStreamOutlet';
|
|
3
|
-
import { LslSample } from '../../types';
|
|
1
|
+
import { StreamInfo } from '../../impl/LslStreamInfo.js';
|
|
2
|
+
import { StreamOutlet, StreamOutletOptions } from '../../impl/LslStreamOutlet.js';
|
|
3
|
+
import { LslSample } from '../../types.js';
|
|
4
4
|
export default class FakeStreamOutlet implements StreamOutlet {
|
|
5
5
|
static callsToConstructor: {
|
|
6
6
|
info?: StreamInfo;
|
|
@@ -1,11 +1,10 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
class FakeStreamOutlet {
|
|
1
|
+
import { randomInt } from 'crypto';
|
|
2
|
+
import generateId from '@neurodevs/generate-id';
|
|
3
|
+
export default class FakeStreamOutlet {
|
|
4
|
+
static callsToConstructor = [];
|
|
5
|
+
static callsToPushSample = [];
|
|
6
|
+
static numCallsToDestroy = 0;
|
|
7
|
+
options;
|
|
9
8
|
constructor(info, options) {
|
|
10
9
|
FakeStreamOutlet.callsToConstructor.push({ info, options });
|
|
11
10
|
this.options = options;
|
|
@@ -17,16 +16,16 @@ class FakeStreamOutlet {
|
|
|
17
16
|
FakeStreamOutlet.callsToPushSample.push(sample);
|
|
18
17
|
}
|
|
19
18
|
get name() {
|
|
20
|
-
return this.options?.name ?? (
|
|
19
|
+
return this.options?.name ?? generateId();
|
|
21
20
|
}
|
|
22
21
|
get type() {
|
|
23
|
-
return this.options?.type ?? (
|
|
22
|
+
return this.options?.type ?? generateId();
|
|
24
23
|
}
|
|
25
24
|
get sourceId() {
|
|
26
|
-
return this.options?.sourceId ?? (
|
|
25
|
+
return this.options?.sourceId ?? generateId();
|
|
27
26
|
}
|
|
28
27
|
get channelNames() {
|
|
29
|
-
return this.options?.channelNames ?? [(
|
|
28
|
+
return this.options?.channelNames ?? [generateId()];
|
|
30
29
|
}
|
|
31
30
|
get channelCount() {
|
|
32
31
|
return this.channelNames.length;
|
|
@@ -35,19 +34,19 @@ class FakeStreamOutlet {
|
|
|
35
34
|
return this.options?.channelFormat ?? 'float32';
|
|
36
35
|
}
|
|
37
36
|
get sampleRate() {
|
|
38
|
-
return this.options?.sampleRate ??
|
|
37
|
+
return this.options?.sampleRate ?? randomInt(1, 1000);
|
|
39
38
|
}
|
|
40
39
|
get chunkSize() {
|
|
41
|
-
return this.options?.chunkSize ??
|
|
40
|
+
return this.options?.chunkSize ?? randomInt(1, 1000);
|
|
42
41
|
}
|
|
43
42
|
get maxBuffered() {
|
|
44
|
-
return this.options?.maxBuffered ??
|
|
43
|
+
return this.options?.maxBuffered ?? randomInt(1, 1000);
|
|
45
44
|
}
|
|
46
45
|
get manufacturer() {
|
|
47
|
-
return this.options?.manufacturer ?? (
|
|
46
|
+
return this.options?.manufacturer ?? generateId();
|
|
48
47
|
}
|
|
49
48
|
get unit() {
|
|
50
|
-
return this.options?.unit ?? (
|
|
49
|
+
return this.options?.unit ?? generateId();
|
|
51
50
|
}
|
|
52
51
|
static resetTestDouble() {
|
|
53
52
|
FakeStreamOutlet.callsToConstructor = [];
|
|
@@ -55,8 +54,4 @@ class FakeStreamOutlet {
|
|
|
55
54
|
FakeStreamOutlet.numCallsToDestroy = 0;
|
|
56
55
|
}
|
|
57
56
|
}
|
|
58
|
-
FakeStreamOutlet.callsToConstructor = [];
|
|
59
|
-
FakeStreamOutlet.callsToPushSample = [];
|
|
60
|
-
FakeStreamOutlet.numCallsToDestroy = 0;
|
|
61
|
-
exports.default = FakeStreamOutlet;
|
|
62
57
|
//# sourceMappingURL=FakeStreamOutlet.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FakeStreamOutlet.js","sourceRoot":"","sources":["../../../src/testDoubles/StreamOutlet/FakeStreamOutlet.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"FakeStreamOutlet.js","sourceRoot":"","sources":["../../../src/testDoubles/StreamOutlet/FakeStreamOutlet.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAA;AAClC,OAAO,UAAU,MAAM,wBAAwB,CAAA;AAS/C,MAAM,CAAC,OAAO,OAAO,gBAAgB;IAC1B,MAAM,CAAC,kBAAkB,GAG1B,EAAE,CAAA;IAED,MAAM,CAAC,iBAAiB,GAAgB,EAAE,CAAA;IAC1C,MAAM,CAAC,iBAAiB,GAAG,CAAC,CAAA;IAE5B,OAAO,CAAsB;IAEpC,YAAmB,IAAiB,EAAE,OAA6B;QAC/D,gBAAgB,CAAC,kBAAkB,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAA;QAC3D,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;IAC1B,CAAC;IAEM,OAAO;QACV,gBAAgB,CAAC,iBAAiB,EAAE,CAAA;IACxC,CAAC;IAEM,UAAU,CAAC,MAAiB;QAC/B,gBAAgB,CAAC,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IACnD,CAAC;IAED,IAAW,IAAI;QACX,OAAO,IAAI,CAAC,OAAO,EAAE,IAAI,IAAI,UAAU,EAAE,CAAA;IAC7C,CAAC;IAED,IAAW,IAAI;QACX,OAAO,IAAI,CAAC,OAAO,EAAE,IAAI,IAAI,UAAU,EAAE,CAAA;IAC7C,CAAC;IAED,IAAW,QAAQ;QACf,OAAO,IAAI,CAAC,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,CAAA;IACjD,CAAC;IAED,IAAW,YAAY;QACnB,OAAO,IAAI,CAAC,OAAO,EAAE,YAAY,IAAI,CAAC,UAAU,EAAE,CAAC,CAAA;IACvD,CAAC;IAED,IAAW,YAAY;QACnB,OAAO,IAAI,CAAC,YAAY,CAAC,MAAM,CAAA;IACnC,CAAC;IAED,IAAW,aAAa;QACpB,OAAO,IAAI,CAAC,OAAO,EAAE,aAAa,IAAI,SAAS,CAAA;IACnD,CAAC;IAED,IAAW,UAAU;QACjB,OAAO,IAAI,CAAC,OAAO,EAAE,UAAU,IAAI,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,CAAA;IACzD,CAAC;IAED,IAAW,SAAS;QAChB,OAAO,IAAI,CAAC,OAAO,EAAE,SAAS,IAAI,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,CAAA;IACxD,CAAC;IAED,IAAW,WAAW;QAClB,OAAO,IAAI,CAAC,OAAO,EAAE,WAAW,IAAI,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,CAAA;IAC1D,CAAC;IAED,IAAW,YAAY;QACnB,OAAO,IAAI,CAAC,OAAO,EAAE,YAAY,IAAI,UAAU,EAAE,CAAA;IACrD,CAAC;IAED,IAAW,IAAI;QACX,OAAO,IAAI,CAAC,OAAO,EAAE,IAAI,IAAI,UAAU,EAAE,CAAA;IAC7C,CAAC;IAEM,MAAM,CAAC,eAAe;QACzB,gBAAgB,CAAC,kBAAkB,GAAG,EAAE,CAAA;QACxC,gBAAgB,CAAC,iBAAiB,GAAG,EAAE,CAAA;QACvC,gBAAgB,CAAC,iBAAiB,GAAG,CAAC,CAAA;IAC1C,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { StreamTransportBridge } from '../../impl/LslWebSocketBridge';
|
|
1
|
+
import { StreamTransportBridge } from '../../impl/LslWebSocketBridge.js';
|
|
2
2
|
export default class FakeStreamTransportBridge implements StreamTransportBridge {
|
|
3
3
|
static numCallsToConstructor: number;
|
|
4
4
|
constructor();
|
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
class FakeStreamTransportBridge {
|
|
1
|
+
export default class FakeStreamTransportBridge {
|
|
2
|
+
static numCallsToConstructor = 0;
|
|
4
3
|
constructor() {
|
|
5
4
|
FakeStreamTransportBridge.numCallsToConstructor++;
|
|
6
5
|
}
|
|
@@ -8,6 +7,4 @@ class FakeStreamTransportBridge {
|
|
|
8
7
|
FakeStreamTransportBridge.numCallsToConstructor = 0;
|
|
9
8
|
}
|
|
10
9
|
}
|
|
11
|
-
FakeStreamTransportBridge.numCallsToConstructor = 0;
|
|
12
|
-
exports.default = FakeStreamTransportBridge;
|
|
13
10
|
//# sourceMappingURL=FakeStreamTransportBridge.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FakeStreamTransportBridge.js","sourceRoot":"","sources":["../../../src/testDoubles/StreamTransportBridge/FakeStreamTransportBridge.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"FakeStreamTransportBridge.js","sourceRoot":"","sources":["../../../src/testDoubles/StreamTransportBridge/FakeStreamTransportBridge.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,OAAO,OAAO,yBAAyB;IAGnC,MAAM,CAAC,qBAAqB,GAAG,CAAC,CAAA;IAEvC;QACI,yBAAyB,CAAC,qBAAqB,EAAE,CAAA;IACrD,CAAC;IAEM,MAAM,CAAC,eAAe;QACzB,yBAAyB,CAAC,qBAAqB,GAAG,CAAC,CAAA;IACvD,CAAC"}
|
|
@@ -1,8 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
exports.TEST_CHANNEL_FORMATS_MAP = exports.TEST_CHANNEL_FORMATS = exports.TEST_UNSUPPORTED_CHANNEL_FORMATS = exports.TEST_SUPPORTED_CHANNEL_FORMATS = void 0;
|
|
4
|
-
exports.TEST_SUPPORTED_CHANNEL_FORMATS = ['float32', 'string'];
|
|
5
|
-
exports.TEST_UNSUPPORTED_CHANNEL_FORMATS = [
|
|
1
|
+
export const TEST_SUPPORTED_CHANNEL_FORMATS = ['float32', 'string'];
|
|
2
|
+
export const TEST_UNSUPPORTED_CHANNEL_FORMATS = [
|
|
6
3
|
'undefined',
|
|
7
4
|
'double64',
|
|
8
5
|
'int32',
|
|
@@ -10,7 +7,7 @@ exports.TEST_UNSUPPORTED_CHANNEL_FORMATS = [
|
|
|
10
7
|
'int8',
|
|
11
8
|
'int64',
|
|
12
9
|
];
|
|
13
|
-
|
|
10
|
+
export const TEST_CHANNEL_FORMATS = [
|
|
14
11
|
'undefined',
|
|
15
12
|
'float32',
|
|
16
13
|
'double64',
|
|
@@ -20,7 +17,7 @@ exports.TEST_CHANNEL_FORMATS = [
|
|
|
20
17
|
'int8',
|
|
21
18
|
'int64',
|
|
22
19
|
];
|
|
23
|
-
|
|
20
|
+
export const TEST_CHANNEL_FORMATS_MAP = {
|
|
24
21
|
undefined: 0,
|
|
25
22
|
float32: 1,
|
|
26
23
|
double64: 2,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"consts.js","sourceRoot":"","sources":["../../src/testDoubles/consts.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"consts.js","sourceRoot":"","sources":["../../src/testDoubles/consts.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,8BAA8B,GAAG,CAAC,SAAS,EAAE,QAAQ,CAAU,CAAA;AAE5E,MAAM,CAAC,MAAM,gCAAgC,GAAG;IAC5C,WAAW;IACX,UAAU;IACV,OAAO;IACP,OAAO;IACP,MAAM;IACN,OAAO;CACD,CAAA;AAEV,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAChC,WAAW;IACX,SAAS;IACT,UAAU;IACV,QAAQ;IACR,OAAO;IACP,OAAO;IACP,MAAM;IACN,OAAO;CACD,CAAA;AAEV,MAAM,CAAC,MAAM,wBAAwB,GAAG;IACpC,SAAS,EAAE,CAAC;IACZ,OAAO,EAAE,CAAC;IACV,QAAQ,EAAE,CAAC;IACX,MAAM,EAAE,CAAC;IACT,KAAK,EAAE,CAAC;IACR,KAAK,EAAE,CAAC;IACR,IAAI,EAAE,CAAC;IACP,KAAK,EAAE,CAAC;CACX,CAAA"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { StreamOutletOptions } from '../impl/LslStreamOutlet';
|
|
1
|
+
import { StreamOutletOptions } from '../impl/LslStreamOutlet.js';
|
|
2
2
|
export default function generateRandomOutletOptions(): StreamOutletOptions;
|
|
@@ -1,25 +1,19 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
exports.default = generateRandomOutletOptions;
|
|
7
|
-
const crypto_1 = require("crypto");
|
|
8
|
-
const generate_id_1 = __importDefault(require("@neurodevs/generate-id"));
|
|
9
|
-
const consts_1 = require("./consts");
|
|
10
|
-
function generateRandomOutletOptions() {
|
|
11
|
-
const randomChannelIdx = (0, crypto_1.randomInt)(consts_1.TEST_SUPPORTED_CHANNEL_FORMATS.length);
|
|
1
|
+
import { randomInt } from 'crypto';
|
|
2
|
+
import generateId from '@neurodevs/generate-id';
|
|
3
|
+
import { TEST_SUPPORTED_CHANNEL_FORMATS } from './consts.js';
|
|
4
|
+
export default function generateRandomOutletOptions() {
|
|
5
|
+
const randomChannelIdx = randomInt(TEST_SUPPORTED_CHANNEL_FORMATS.length);
|
|
12
6
|
return {
|
|
13
|
-
name: (
|
|
14
|
-
type: (
|
|
15
|
-
channelNames: new Array(
|
|
7
|
+
name: generateId(),
|
|
8
|
+
type: generateId(),
|
|
9
|
+
channelNames: new Array(randomInt(1, 10)).fill(generateId()),
|
|
16
10
|
sampleRate: Math.random() * 10,
|
|
17
|
-
channelFormat:
|
|
18
|
-
sourceId: (
|
|
19
|
-
manufacturer: (
|
|
20
|
-
unit: (
|
|
21
|
-
chunkSize:
|
|
22
|
-
maxBuffered:
|
|
11
|
+
channelFormat: TEST_SUPPORTED_CHANNEL_FORMATS[randomChannelIdx],
|
|
12
|
+
sourceId: generateId(),
|
|
13
|
+
manufacturer: generateId(),
|
|
14
|
+
unit: generateId(),
|
|
15
|
+
chunkSize: randomInt(0, 10),
|
|
16
|
+
maxBuffered: randomInt(0, 10),
|
|
23
17
|
};
|
|
24
18
|
}
|
|
25
19
|
//# sourceMappingURL=generateRandomOutletOptions.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generateRandomOutletOptions.js","sourceRoot":"","sources":["../../src/testDoubles/generateRandomOutletOptions.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"generateRandomOutletOptions.js","sourceRoot":"","sources":["../../src/testDoubles/generateRandomOutletOptions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAA;AAClC,OAAO,UAAU,MAAM,wBAAwB,CAAA;AAG/C,OAAO,EAAE,8BAA8B,EAAE,MAAM,aAAa,CAAA;AAE5D,MAAM,CAAC,OAAO,UAAU,2BAA2B;IAC/C,MAAM,gBAAgB,GAAG,SAAS,CAAC,8BAA8B,CAAC,MAAM,CAAC,CAAA;IAEzE,OAAO;QACH,IAAI,EAAE,UAAU,EAAE;QAClB,IAAI,EAAE,UAAU,EAAE;QAClB,YAAY,EAAE,IAAI,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;QAC5D,UAAU,EAAE,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE;QAC9B,aAAa,EAAE,8BAA8B,CAAC,gBAAgB,CAAC;QAC/D,QAAQ,EAAE,UAAU,EAAE;QACtB,YAAY,EAAE,UAAU,EAAE;QAC1B,IAAI,EAAE,UAAU,EAAE;QAClB,SAAS,EAAE,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC;QAC3B,WAAW,EAAE,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC;KACT,CAAA;AAC5B,CAAC"}
|
package/build/types.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { FuncObj, FieldType } from 'ffi-rs';
|
|
2
|
-
import { CHANNEL_FORMATS } from './consts';
|
|
3
|
-
import { StreamInlet } from './impl/LslStreamInlet';
|
|
4
|
-
import { StreamOutlet } from './impl/LslStreamOutlet';
|
|
2
|
+
import { CHANNEL_FORMATS } from './consts.js';
|
|
3
|
+
import { StreamInlet } from './impl/LslStreamInlet.js';
|
|
4
|
+
import { StreamOutlet } from './impl/LslStreamOutlet.js';
|
|
5
5
|
export type StreamFixuture = StreamOutlet | StreamInlet;
|
|
6
6
|
export type ChannelFormat = (typeof CHANNEL_FORMATS)[number];
|
|
7
7
|
export interface DurationMarker {
|
|
@@ -16,6 +16,7 @@ export interface Liblsl {
|
|
|
16
16
|
pushSampleStringTimestamp(options: PushSampleStringTimestampOptions): void;
|
|
17
17
|
destroyOutlet(options: DestroyOutletOptions): void;
|
|
18
18
|
createInlet(options: CreateInletOptions): BoundInlet;
|
|
19
|
+
flushInlet(options: FlushInletOptions): void;
|
|
19
20
|
destroyInlet(options: DestroyInletOptions): void;
|
|
20
21
|
localClock(): number;
|
|
21
22
|
}
|
|
@@ -62,6 +63,9 @@ export interface CreateInletOptions {
|
|
|
62
63
|
chunkSize: number;
|
|
63
64
|
maxBuffered: number;
|
|
64
65
|
}
|
|
66
|
+
export interface FlushInletOptions {
|
|
67
|
+
inlet: BoundInlet;
|
|
68
|
+
}
|
|
65
69
|
export interface DestroyInletOptions {
|
|
66
70
|
}
|
|
67
71
|
export interface LiblslBindings {
|
|
@@ -71,6 +75,7 @@ export interface LiblslBindings {
|
|
|
71
75
|
lsl_push_sample_strt(args: [BoundOutlet, LslSample, number]): void;
|
|
72
76
|
lsl_destroy_outlet(args: [BoundOutlet]): void;
|
|
73
77
|
lsl_create_inlet(args: any): BoundInlet;
|
|
78
|
+
lsl_flush_inlet(args: [BoundInlet]): void;
|
|
74
79
|
lsl_destroy_inlet(args: any): void;
|
|
75
80
|
lsl_local_clock(args: []): number;
|
|
76
81
|
lsl_get_desc(args: [BoundStreamInfo]): BoundDescription;
|
package/build/types.js
CHANGED
package/build/validations.js
CHANGED
|
@@ -1,20 +1,14 @@
|
|
|
1
|
-
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.isStringInArray = isStringInArray;
|
|
4
|
-
exports.isGreaterThanOrEqualToZero = isGreaterThanOrEqualToZero;
|
|
5
|
-
exports.isPositiveInteger = isPositiveInteger;
|
|
6
|
-
exports.isPositiveIntegerOrZero = isPositiveIntegerOrZero;
|
|
7
|
-
function isStringInArray(value, array) {
|
|
1
|
+
export function isStringInArray(value, array) {
|
|
8
2
|
return array.indexOf(value) !== -1;
|
|
9
3
|
}
|
|
10
|
-
function isGreaterThanOrEqualToZero(value) {
|
|
4
|
+
export function isGreaterThanOrEqualToZero(value) {
|
|
11
5
|
return value >= 0;
|
|
12
6
|
}
|
|
13
|
-
function isPositiveInteger(value) {
|
|
7
|
+
export function isPositiveInteger(value) {
|
|
14
8
|
//@ts-ignore
|
|
15
9
|
return Number.isInteger(value) && value > 0;
|
|
16
10
|
}
|
|
17
|
-
function isPositiveIntegerOrZero(value) {
|
|
11
|
+
export function isPositiveIntegerOrZero(value) {
|
|
18
12
|
//@ts-ignore
|
|
19
13
|
return Number.isInteger(value) && value >= 0;
|
|
20
14
|
}
|
package/build/validations.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validations.js","sourceRoot":"","sources":["../src/validations.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"validations.js","sourceRoot":"","sources":["../src/validations.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,eAAe,CAAC,KAAa,EAAE,KAAwB;IACnE,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAA;AACtC,CAAC;AAED,MAAM,UAAU,0BAA0B,CAAC,KAAa;IACpD,OAAO,KAAK,IAAI,CAAC,CAAA;AACrB,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,KAAa;IAC3C,YAAY;IACZ,OAAO,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,CAAA;AAC/C,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,KAAa;IACjD,YAAY;IACZ,OAAO,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,CAAA;AAChD,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@neurodevs/node-lsl",
|
|
3
|
-
"version": "12.0.
|
|
3
|
+
"version": "12.0.1",
|
|
4
4
|
"description": "Lab Streaming Layer (LSL) bindings for Node",
|
|
5
|
+
"type": "module",
|
|
5
6
|
"keywords": [
|
|
6
7
|
"nodejs",
|
|
7
8
|
"typescript",
|
|
@@ -49,11 +50,8 @@
|
|
|
49
50
|
"ref-napi": "^3.0.3"
|
|
50
51
|
},
|
|
51
52
|
"devDependencies": {
|
|
52
|
-
"@neurodevs/generate-id": "^1.0.
|
|
53
|
-
"@
|
|
54
|
-
"@sprucelabs/resolve-path-aliases": "^2.0.516",
|
|
55
|
-
"@sprucelabs/test": "^9.0.59",
|
|
56
|
-
"@sprucelabs/test-utils": "^5.1.502",
|
|
53
|
+
"@neurodevs/generate-id": "^1.0.8",
|
|
54
|
+
"@neurodevs/node-tdd": "^0.1.2",
|
|
57
55
|
"@types/ffi-napi": "^4.0.10",
|
|
58
56
|
"@types/node": "^22.9.0",
|
|
59
57
|
"chokidar-cli": "^3.0.0",
|
|
@@ -1,19 +1,20 @@
|
|
|
1
|
-
import AbstractSpruceTest from '@sprucelabs/test-utils'
|
|
2
1
|
import generateId from '@neurodevs/generate-id'
|
|
3
|
-
import
|
|
4
|
-
import LslEventMarkerOutlet from '../impl/LslEventMarkerOutlet'
|
|
5
|
-
import LslStreamInfo from '../impl/LslStreamInfo'
|
|
6
|
-
import LslStreamInlet from '../impl/LslStreamInlet'
|
|
2
|
+
import AbstractModuleTest from '@neurodevs/node-tdd'
|
|
7
3
|
|
|
8
|
-
import
|
|
9
|
-
import
|
|
10
|
-
import
|
|
11
|
-
import
|
|
12
|
-
import SpyStreamInfo from '../testDoubles/StreamInfo/SpyStreamInfo'
|
|
13
|
-
import { SpyStreamInlet } from '../testDoubles/StreamInlet/SpyStreamInlet'
|
|
14
|
-
import FakeStreamOutlet from '../testDoubles/StreamOutlet/FakeStreamOutlet'
|
|
4
|
+
import LiblslAdapter from '../impl/LiblslAdapter.js'
|
|
5
|
+
import LslEventMarkerOutlet from '../impl/LslEventMarkerOutlet.js'
|
|
6
|
+
import LslStreamInfo from '../impl/LslStreamInfo.js'
|
|
7
|
+
import LslStreamInlet from '../impl/LslStreamInlet.js'
|
|
15
8
|
|
|
16
|
-
|
|
9
|
+
import LslStreamOutlet from '../impl/LslStreamOutlet.js'
|
|
10
|
+
import SpyEventMarkerOutlet from '../testDoubles/EventMarkerOutlet/SpyEventMarkerOutlet.js'
|
|
11
|
+
import FakeLiblsl from '../testDoubles/Liblsl/FakeLiblsl.js'
|
|
12
|
+
import FakeStreamInfo from '../testDoubles/StreamInfo/FakeStreamInfo.js'
|
|
13
|
+
import SpyStreamInfo from '../testDoubles/StreamInfo/SpyStreamInfo.js'
|
|
14
|
+
import { SpyStreamInlet } from '../testDoubles/StreamInlet/SpyStreamInlet.js'
|
|
15
|
+
import FakeStreamOutlet from '../testDoubles/StreamOutlet/FakeStreamOutlet.js'
|
|
16
|
+
|
|
17
|
+
export default class AbstractPackageTest extends AbstractModuleTest {
|
|
17
18
|
protected static fakeLiblsl: FakeLiblsl
|
|
18
19
|
|
|
19
20
|
protected static async beforeEach() {
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import { randomInt } from 'crypto'
|
|
2
|
-
import { test, assert } from '@sprucelabs/test-utils'
|
|
3
2
|
import generateId from '@neurodevs/generate-id'
|
|
3
|
+
import { test, assert } from '@neurodevs/node-tdd'
|
|
4
4
|
import { DataType, OpenParams } from 'ffi-rs'
|
|
5
|
-
|
|
6
|
-
import
|
|
5
|
+
|
|
6
|
+
import LiblslAdapter from '../../impl/LiblslAdapter.js'
|
|
7
|
+
import FakeLiblsl from '../../testDoubles/Liblsl/FakeLiblsl.js'
|
|
7
8
|
import {
|
|
8
9
|
BoundChild,
|
|
9
10
|
BoundDescription,
|
|
@@ -14,8 +15,8 @@ import {
|
|
|
14
15
|
Liblsl,
|
|
15
16
|
LiblslBindings,
|
|
16
17
|
LslChannel,
|
|
17
|
-
} from '../../types'
|
|
18
|
-
import AbstractPackageTest from '../AbstractPackageTest'
|
|
18
|
+
} from '../../types.js'
|
|
19
|
+
import AbstractPackageTest from '../AbstractPackageTest.js'
|
|
19
20
|
|
|
20
21
|
export default class LiblslAdapterTest extends AbstractPackageTest {
|
|
21
22
|
private static instance: Liblsl
|
|
@@ -24,7 +25,7 @@ export default class LiblslAdapterTest extends AbstractPackageTest {
|
|
|
24
25
|
private static fakeBindings: LiblslBindings
|
|
25
26
|
private static fakeStreamInfo: BoundStreamInfo
|
|
26
27
|
private static fakeOutlet: BoundOutlet
|
|
27
|
-
private static fakeInlet: BoundInlet
|
|
28
|
+
private static fakeInlet: BoundInlet = {}
|
|
28
29
|
private static fakeDesc: BoundDescription
|
|
29
30
|
private static fakeChildNamedChannels: BoundChild
|
|
30
31
|
private static createStreamInfoParams?: any[]
|
|
@@ -32,6 +33,7 @@ export default class LiblslAdapterTest extends AbstractPackageTest {
|
|
|
32
33
|
private static createOutletParams?: any[]
|
|
33
34
|
private static destroyOutletParams?: any[]
|
|
34
35
|
private static createInletParams?: any[]
|
|
36
|
+
private static flushInletParams?: any[]
|
|
35
37
|
private static destroyInletParams?: any[]
|
|
36
38
|
private static localClockParams?: any[]
|
|
37
39
|
private static pushSampleFloatTimestampParams?: any[]
|
|
@@ -101,8 +103,6 @@ export default class LiblslAdapterTest extends AbstractPackageTest {
|
|
|
101
103
|
|
|
102
104
|
const err = assert.doesThrow(() => LiblslAdapter.getInstance())
|
|
103
105
|
|
|
104
|
-
debugger
|
|
105
|
-
|
|
106
106
|
assert.isTrue(
|
|
107
107
|
err.message.includes(this.generateFailedMessage()),
|
|
108
108
|
'Did not receive the expected error!'
|
|
@@ -156,26 +156,6 @@ export default class LiblslAdapterTest extends AbstractPackageTest {
|
|
|
156
156
|
retType: DataType.External,
|
|
157
157
|
paramsType: [DataType.External, DataType.I32, DataType.I32],
|
|
158
158
|
},
|
|
159
|
-
lsl_destroy_outlet: {
|
|
160
|
-
library: 'lsl',
|
|
161
|
-
retType: DataType.Void,
|
|
162
|
-
paramsType: [DataType.External],
|
|
163
|
-
},
|
|
164
|
-
lsl_create_inlet: {
|
|
165
|
-
library: 'lsl',
|
|
166
|
-
retType: DataType.External,
|
|
167
|
-
paramsType: [DataType.External, DataType.I32, DataType.I32],
|
|
168
|
-
},
|
|
169
|
-
lsl_destroy_inlet: {
|
|
170
|
-
library: 'lsl',
|
|
171
|
-
retType: DataType.Void,
|
|
172
|
-
paramsType: [DataType.External],
|
|
173
|
-
},
|
|
174
|
-
lsl_local_clock: {
|
|
175
|
-
library: 'lsl',
|
|
176
|
-
retType: DataType.Double,
|
|
177
|
-
paramsType: [],
|
|
178
|
-
},
|
|
179
159
|
lsl_push_sample_ft: {
|
|
180
160
|
library: 'lsl',
|
|
181
161
|
retType: DataType.Void,
|
|
@@ -194,6 +174,26 @@ export default class LiblslAdapterTest extends AbstractPackageTest {
|
|
|
194
174
|
DataType.Double,
|
|
195
175
|
],
|
|
196
176
|
},
|
|
177
|
+
lsl_destroy_outlet: {
|
|
178
|
+
library: 'lsl',
|
|
179
|
+
retType: DataType.Void,
|
|
180
|
+
paramsType: [DataType.External],
|
|
181
|
+
},
|
|
182
|
+
lsl_create_inlet: {
|
|
183
|
+
library: 'lsl',
|
|
184
|
+
retType: DataType.External,
|
|
185
|
+
paramsType: [DataType.External, DataType.I32, DataType.I32],
|
|
186
|
+
},
|
|
187
|
+
lsl_flush_inlet: {
|
|
188
|
+
library: 'lsl',
|
|
189
|
+
retType: DataType.I32,
|
|
190
|
+
paramsType: [DataType.External],
|
|
191
|
+
},
|
|
192
|
+
lsl_destroy_inlet: {
|
|
193
|
+
library: 'lsl',
|
|
194
|
+
retType: DataType.Void,
|
|
195
|
+
paramsType: [DataType.External],
|
|
196
|
+
},
|
|
197
197
|
lsl_get_desc: {
|
|
198
198
|
library: 'lsl',
|
|
199
199
|
retType: DataType.External,
|
|
@@ -213,6 +213,11 @@ export default class LiblslAdapterTest extends AbstractPackageTest {
|
|
|
213
213
|
DataType.String,
|
|
214
214
|
],
|
|
215
215
|
},
|
|
216
|
+
lsl_local_clock: {
|
|
217
|
+
library: 'lsl',
|
|
218
|
+
retType: DataType.Double,
|
|
219
|
+
paramsType: [],
|
|
220
|
+
},
|
|
216
221
|
})
|
|
217
222
|
}
|
|
218
223
|
|
|
@@ -370,6 +375,18 @@ export default class LiblslAdapterTest extends AbstractPackageTest {
|
|
|
370
375
|
assert.isEqual(inlet, this.fakeInlet)
|
|
371
376
|
}
|
|
372
377
|
|
|
378
|
+
@test()
|
|
379
|
+
protected static async flushInletCallsBinding() {
|
|
380
|
+
const { inlet } = this.createRandomInlet()
|
|
381
|
+
this.instance.flushInlet({ inlet })
|
|
382
|
+
|
|
383
|
+
assert.isEqualDeep(
|
|
384
|
+
this.flushInletParams,
|
|
385
|
+
[inlet],
|
|
386
|
+
'Should have called flushInlet with expected params!'
|
|
387
|
+
)
|
|
388
|
+
}
|
|
389
|
+
|
|
373
390
|
private static createRandomStreamInfo() {
|
|
374
391
|
return this.instance.createStreamInfo(
|
|
375
392
|
this.generateRandomCreateStreamInfoOptions()
|
|
@@ -444,6 +461,10 @@ export default class LiblslAdapterTest extends AbstractPackageTest {
|
|
|
444
461
|
this.createInletParams = params
|
|
445
462
|
return this.fakeInlet
|
|
446
463
|
},
|
|
464
|
+
lsl_flush_inlet: (params: any[]) => {
|
|
465
|
+
this.flushInletParams = params
|
|
466
|
+
return 0
|
|
467
|
+
},
|
|
447
468
|
lsl_destroy_inlet: (params: any[]) => {
|
|
448
469
|
this.destroyInletParams = params
|
|
449
470
|
},
|
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
import { randomInt } from 'crypto'
|
|
2
|
-
import { assert, test } from '@sprucelabs/test-utils'
|
|
3
2
|
import generateId from '@neurodevs/generate-id'
|
|
4
|
-
import
|
|
5
|
-
|
|
6
|
-
import
|
|
7
|
-
import
|
|
8
|
-
import
|
|
9
|
-
import
|
|
3
|
+
import { assert, test } from '@neurodevs/node-tdd'
|
|
4
|
+
|
|
5
|
+
import LslEventMarkerOutlet from '../../impl/LslEventMarkerOutlet.js'
|
|
6
|
+
import { StreamOutletOptions } from '../../impl/LslStreamOutlet.js'
|
|
7
|
+
import SpyEventMarkerOutlet from '../../testDoubles/EventMarkerOutlet/SpyEventMarkerOutlet.js'
|
|
8
|
+
import generateRandomOutletOptions from '../../testDoubles/generateRandomOutletOptions.js'
|
|
9
|
+
import FakeStreamOutlet from '../../testDoubles/StreamOutlet/FakeStreamOutlet.js'
|
|
10
|
+
import AbstractPackageTest from '../AbstractPackageTest.js'
|
|
10
11
|
|
|
11
12
|
export default class EventMarkerOutletTest extends AbstractPackageTest {
|
|
12
13
|
private static instance: SpyEventMarkerOutlet
|
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
import { test, assert } from '@sprucelabs/test-utils'
|
|
2
1
|
import generateId from '@neurodevs/generate-id'
|
|
3
|
-
import {
|
|
4
|
-
|
|
5
|
-
import
|
|
6
|
-
import
|
|
2
|
+
import { test, assert } from '@neurodevs/node-tdd'
|
|
3
|
+
|
|
4
|
+
import { CHANNEL_FORMATS } from '../../consts.js'
|
|
5
|
+
import LslStreamInfo, { StreamInfoOptions } from '../../impl/LslStreamInfo.js'
|
|
6
|
+
import SpyStreamInfo from '../../testDoubles/StreamInfo/SpyStreamInfo.js'
|
|
7
|
+
import AbstractPackageTest from '../AbstractPackageTest.js'
|
|
7
8
|
|
|
8
9
|
export default class LslStreamInfoTest extends AbstractPackageTest {
|
|
9
10
|
private static instance: SpyStreamInfo
|
|
@@ -1,8 +1,10 @@
|
|
|
1
|
-
import { test, assert } from '@
|
|
2
|
-
import LslStreamInlet, {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
import
|
|
1
|
+
import { test, assert } from '@neurodevs/node-tdd'
|
|
2
|
+
import LslStreamInlet, {
|
|
3
|
+
StreamInletOptions,
|
|
4
|
+
} from '../../impl/LslStreamInlet.js'
|
|
5
|
+
import FakeStreamInfo from '../../testDoubles/StreamInfo/FakeStreamInfo.js'
|
|
6
|
+
import { SpyStreamInlet } from '../../testDoubles/StreamInlet/SpyStreamInlet.js'
|
|
7
|
+
import AbstractPackageTest from '../AbstractPackageTest.js'
|
|
6
8
|
|
|
7
9
|
export default class LslStreamInletTest extends AbstractPackageTest {
|
|
8
10
|
private static instance: SpyStreamInlet
|
|
@@ -65,6 +67,17 @@ export default class LslStreamInletTest extends AbstractPackageTest {
|
|
|
65
67
|
)
|
|
66
68
|
}
|
|
67
69
|
|
|
70
|
+
@test()
|
|
71
|
+
protected static async flushSamplesCallsLslBinding() {
|
|
72
|
+
this.instance.flushSamples()
|
|
73
|
+
|
|
74
|
+
assert.isEqualDeep(
|
|
75
|
+
this.fakeLiblsl.lastFlushInletOptions,
|
|
76
|
+
{ inlet: this.instance.getBoundInlet() },
|
|
77
|
+
'Should have called flushInlet!'
|
|
78
|
+
)
|
|
79
|
+
}
|
|
80
|
+
|
|
68
81
|
private static LslStreamInlet(options?: Partial<StreamInletOptions>) {
|
|
69
82
|
const defaultOptions = {
|
|
70
83
|
channelNames: this.channelNames,
|
|
@@ -1,20 +1,20 @@
|
|
|
1
|
-
import { test, assert } from '@sprucelabs/test-utils'
|
|
2
1
|
import generateId from '@neurodevs/generate-id'
|
|
3
|
-
import {
|
|
4
|
-
|
|
2
|
+
import { test, assert } from '@neurodevs/node-tdd'
|
|
3
|
+
|
|
4
|
+
import { CHANNEL_FORMATS } from '../../consts.js'
|
|
5
|
+
import { StreamInfo } from '../../impl/LslStreamInfo.js'
|
|
5
6
|
import LslStreamOutlet, {
|
|
6
7
|
StreamOutletOptions,
|
|
7
|
-
} from '../../impl/LslStreamOutlet'
|
|
8
|
+
} from '../../impl/LslStreamOutlet.js'
|
|
8
9
|
import {
|
|
9
10
|
TEST_SUPPORTED_CHANNEL_FORMATS,
|
|
10
11
|
TEST_UNSUPPORTED_CHANNEL_FORMATS,
|
|
11
12
|
TestChannelFormat,
|
|
12
|
-
} from '../../testDoubles/consts'
|
|
13
|
-
|
|
14
|
-
import
|
|
15
|
-
import
|
|
16
|
-
import
|
|
17
|
-
import AbstractPackageTest from '../AbstractPackageTest'
|
|
13
|
+
} from '../../testDoubles/consts.js'
|
|
14
|
+
import generateRandomOutletOptions from '../../testDoubles/generateRandomOutletOptions.js'
|
|
15
|
+
import FakeStreamInfo from '../../testDoubles/StreamInfo/FakeStreamInfo.js'
|
|
16
|
+
import { ChannelFormat, LslSample } from '../../types.js'
|
|
17
|
+
import AbstractPackageTest from '../AbstractPackageTest.js'
|
|
18
18
|
|
|
19
19
|
export default class LslStreamOutletTest extends AbstractPackageTest {
|
|
20
20
|
private static randomOutletOptions: StreamOutletOptions
|