@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.
@@ -59,7 +59,7 @@
59
59
  "eslint.workingDirectories": [
60
60
  "./"
61
61
  ],
62
- "typescript.validate.enable": false,
62
+ "typescript.validate.enable": true,
63
63
  "editor.formatOnSave": false,
64
64
  "editor.codeActionsOnSave": {
65
65
  "source.fixAll.eslint": "always"
@@ -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":";;AAAA,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;AAfD,8CAeC"}
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"}
@@ -1,6 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.assertValidChannelCount = exports.assertValidSampleRate = exports.assertValidChannelFormat = exports.assertValidChunkSize = exports.assertValidMaxBuffered = void 0;
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
@@ -1 +1 @@
1
- {"version":3,"file":"assertions.js","sourceRoot":"","sources":["../src/assertions.ts"],"names":[],"mappings":";;;AAAA,+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;AARD,wDAQC;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;AARD,oDAQC;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;AARD,4DAQC;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;AARD,sDAQC;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;AARD,0DAQC"}
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,GAAG,CAAA;gBACvG,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"}
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":"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"}
1
+ {"version":3,"file":"Liblsl.js","sourceRoot":"","sources":["../../src/implementations/Liblsl.ts"],"names":[],"mappings":"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"}
@@ -1,22 +1,21 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.isPositiveIntegerOrZero = exports.isPositiveInteger = exports.isGreaterThanOrEqualToZero = exports.isStringInArray = void 0;
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
@@ -1 +1 @@
1
- {"version":3,"file":"validations.js","sourceRoot":"","sources":["../src/validations.ts"],"names":[],"mappings":";;;AAAA,SAAgB,eAAe,CAAC,KAAa,EAAE,KAAwB;IACnE,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAA;AACtC,CAAC;AAFD,0CAEC;AAED,SAAgB,0BAA0B,CAAC,KAAa;IACpD,OAAO,KAAK,IAAI,CAAC,CAAA;AACrB,CAAC;AAFD,gEAEC;AAED,SAAgB,iBAAiB,CAAC,KAAa;IAC3C,YAAY;IACZ,OAAO,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,CAAA;AAC/C,CAAC;AAHD,8CAGC;AAED,SAAgB,uBAAuB,CAAC,KAAa;IACjD,YAAY;IACZ,OAAO,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,CAAA;AAChD,CAAC;AAHD,0DAGC"}
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.4",
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.27",
35
- "@sprucelabs/resolve-path-aliases": "^2.0.22",
36
- "@sprucelabs/test": "^9.0.13",
37
- "@sprucelabs/test-utils": "^5.0.35",
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.12.12",
39
+ "@types/node": "^20.14.7",
40
40
  "chokidar-cli": "^3.0.0",
41
41
  "concurrently": "^8.2.2",
42
- "eslint": "^9.2.0",
43
- "eslint-config-spruce": "^11.2.17",
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.5",
46
+ "prettier": "^3.3.2",
47
47
  "ts-node": "^10.9.2",
48
48
  "tsc-watch": "^6.2.0",
49
- "typescript": "^5.4.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.24",
78
- "@sprucelabs/schema": "^30.0.45",
79
- "@sprucelabs/spruce-core-schemas": "^40.0.40",
80
- "@sprucelabs/spruce-skill-utils": "^31.0.48",
81
- "ffi-rs": "^1.0.75",
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',