@neurodevs/node-lsl 8.0.4 → 8.0.6
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/.vscode/settings.json +1 -1
- package/build/__tests__/support/generateRandomOutletOptions.js +1 -1
- package/build/__tests__/support/generateRandomOutletOptions.js.map +1 -1
- package/build/assertions.js +5 -6
- package/build/assertions.js.map +1 -1
- package/build/errors/SpruceError.js +1 -1
- package/build/errors/SpruceError.js.map +1 -1
- package/build/implementations/Liblsl.d.ts +1 -1
- package/build/implementations/Liblsl.js +14 -13
- package/build/implementations/Liblsl.js.map +1 -1
- package/build/validations.js +4 -5
- package/build/validations.js.map +1 -1
- package/package.json +15 -15
- package/src/errors/SpruceError.ts +1 -1
- package/src/implementations/Liblsl.ts +17 -16
package/.vscode/settings.json
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.default = generateRandomOutletOptions;
|
|
3
4
|
const crypto_1 = require("crypto");
|
|
4
5
|
const test_utils_1 = require("@sprucelabs/test-utils");
|
|
5
6
|
const consts_1 = require("./consts");
|
|
@@ -18,5 +19,4 @@ function generateRandomOutletOptions() {
|
|
|
18
19
|
maxBuffered: (0, crypto_1.randomInt)(0, 10),
|
|
19
20
|
};
|
|
20
21
|
}
|
|
21
|
-
exports.default = generateRandomOutletOptions;
|
|
22
22
|
//# sourceMappingURL=generateRandomOutletOptions.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generateRandomOutletOptions.js","sourceRoot":"","sources":["../../../src/__tests__/support/generateRandomOutletOptions.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"generateRandomOutletOptions.js","sourceRoot":"","sources":["../../../src/__tests__/support/generateRandomOutletOptions.ts"],"names":[],"mappings":";;AAKA,8CAeC;AApBD,mCAAkC;AAClC,uDAAmD;AAEnD,qCAAyD;AAEzD,SAAwB,2BAA2B;IAC/C,MAAM,gBAAgB,GAAG,IAAA,kBAAS,EAAC,uCAA8B,CAAC,MAAM,CAAC,CAAA;IAEzE,OAAO;QACH,IAAI,EAAE,IAAA,uBAAU,GAAE;QAClB,IAAI,EAAE,IAAA,uBAAU,GAAE;QAClB,YAAY,EAAE,IAAI,KAAK,CAAC,IAAA,kBAAS,EAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAA,uBAAU,GAAE,CAAC;QAC5D,UAAU,EAAE,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE;QAC9B,aAAa,EAAE,uCAA8B,CAAC,gBAAgB,CAAC;QAC/D,QAAQ,EAAE,IAAA,uBAAU,GAAE;QACtB,YAAY,EAAE,IAAA,uBAAU,GAAE;QAC1B,IAAI,EAAE,IAAA,uBAAU,GAAE;QAClB,SAAS,EAAE,IAAA,kBAAS,EAAC,CAAC,EAAE,EAAE,CAAC;QAC3B,WAAW,EAAE,IAAA,kBAAS,EAAC,CAAC,EAAE,EAAE,CAAC;KACZ,CAAA;AACzB,CAAC"}
|
package/build/assertions.js
CHANGED
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.assertValidMaxBuffered = assertValidMaxBuffered;
|
|
4
|
+
exports.assertValidChunkSize = assertValidChunkSize;
|
|
5
|
+
exports.assertValidChannelFormat = assertValidChannelFormat;
|
|
6
|
+
exports.assertValidSampleRate = assertValidSampleRate;
|
|
7
|
+
exports.assertValidChannelCount = assertValidChannelCount;
|
|
4
8
|
const schema_1 = require("@sprucelabs/schema");
|
|
5
9
|
const consts_1 = require("./consts");
|
|
6
10
|
const validations_1 = require("./validations");
|
|
@@ -13,7 +17,6 @@ function assertValidMaxBuffered(maxBuffered) {
|
|
|
13
17
|
});
|
|
14
18
|
}
|
|
15
19
|
}
|
|
16
|
-
exports.assertValidMaxBuffered = assertValidMaxBuffered;
|
|
17
20
|
function assertValidChunkSize(chunkSize) {
|
|
18
21
|
if (!(0, validations_1.isPositiveIntegerOrZero)(chunkSize)) {
|
|
19
22
|
throw new schema_1.SchemaError({
|
|
@@ -23,7 +26,6 @@ function assertValidChunkSize(chunkSize) {
|
|
|
23
26
|
});
|
|
24
27
|
}
|
|
25
28
|
}
|
|
26
|
-
exports.assertValidChunkSize = assertValidChunkSize;
|
|
27
29
|
function assertValidChannelFormat(channelFormat) {
|
|
28
30
|
if (!(0, validations_1.isStringInArray)(channelFormat, consts_1.CHANNEL_FORMATS)) {
|
|
29
31
|
throw new schema_1.SchemaError({
|
|
@@ -33,7 +35,6 @@ function assertValidChannelFormat(channelFormat) {
|
|
|
33
35
|
});
|
|
34
36
|
}
|
|
35
37
|
}
|
|
36
|
-
exports.assertValidChannelFormat = assertValidChannelFormat;
|
|
37
38
|
function assertValidSampleRate(sampleRate) {
|
|
38
39
|
if (!(0, validations_1.isGreaterThanOrEqualToZero)(sampleRate)) {
|
|
39
40
|
throw new schema_1.SchemaError({
|
|
@@ -43,7 +44,6 @@ function assertValidSampleRate(sampleRate) {
|
|
|
43
44
|
});
|
|
44
45
|
}
|
|
45
46
|
}
|
|
46
|
-
exports.assertValidSampleRate = assertValidSampleRate;
|
|
47
47
|
function assertValidChannelCount(channelCount) {
|
|
48
48
|
if (!(0, validations_1.isPositiveInteger)(channelCount)) {
|
|
49
49
|
throw new schema_1.SchemaError({
|
|
@@ -53,5 +53,4 @@ function assertValidChannelCount(channelCount) {
|
|
|
53
53
|
});
|
|
54
54
|
}
|
|
55
55
|
}
|
|
56
|
-
exports.assertValidChannelCount = assertValidChannelCount;
|
|
57
56
|
//# sourceMappingURL=assertions.js.map
|
package/build/assertions.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"assertions.js","sourceRoot":"","sources":["../src/assertions.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"assertions.js","sourceRoot":"","sources":["../src/assertions.ts"],"names":[],"mappings":";;AAUA,wDAQC;AAED,oDAQC;AAED,4DAQC;AAED,sDAQC;AAED,0DAQC;AA1DD,+CAAgD;AAChD,qCAA0C;AAE1C,+CAKsB;AAEtB,SAAgB,sBAAsB,CAAC,WAAmB;IACtD,IAAI,CAAC,IAAA,qCAAuB,EAAC,WAAW,CAAC,EAAE,CAAC;QACxC,MAAM,IAAI,oBAAW,CAAC;YAClB,IAAI,EAAE,oBAAoB;YAC1B,UAAU,EAAE,CAAC,aAAa,CAAC;YAC3B,eAAe,EAAE,kDAAkD;SACtE,CAAC,CAAA;IACN,CAAC;AACL,CAAC;AAED,SAAgB,oBAAoB,CAAC,SAAiB;IAClD,IAAI,CAAC,IAAA,qCAAuB,EAAC,SAAS,CAAC,EAAE,CAAC;QACtC,MAAM,IAAI,oBAAW,CAAC;YAClB,IAAI,EAAE,oBAAoB;YAC1B,UAAU,EAAE,CAAC,WAAW,CAAC;YACzB,eAAe,EAAE,gDAAgD;SACpE,CAAC,CAAA;IACN,CAAC;AACL,CAAC;AAED,SAAgB,wBAAwB,CAAC,aAA4B;IACjE,IAAI,CAAC,IAAA,6BAAe,EAAC,aAAa,EAAE,wBAAe,CAAC,EAAE,CAAC;QACnD,MAAM,IAAI,oBAAW,CAAC;YAClB,IAAI,EAAE,oBAAoB;YAC1B,UAAU,EAAE,CAAC,eAAe,CAAC;YAC7B,eAAe,EAAE,UAAU;SAC9B,CAAC,CAAA;IACN,CAAC;AACL,CAAC;AAED,SAAgB,qBAAqB,CAAC,UAAkB;IACpD,IAAI,CAAC,IAAA,wCAA0B,EAAC,UAAU,CAAC,EAAE,CAAC;QAC1C,MAAM,IAAI,oBAAW,CAAC;YAClB,IAAI,EAAE,oBAAoB;YAC1B,UAAU,EAAE,CAAC,YAAY,CAAC;YAC1B,eAAe,EAAE,gDAAgD;SACpE,CAAC,CAAA;IACN,CAAC;AACL,CAAC;AAED,SAAgB,uBAAuB,CAAC,YAAoB;IACxD,IAAI,CAAC,IAAA,+BAAiB,EAAC,YAAY,CAAC,EAAE,CAAC;QACnC,MAAM,IAAI,oBAAW,CAAC;YAClB,IAAI,EAAE,oBAAoB;YAC1B,UAAU,EAAE,CAAC,cAAc,CAAC;YAC5B,eAAe,EAAE,0CAA0C;SAC9D,CAAC,CAAA;IACN,CAAC;AACL,CAAC"}
|
|
@@ -11,7 +11,7 @@ class SpruceError extends error_1.default {
|
|
|
11
11
|
let message;
|
|
12
12
|
switch (options === null || options === void 0 ? void 0 : options.code) {
|
|
13
13
|
case 'FAILED_TO_LOAD_LIBLSL':
|
|
14
|
-
message = `Well shoot! Loading the liblsl dylib failed. I tried to load it from ${options.liblslPath}
|
|
14
|
+
message = `Well shoot! Loading the liblsl dylib failed. I tried to load it from ${options.liblslPath}. Original error:\n\n${options.originalError}`;
|
|
15
15
|
break;
|
|
16
16
|
default:
|
|
17
17
|
message = super.friendlyMessage();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SpruceError.js","sourceRoot":"","sources":["../../src/errors/SpruceError.ts"],"names":[],"mappings":";;;;;AAAA,8DAA+C;AAG/C,MAAqB,WAAY,SAAQ,eAA6B;IAClE,kDAAkD;IAC3C,eAAe;QAClB,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAA;QACxB,IAAI,OAAO,CAAA;QACX,QAAQ,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,IAAI,EAAE,CAAC;YACpB,KAAK,uBAAuB;gBACxB,OAAO,GAAG,wEAAwE,OAAO,CAAC,UAAU,
|
|
1
|
+
{"version":3,"file":"SpruceError.js","sourceRoot":"","sources":["../../src/errors/SpruceError.ts"],"names":[],"mappings":";;;;;AAAA,8DAA+C;AAG/C,MAAqB,WAAY,SAAQ,eAA6B;IAClE,kDAAkD;IAC3C,eAAe;QAClB,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAA;QACxB,IAAI,OAAO,CAAA;QACX,QAAQ,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,IAAI,EAAE,CAAC;YACpB,KAAK,uBAAuB;gBACxB,OAAO,GAAG,wEAAwE,OAAO,CAAC,UAAU,wBAAwB,OAAO,CAAC,aAAa,EAAE,CAAA;gBACnJ,MAAK;YACT;gBACI,OAAO,GAAG,KAAK,CAAC,eAAe,EAAE,CAAA;QACzC,CAAC;QAED,MAAM,WAAW,GAAG,OAAO,CAAC,eAAe;YACvC,CAAC,CAAC,OAAO,CAAC,eAAe;YACzB,CAAC,CAAC,OAAO,CAAA;QAEb,OAAO,WAAW,CAAA;IACtB,CAAC;CACJ;AAnBD,8BAmBC"}
|
|
@@ -5,10 +5,10 @@ export default class LiblslImpl implements Liblsl {
|
|
|
5
5
|
static ffiRsOpen: typeof open;
|
|
6
6
|
static ffiRsDefine: typeof define;
|
|
7
7
|
private bindings;
|
|
8
|
+
protected constructor();
|
|
8
9
|
static getInstance(): Liblsl;
|
|
9
10
|
static setInstance(instance: Liblsl): void;
|
|
10
11
|
static resetInstance(): void;
|
|
11
|
-
protected constructor();
|
|
12
12
|
private loadBindings;
|
|
13
13
|
createStreamInfo(options: CreateStreamInfoOptions): import("../nodeLsl.types").BoundStreamInfo;
|
|
14
14
|
appendChannelsToStreamInfo(options: AppendChannelsToStreamInfoOptions): void;
|
|
@@ -7,18 +7,6 @@ const schema_1 = require("@sprucelabs/schema");
|
|
|
7
7
|
const ffi_rs_1 = require("ffi-rs");
|
|
8
8
|
const SpruceError_1 = __importDefault(require("../errors/SpruceError"));
|
|
9
9
|
class LiblslImpl {
|
|
10
|
-
static getInstance() {
|
|
11
|
-
if (!this.instance) {
|
|
12
|
-
this.setInstance(new this());
|
|
13
|
-
}
|
|
14
|
-
return this.instance;
|
|
15
|
-
}
|
|
16
|
-
static setInstance(instance) {
|
|
17
|
-
this.instance = instance;
|
|
18
|
-
}
|
|
19
|
-
static resetInstance() {
|
|
20
|
-
delete this.instance;
|
|
21
|
-
}
|
|
22
10
|
constructor() {
|
|
23
11
|
const path = process.env.LIBLSL_PATH;
|
|
24
12
|
if (!path) {
|
|
@@ -27,13 +15,26 @@ class LiblslImpl {
|
|
|
27
15
|
try {
|
|
28
16
|
this.bindings = this.loadBindings(path);
|
|
29
17
|
}
|
|
30
|
-
catch {
|
|
18
|
+
catch (error) {
|
|
31
19
|
throw new SpruceError_1.default({
|
|
32
20
|
code: 'FAILED_TO_LOAD_LIBLSL',
|
|
33
21
|
liblslPath: path,
|
|
22
|
+
originalError: error,
|
|
34
23
|
});
|
|
35
24
|
}
|
|
36
25
|
}
|
|
26
|
+
static getInstance() {
|
|
27
|
+
if (!this.instance) {
|
|
28
|
+
this.setInstance(new this());
|
|
29
|
+
}
|
|
30
|
+
return this.instance;
|
|
31
|
+
}
|
|
32
|
+
static setInstance(instance) {
|
|
33
|
+
this.instance = instance;
|
|
34
|
+
}
|
|
35
|
+
static resetInstance() {
|
|
36
|
+
delete this.instance;
|
|
37
|
+
}
|
|
37
38
|
loadBindings(liblslPath) {
|
|
38
39
|
LiblslImpl.ffiRsOpen({
|
|
39
40
|
library: 'lsl',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Liblsl.js","sourceRoot":"","sources":["../../src/implementations/Liblsl.ts"],"names":[],"mappings":";;;;;AAAA,+CAAkD;AAClD,mCAA+C;AAC/C,wEAA+C;AAY/C,MAAqB,UAAU;
|
|
1
|
+
{"version":3,"file":"Liblsl.js","sourceRoot":"","sources":["../../src/implementations/Liblsl.ts"],"names":[],"mappings":";;;;;AAAA,+CAAkD;AAClD,mCAA+C;AAC/C,wEAA+C;AAY/C,MAAqB,UAAU;IAO3B;QACI,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,WAAY,CAAA;QAErC,IAAI,CAAC,IAAI,EAAE,CAAC;YACR,IAAA,sBAAa,EAAC,OAAO,EAAE,CAAC,iBAAiB,CAAC,CAAC,CAAA;QAC/C,CAAC;QAED,IAAI,CAAC;YACD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAA;QAC3C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,MAAM,IAAI,qBAAW,CAAC;gBAClB,IAAI,EAAE,uBAAuB;gBAC7B,UAAU,EAAE,IAAI;gBAChB,aAAa,EAAE,KAAY;aAC9B,CAAC,CAAA;QACN,CAAC;IACL,CAAC;IAEM,MAAM,CAAC,WAAW;QACrB,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACjB,IAAI,CAAC,WAAW,CAAC,IAAI,IAAI,EAAE,CAAC,CAAA;QAChC,CAAC;QACD,OAAO,IAAI,CAAC,QAAS,CAAA;IACzB,CAAC;IAEM,MAAM,CAAC,WAAW,CAAC,QAAgB;QACtC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAA;IAC5B,CAAC;IAEM,MAAM,CAAC,aAAa;QACvB,OAAO,IAAI,CAAC,QAAQ,CAAA;IACxB,CAAC;IAEO,YAAY,CAAC,UAAkB;QACnC,UAAU,CAAC,SAAS,CAAC;YACjB,OAAO,EAAE,KAAK;YACd,IAAI,EAAE,UAAU;SACnB,CAAC,CAAA;QAEF,OAAO,UAAU,CAAC,WAAW,CAAC;YAC1B,qBAAqB,EAAE;gBACnB,OAAO,EAAE,KAAK;gBACd,OAAO,4BAAmB;gBAC1B,UAAU,EAAE;;;;;;;iBAOX;aACJ;YACD,iBAAiB,EAAE;gBACf,OAAO,EAAE,KAAK;gBACd,OAAO,4BAAmB;gBAC1B,UAAU,EAAE,wEAA+C;aAC9D;YACD,kBAAkB,EAAE;gBAChB,OAAO,EAAE,KAAK;gBACd,OAAO,uBAAe;gBACtB,UAAU,EAAE,4BAAmB;aAClC;YACD,eAAe,EAAE;gBACb,OAAO,EAAE,KAAK;gBACd,OAAO,yBAAiB;gBACxB,UAAU,EAAE,EAAE;aACjB;YACD,kBAAkB,EAAE;gBAChB,OAAO,EAAE,KAAK;gBACd,OAAO,uBAAe;gBACtB,UAAU,EAAE;;;;iBAIX;aACJ;YACD,oBAAoB,EAAE;gBAClB,OAAO,EAAE,KAAK;gBACd,OAAO,uBAAe;gBACtB,UAAU,EAAE;;;;iBAIX;aACJ;YACD,YAAY,EAAE;gBACV,OAAO,EAAE,KAAK;gBACd,OAAO,4BAAmB;gBAC1B,UAAU,EAAE,4BAAmB;aAClC;YACD,gBAAgB,EAAE;gBACd,OAAO,EAAE,KAAK;gBACd,OAAO,4BAAmB;gBAC1B,UAAU,EAAE,qDAAoC;aACnD;YACD,sBAAsB,EAAE;gBACpB,OAAO,EAAE,KAAK;gBACd,OAAO,4BAAmB;gBAC1B,UAAU,EAAE;;;;iBAIX;aACJ;SACJ,CAA8B,CAAA;IACnC,CAAC;IAEM,gBAAgB,CAAC,OAAgC;QACpD,MAAM,EACF,IAAI,EACJ,IAAI,EACJ,YAAY,EACZ,UAAU,EACV,aAAa,EACb,QAAQ,GACX,GAAG,IAAA,sBAAa,EAAC,OAAO,EAAE;YACvB,MAAM;YACN,MAAM;YACN,cAAc;YACd,YAAY;YACZ,eAAe;YACf,UAAU;SACb,CAAC,CAAA;QAEF,OAAO,IAAI,CAAC,QAAQ,CAAC,qBAAqB,CAAC;YACvC,IAAI;YACJ,IAAI;YACJ,YAAY;YACZ,UAAU;YACV,aAAa;YACb,QAAQ;SACX,CAAC,CAAA;IACN,CAAC;IAEM,0BAA0B,CAC7B,OAA0C;QAE1C,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,IAAA,sBAAa,EAAC,OAAO,EAAE,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAAA;QAEvE,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,CAAC,CAAA;QACtD,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC,CAAA;QAExE,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAC7B,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAA;YACjE,IAAI,CAAC,QAAQ,CAAC,sBAAsB,CAAC;gBACjC,KAAK;gBACL,OAAO;gBACP,OAAO,CAAC,KAAK;aAChB,CAAC,CAAA;YACF,IAAI,CAAC,QAAQ,CAAC,sBAAsB,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAA;YACnE,IAAI,CAAC,QAAQ,CAAC,sBAAsB,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAA;QACvE,CAAC;IACL,CAAC;IAEM,YAAY,CAAC,OAA4B;QAC5C,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,GAAG,IAAA,sBAAa,EAAC,OAAO,EAAE;YAC5D,MAAM;YACN,WAAW;YACX,aAAa;SAChB,CAAC,CAAA;QAEF,OAAO,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC,IAAI,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC,CAAA;IAC1E,CAAC;IAEM,aAAa,CAAC,OAA6B;QAC9C,MAAM,EAAE,MAAM,EAAE,GAAG,IAAA,sBAAa,EAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAA;QACrD,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC,MAAM,CAAC,CAAC,CAAA;IAC9C,CAAC;IAEM,wBAAwB,CAAC,OAAwC;QACpE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,IAAA,sBAAa,EAAC,OAAO,EAAE;YACzD,QAAQ;YACR,QAAQ;YACR,WAAW;SACd,CAAC,CAAA;QACF,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC,CAAA;IACjE,CAAC;IAEM,yBAAyB,CAC5B,OAAyC;QAEzC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,IAAA,sBAAa,EAAC,OAAO,EAAE;YACzD,QAAQ;YACR,QAAQ;YACR,WAAW;SACd,CAAC,CAAA;QACF,IAAI,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC,CAAA;IACnE,CAAC;IAEM,UAAU;QACb,OAAO,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC,CAAA;IAC5C,CAAC;;AApMa,oBAAS,GAAG,aAAI,CAAA;AAChB,sBAAW,GAAG,eAAM,CAAA;kBAHjB,UAAU"}
|
package/build/validations.js
CHANGED
|
@@ -1,22 +1,21 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.isStringInArray = isStringInArray;
|
|
4
|
+
exports.isGreaterThanOrEqualToZero = isGreaterThanOrEqualToZero;
|
|
5
|
+
exports.isPositiveInteger = isPositiveInteger;
|
|
6
|
+
exports.isPositiveIntegerOrZero = isPositiveIntegerOrZero;
|
|
4
7
|
function isStringInArray(value, array) {
|
|
5
8
|
return array.indexOf(value) !== -1;
|
|
6
9
|
}
|
|
7
|
-
exports.isStringInArray = isStringInArray;
|
|
8
10
|
function isGreaterThanOrEqualToZero(value) {
|
|
9
11
|
return value >= 0;
|
|
10
12
|
}
|
|
11
|
-
exports.isGreaterThanOrEqualToZero = isGreaterThanOrEqualToZero;
|
|
12
13
|
function isPositiveInteger(value) {
|
|
13
14
|
//@ts-ignore
|
|
14
15
|
return Number.isInteger(value) && value > 0;
|
|
15
16
|
}
|
|
16
|
-
exports.isPositiveInteger = isPositiveInteger;
|
|
17
17
|
function isPositiveIntegerOrZero(value) {
|
|
18
18
|
//@ts-ignore
|
|
19
19
|
return Number.isInteger(value) && value >= 0;
|
|
20
20
|
}
|
|
21
|
-
exports.isPositiveIntegerOrZero = isPositiveIntegerOrZero;
|
|
22
21
|
//# sourceMappingURL=validations.js.map
|
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,0CAEC;AAED,gEAEC;AAED,8CAGC;AAED,0DAGC;AAhBD,SAAgB,eAAe,CAAC,KAAa,EAAE,KAAwB;IACnE,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAA;AACtC,CAAC;AAED,SAAgB,0BAA0B,CAAC,KAAa;IACpD,OAAO,KAAK,IAAI,CAAC,CAAA;AACrB,CAAC;AAED,SAAgB,iBAAiB,CAAC,KAAa;IAC3C,YAAY;IACZ,OAAO,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,CAAA;AAC/C,CAAC;AAED,SAAgB,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,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@neurodevs/node-lsl",
|
|
3
|
-
"version": "8.0.
|
|
3
|
+
"version": "8.0.6",
|
|
4
4
|
"main": "build/index.js",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -31,22 +31,22 @@
|
|
|
31
31
|
"test.rs": "node build/test.js"
|
|
32
32
|
},
|
|
33
33
|
"devDependencies": {
|
|
34
|
-
"@sprucelabs/jest-json-reporter": "^8.0.
|
|
35
|
-
"@sprucelabs/resolve-path-aliases": "^2.0.
|
|
36
|
-
"@sprucelabs/test": "^9.0.
|
|
37
|
-
"@sprucelabs/test-utils": "^5.
|
|
34
|
+
"@sprucelabs/jest-json-reporter": "^8.0.69",
|
|
35
|
+
"@sprucelabs/resolve-path-aliases": "^2.0.45",
|
|
36
|
+
"@sprucelabs/test": "^9.0.30",
|
|
37
|
+
"@sprucelabs/test-utils": "^5.1.2",
|
|
38
38
|
"@types/ffi-napi": "^4.0.10",
|
|
39
|
-
"@types/node": "^20.
|
|
39
|
+
"@types/node": "^20.14.7",
|
|
40
40
|
"chokidar-cli": "^3.0.0",
|
|
41
41
|
"concurrently": "^8.2.2",
|
|
42
|
-
"eslint": "^9.
|
|
43
|
-
"eslint-config-spruce": "^11.2.
|
|
42
|
+
"eslint": "^9.5.0",
|
|
43
|
+
"eslint-config-spruce": "^11.2.24",
|
|
44
44
|
"jest": "^29.7.0",
|
|
45
45
|
"jest-circus": "^29.7.0",
|
|
46
|
-
"prettier": "^3.2
|
|
46
|
+
"prettier": "^3.3.2",
|
|
47
47
|
"ts-node": "^10.9.2",
|
|
48
48
|
"tsc-watch": "^6.2.0",
|
|
49
|
-
"typescript": "^5.
|
|
49
|
+
"typescript": "^5.5.2"
|
|
50
50
|
},
|
|
51
51
|
"description": "Lab Streaming Layer (LSL) bindings for Node",
|
|
52
52
|
"skill": {
|
|
@@ -74,11 +74,11 @@
|
|
|
74
74
|
}
|
|
75
75
|
},
|
|
76
76
|
"dependencies": {
|
|
77
|
-
"@sprucelabs/error": "^6.0.
|
|
78
|
-
"@sprucelabs/schema": "^30.0.
|
|
79
|
-
"@sprucelabs/spruce-core-schemas": "^40.
|
|
80
|
-
"@sprucelabs/spruce-skill-utils": "^31.0.
|
|
81
|
-
"ffi-rs": "^1.0.
|
|
77
|
+
"@sprucelabs/error": "^6.0.64",
|
|
78
|
+
"@sprucelabs/schema": "^30.0.109",
|
|
79
|
+
"@sprucelabs/spruce-core-schemas": "^40.1.54",
|
|
80
|
+
"@sprucelabs/spruce-skill-utils": "^31.0.126",
|
|
81
|
+
"ffi-rs": "^1.0.83",
|
|
82
82
|
"node-gyp": "^10.1.0",
|
|
83
83
|
"ref-array-napi": "^1.2.2",
|
|
84
84
|
"ref-napi": "^3.0.3"
|
|
@@ -8,7 +8,7 @@ export default class SpruceError extends BaseSpruceError<ErrorOptions> {
|
|
|
8
8
|
let message
|
|
9
9
|
switch (options?.code) {
|
|
10
10
|
case 'FAILED_TO_LOAD_LIBLSL':
|
|
11
|
-
message = `Well shoot! Loading the liblsl dylib failed. I tried to load it from ${options.liblslPath}
|
|
11
|
+
message = `Well shoot! Loading the liblsl dylib failed. I tried to load it from ${options.liblslPath}. Original error:\n\n${options.originalError}`
|
|
12
12
|
break
|
|
13
13
|
default:
|
|
14
14
|
message = super.friendlyMessage()
|
|
@@ -19,21 +19,6 @@ export default class LiblslImpl implements Liblsl {
|
|
|
19
19
|
|
|
20
20
|
private bindings: LiblslBindings
|
|
21
21
|
|
|
22
|
-
public static getInstance() {
|
|
23
|
-
if (!this.instance) {
|
|
24
|
-
this.setInstance(new this())
|
|
25
|
-
}
|
|
26
|
-
return this.instance!
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
public static setInstance(instance: Liblsl) {
|
|
30
|
-
this.instance = instance
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
public static resetInstance() {
|
|
34
|
-
delete this.instance
|
|
35
|
-
}
|
|
36
|
-
|
|
37
22
|
protected constructor() {
|
|
38
23
|
const path = process.env.LIBLSL_PATH!
|
|
39
24
|
|
|
@@ -43,14 +28,30 @@ export default class LiblslImpl implements Liblsl {
|
|
|
43
28
|
|
|
44
29
|
try {
|
|
45
30
|
this.bindings = this.loadBindings(path)
|
|
46
|
-
} catch {
|
|
31
|
+
} catch (error) {
|
|
47
32
|
throw new SpruceError({
|
|
48
33
|
code: 'FAILED_TO_LOAD_LIBLSL',
|
|
49
34
|
liblslPath: path,
|
|
35
|
+
originalError: error as any,
|
|
50
36
|
})
|
|
51
37
|
}
|
|
52
38
|
}
|
|
53
39
|
|
|
40
|
+
public static getInstance() {
|
|
41
|
+
if (!this.instance) {
|
|
42
|
+
this.setInstance(new this())
|
|
43
|
+
}
|
|
44
|
+
return this.instance!
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
public static setInstance(instance: Liblsl) {
|
|
48
|
+
this.instance = instance
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
public static resetInstance() {
|
|
52
|
+
delete this.instance
|
|
53
|
+
}
|
|
54
|
+
|
|
54
55
|
private loadBindings(liblslPath: string) {
|
|
55
56
|
LiblslImpl.ffiRsOpen({
|
|
56
57
|
library: 'lsl',
|