@neurodevs/ndx-native 0.2.0 → 0.3.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.
Files changed (61) hide show
  1. package/.regressionproof.json +7 -0
  2. package/.vscode/launch.json +52 -57
  3. package/.vscode/settings.json +62 -66
  4. package/.vscode/tasks.json +123 -129
  5. package/README.md +1 -0
  6. package/build/.spruce/settings.json +7 -7
  7. package/build/__tests__/AbstractPackageTest.d.ts +1 -0
  8. package/build/__tests__/AbstractPackageTest.js +1 -0
  9. package/build/__tests__/AbstractPackageTest.js.map +1 -1
  10. package/build/__tests__/impl/LabrecorderAdapter.test.d.ts +1 -1
  11. package/build/__tests__/impl/LabrecorderAdapter.test.js +9 -9
  12. package/build/__tests__/impl/LabrecorderAdapter.test.js.map +1 -1
  13. package/build/__tests__/impl/LiblslAdapter.test.d.ts +3 -4
  14. package/build/__tests__/impl/LiblslAdapter.test.js +18 -26
  15. package/build/__tests__/impl/LiblslAdapter.test.js.map +1 -1
  16. package/build/__tests__/impl/LibndxAdapter.test.d.ts +35 -0
  17. package/build/__tests__/impl/LibndxAdapter.test.js +258 -0
  18. package/build/__tests__/impl/LibndxAdapter.test.js.map +1 -0
  19. package/build/__tests__/impl/LibxdfAdapter.test.d.ts +1 -2
  20. package/build/__tests__/impl/LibxdfAdapter.test.js +5 -6
  21. package/build/__tests__/impl/LibxdfAdapter.test.js.map +1 -1
  22. package/build/impl/LiblslAdapter.d.ts +7 -9
  23. package/build/impl/LiblslAdapter.js +111 -117
  24. package/build/impl/LiblslAdapter.js.map +1 -1
  25. package/build/impl/LibndxAdapter.d.ts +57 -0
  26. package/build/impl/LibndxAdapter.js +145 -0
  27. package/build/impl/LibndxAdapter.js.map +1 -0
  28. package/build/impl/LibxdfAdapter.d.ts +3 -3
  29. package/build/impl/LibxdfAdapter.js +10 -7
  30. package/build/impl/LibxdfAdapter.js.map +1 -1
  31. package/build/index.d.ts +6 -2
  32. package/build/index.js +8 -3
  33. package/build/index.js.map +1 -1
  34. package/build/lib/{handleError.d.ts → handleLslError.d.ts} +1 -1
  35. package/build/lib/{handleError.js → handleLslError.js} +2 -2
  36. package/build/lib/handleLslError.js.map +1 -0
  37. package/build/testDoubles/Libndx/FakeLibndx.d.ts +22 -0
  38. package/build/testDoubles/Libndx/FakeLibndx.js +58 -0
  39. package/build/testDoubles/Libndx/FakeLibndx.js.map +1 -0
  40. package/build/types.d.ts +2 -0
  41. package/build/types.js +2 -0
  42. package/build/types.js.map +1 -0
  43. package/eslint.config.js +3 -0
  44. package/package.json +15 -31
  45. package/prettier.config.js +3 -0
  46. package/src/.spruce/settings.json +7 -7
  47. package/src/__tests__/AbstractPackageTest.ts +2 -0
  48. package/src/__tests__/impl/LabrecorderAdapter.test.ts +27 -11
  49. package/src/__tests__/impl/LiblslAdapter.test.ts +19 -26
  50. package/src/__tests__/impl/LibndxAdapter.test.ts +279 -0
  51. package/src/__tests__/impl/LibxdfAdapter.test.ts +5 -6
  52. package/src/impl/LiblslAdapter.ts +119 -127
  53. package/src/impl/LibndxAdapter.ts +204 -0
  54. package/src/impl/LibxdfAdapter.ts +13 -15
  55. package/src/index.ts +11 -3
  56. package/src/lib/{handleError.ts → handleLslError.ts} +1 -1
  57. package/src/testDoubles/Libndx/FakeLibndx.ts +74 -0
  58. package/src/types.ts +7 -0
  59. package/tsconfig.json +24 -27
  60. package/build/lib/handleError.js.map +0 -1
  61. package/eslint.config.mjs +0 -3
@@ -1,6 +1,6 @@
1
1
  import { define, JsExternal, load, open } from 'ffi-rs';
2
2
  import { CHANNEL_FORMATS } from '../consts.js';
3
- import { LslErrorCode } from '../lib/handleError.js';
3
+ import { LslErrorCode } from '../lib/handleLslError.js';
4
4
  export default class LiblslAdapter implements Liblsl {
5
5
  static open: typeof open;
6
6
  static define: typeof define;
@@ -11,14 +11,14 @@ export default class LiblslAdapter implements Liblsl {
11
11
  private bindings;
12
12
  private readonly defaultMacOsPath;
13
13
  protected constructor();
14
- private tryToLoadBindings;
15
- private throwFailedToLoadLiblsl;
16
14
  static getInstance(): Liblsl;
17
15
  static setInstance(instance: Liblsl): void;
18
16
  static resetInstance(): void;
19
- private loadBindings;
17
+ private tryToLoadBindings;
20
18
  private openLiblsl;
21
- private defineLiblslBindings;
19
+ private defineBindings;
20
+ private throwFailedToLoadLiblsl;
21
+ localClock(): number;
22
22
  createStreamInfo(options: CreateStreamInfoOptions): InfoHandle;
23
23
  appendChannelsToStreamInfo(options: AppendChannelsToStreamInfoOptions): void;
24
24
  destroyStreamInfo(options: DestroyStreamInfoOptions): void;
@@ -37,15 +37,14 @@ export default class LiblslAdapter implements Liblsl {
37
37
  pullChunk(options: PullChunkOptions): number;
38
38
  flushInlet(options: FlushInletOptions): void;
39
39
  destroyInlet(options: DestroyInletOptions): void;
40
- localClock(): number;
41
40
  private get open();
42
41
  private get define();
43
42
  private get load();
44
43
  private get alloc();
45
- private get liblslFuncs();
46
44
  }
47
45
  export interface Liblsl {
48
46
  liblslPath: string;
47
+ localClock(): number;
49
48
  createStreamInfo(options: CreateStreamInfoOptions): InfoHandle;
50
49
  destroyStreamInfo(options: DestroyStreamInfoOptions): void;
51
50
  appendChannelsToStreamInfo(options: AppendChannelsToStreamInfoOptions): void;
@@ -62,7 +61,6 @@ export interface Liblsl {
62
61
  pullChunk(options: PullChunkOptions): number;
63
62
  flushInlet(options: FlushInletOptions): void;
64
63
  destroyInlet(options: DestroyInletOptions): void;
65
- localClock(): number;
66
64
  }
67
65
  export interface CreateStreamInfoOptions {
68
66
  name: string;
@@ -138,6 +136,7 @@ export interface DestroyInletOptions {
138
136
  inletHandle: InletHandle;
139
137
  }
140
138
  export interface LiblslBindings {
139
+ lsl_local_clock(args: []): number;
141
140
  lsl_create_streaminfo(args: [string, string, number, number, number, string]): InfoHandle;
142
141
  lsl_get_desc(args: [InfoHandle]): DescriptionHandle;
143
142
  lsl_get_channel_count(args: [InfoHandle]): number;
@@ -151,7 +150,6 @@ export interface LiblslBindings {
151
150
  lsl_create_inlet(args: any): InletHandle;
152
151
  lsl_inlet_flush(args: [InletHandle]): void;
153
152
  lsl_destroy_inlet(args: any): void;
154
- lsl_local_clock(args: []): number;
155
153
  }
156
154
  export type ChannelFormat = (typeof CHANNEL_FORMATS)[number];
157
155
  export interface LslChannel {
@@ -12,17 +12,6 @@ export default class LiblslAdapter {
12
12
  this.liblslPath = process.env.LIBLSL_PATH ?? this.defaultMacOsPath;
13
13
  this.tryToLoadBindings();
14
14
  }
15
- tryToLoadBindings() {
16
- try {
17
- this.loadBindings();
18
- }
19
- catch (error) {
20
- this.throwFailedToLoadLiblsl(error);
21
- }
22
- }
23
- throwFailedToLoadLiblsl(error) {
24
- throw new Error(`Loading the liblsl dylib failed! I tried to load it from ${this.liblslPath}.\n\n${error.message}\n\n`);
25
- }
26
15
  static getInstance() {
27
16
  if (!this.instance) {
28
17
  this.setInstance(new this());
@@ -35,9 +24,14 @@ export default class LiblslAdapter {
35
24
  static resetInstance() {
36
25
  delete this.instance;
37
26
  }
38
- loadBindings() {
39
- this.openLiblsl();
40
- this.bindings = this.defineLiblslBindings();
27
+ tryToLoadBindings() {
28
+ try {
29
+ this.openLiblsl();
30
+ this.defineBindings();
31
+ }
32
+ catch (error) {
33
+ this.throwFailedToLoadLiblsl(error);
34
+ }
41
35
  }
42
36
  openLiblsl() {
43
37
  this.open({
@@ -45,8 +39,109 @@ export default class LiblslAdapter {
45
39
  path: this.liblslPath,
46
40
  });
47
41
  }
48
- defineLiblslBindings() {
49
- return this.define(this.liblslFuncs);
42
+ defineBindings() {
43
+ this.bindings = this.define({
44
+ lsl_local_clock: {
45
+ library: 'lsl',
46
+ retType: DataType.Double,
47
+ paramsType: [],
48
+ },
49
+ lsl_create_streaminfo: {
50
+ library: 'lsl',
51
+ retType: DataType.External,
52
+ paramsType: [
53
+ DataType.String,
54
+ DataType.String,
55
+ DataType.I32,
56
+ DataType.Double,
57
+ DataType.I32,
58
+ DataType.String,
59
+ ],
60
+ },
61
+ lsl_destroy_streaminfo: {
62
+ library: 'lsl',
63
+ retType: DataType.Void,
64
+ paramsType: [DataType.External],
65
+ },
66
+ lsl_create_outlet: {
67
+ library: 'lsl',
68
+ retType: DataType.External,
69
+ paramsType: [DataType.External, DataType.I32, DataType.I32],
70
+ },
71
+ lsl_push_sample_ft: {
72
+ library: 'lsl',
73
+ retType: DataType.I32,
74
+ paramsType: [
75
+ DataType.External,
76
+ DataType.FloatArray,
77
+ DataType.Double,
78
+ ],
79
+ },
80
+ lsl_push_sample_strt: {
81
+ library: 'lsl',
82
+ retType: DataType.I32,
83
+ paramsType: [
84
+ DataType.External,
85
+ DataType.StringArray,
86
+ DataType.Double,
87
+ ],
88
+ },
89
+ lsl_destroy_outlet: {
90
+ library: 'lsl',
91
+ retType: DataType.Void,
92
+ paramsType: [DataType.External],
93
+ },
94
+ lsl_create_inlet: {
95
+ library: 'lsl',
96
+ retType: DataType.External,
97
+ paramsType: [
98
+ DataType.External,
99
+ DataType.I32,
100
+ DataType.I32,
101
+ DataType.I32,
102
+ ],
103
+ },
104
+ lsl_inlet_flush: {
105
+ library: 'lsl',
106
+ retType: DataType.I32,
107
+ paramsType: [DataType.External],
108
+ },
109
+ lsl_destroy_inlet: {
110
+ library: 'lsl',
111
+ retType: DataType.Void,
112
+ paramsType: [DataType.External],
113
+ },
114
+ lsl_get_desc: {
115
+ library: 'lsl',
116
+ retType: DataType.External,
117
+ paramsType: [DataType.External],
118
+ },
119
+ lsl_get_channel_count: {
120
+ library: 'lsl',
121
+ retType: DataType.I32,
122
+ paramsType: [DataType.External],
123
+ },
124
+ lsl_append_child: {
125
+ library: 'lsl',
126
+ retType: DataType.External,
127
+ paramsType: [DataType.External, DataType.String],
128
+ },
129
+ lsl_append_child_value: {
130
+ library: 'lsl',
131
+ retType: DataType.External,
132
+ paramsType: [
133
+ DataType.External,
134
+ DataType.String,
135
+ DataType.String,
136
+ ],
137
+ },
138
+ });
139
+ }
140
+ throwFailedToLoadLiblsl(error) {
141
+ throw new Error(`Loading the liblsl dylib failed! I tried to load it from ${this.liblslPath}.\n\n${error.message}\n\n`);
142
+ }
143
+ localClock() {
144
+ return this.bindings.lsl_local_clock([]);
50
145
  }
51
146
  createStreamInfo(options) {
52
147
  const { name, type, sourceId, channelCount, channelFormat, sampleRateHz, } = options;
@@ -241,9 +336,6 @@ export default class LiblslAdapter {
241
336
  const { inletHandle } = options;
242
337
  this.bindings.lsl_destroy_inlet([inletHandle]);
243
338
  }
244
- localClock() {
245
- return this.bindings.lsl_local_clock([]);
246
- }
247
339
  get open() {
248
340
  return LiblslAdapter.open;
249
341
  }
@@ -256,103 +348,5 @@ export default class LiblslAdapter {
256
348
  get alloc() {
257
349
  return LiblslAdapter.alloc;
258
350
  }
259
- get liblslFuncs() {
260
- return {
261
- lsl_create_streaminfo: {
262
- library: 'lsl',
263
- retType: DataType.External,
264
- paramsType: [
265
- DataType.String,
266
- DataType.String,
267
- DataType.I32,
268
- DataType.Double,
269
- DataType.I32,
270
- DataType.String,
271
- ],
272
- },
273
- lsl_destroy_streaminfo: {
274
- library: 'lsl',
275
- retType: DataType.Void,
276
- paramsType: [DataType.External],
277
- },
278
- lsl_create_outlet: {
279
- library: 'lsl',
280
- retType: DataType.External,
281
- paramsType: [DataType.External, DataType.I32, DataType.I32],
282
- },
283
- lsl_push_sample_ft: {
284
- library: 'lsl',
285
- retType: DataType.I32,
286
- paramsType: [
287
- DataType.External,
288
- DataType.FloatArray,
289
- DataType.Double,
290
- ],
291
- },
292
- lsl_push_sample_strt: {
293
- library: 'lsl',
294
- retType: DataType.I32,
295
- paramsType: [
296
- DataType.External,
297
- DataType.StringArray,
298
- DataType.Double,
299
- ],
300
- },
301
- lsl_destroy_outlet: {
302
- library: 'lsl',
303
- retType: DataType.Void,
304
- paramsType: [DataType.External],
305
- },
306
- lsl_create_inlet: {
307
- library: 'lsl',
308
- retType: DataType.External,
309
- paramsType: [
310
- DataType.External,
311
- DataType.I32,
312
- DataType.I32,
313
- DataType.I32,
314
- ],
315
- },
316
- lsl_inlet_flush: {
317
- library: 'lsl',
318
- retType: DataType.I32,
319
- paramsType: [DataType.External],
320
- },
321
- lsl_destroy_inlet: {
322
- library: 'lsl',
323
- retType: DataType.Void,
324
- paramsType: [DataType.External],
325
- },
326
- lsl_get_desc: {
327
- library: 'lsl',
328
- retType: DataType.External,
329
- paramsType: [DataType.External],
330
- },
331
- lsl_get_channel_count: {
332
- library: 'lsl',
333
- retType: DataType.I32,
334
- paramsType: [DataType.External],
335
- },
336
- lsl_append_child: {
337
- library: 'lsl',
338
- retType: DataType.External,
339
- paramsType: [DataType.External, DataType.String],
340
- },
341
- lsl_append_child_value: {
342
- library: 'lsl',
343
- retType: DataType.External,
344
- paramsType: [
345
- DataType.External,
346
- DataType.String,
347
- DataType.String,
348
- ],
349
- },
350
- lsl_local_clock: {
351
- library: 'lsl',
352
- retType: DataType.Double,
353
- paramsType: [],
354
- },
355
- };
356
- }
357
351
  }
358
352
  //# sourceMappingURL=LiblslAdapter.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"LiblslAdapter.js","sourceRoot":"","sources":["../../src/impl/LiblslAdapter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"LiblslAdapter.js","sourceRoot":"","sources":["../../src/impl/LiblslAdapter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,57 @@
1
+ import { define, open } from 'ffi-rs';
2
+ export default class LibndxAdapter implements Libndx {
3
+ static Class?: LibndxConstructor;
4
+ static ffiRsOpen: typeof open;
5
+ static ffiRsDefine: typeof define;
6
+ private static instance?;
7
+ private libndxPath;
8
+ private bindings;
9
+ protected constructor(options?: LibndxAdapterOptions);
10
+ static getInstance(options?: LibndxAdapterOptions): Libndx;
11
+ static setInstance(instance: Libndx): void;
12
+ static resetInstance(): void;
13
+ private tryToLoadBindings;
14
+ private openLibndx;
15
+ private defineBindings;
16
+ private throwFailedToLoadLibndx;
17
+ createBleBackend(options: BleBackendOptions): string;
18
+ startBleBackend(options: BleBackendOptions): string;
19
+ stopBleBackend(options: BleBackendOptions): string;
20
+ destroyBleBackend(options: BleBackendOptions): string;
21
+ createFtdiBackend(options: FtdiBackendOptions): string;
22
+ startFtdiBackend(options: FtdiBackendOptions): string;
23
+ stopFtdiBackend(options: FtdiBackendOptions): string;
24
+ destroyFtdiBackend(options: FtdiBackendOptions): string;
25
+ private get ffiRsOpen();
26
+ private get ffiRsDefine();
27
+ }
28
+ export interface Libndx {
29
+ createBleBackend(options: BleBackendOptions): string;
30
+ startBleBackend(options: BleBackendOptions): string;
31
+ stopBleBackend(options: BleBackendOptions): string;
32
+ destroyBleBackend(options: BleBackendOptions): string;
33
+ createFtdiBackend(options: FtdiBackendOptions): string;
34
+ startFtdiBackend(options: FtdiBackendOptions): string;
35
+ stopFtdiBackend(options: FtdiBackendOptions): string;
36
+ destroyFtdiBackend(options: FtdiBackendOptions): string;
37
+ }
38
+ export type LibndxConstructor = new (options?: LibndxAdapterOptions) => Libndx;
39
+ export interface LibndxAdapterOptions {
40
+ libndxPath?: string;
41
+ }
42
+ export interface BleBackendOptions {
43
+ deviceUuid: string;
44
+ }
45
+ export interface FtdiBackendOptions {
46
+ serialNumber: string;
47
+ }
48
+ export interface LibndxBindings {
49
+ create_ble_backend(args: [string]): string;
50
+ start_ble_backend(args: [string]): string;
51
+ stop_ble_backend(args: [string]): string;
52
+ destroy_ble_backend(args: [string]): string;
53
+ create_ftdi_backend(args: [string]): string;
54
+ start_ftdi_backend(args: [string]): string;
55
+ stop_ftdi_backend(args: [string]): string;
56
+ destroy_ftdi_backend(args: [string]): string;
57
+ }
@@ -0,0 +1,145 @@
1
+ import { DataType, define, open } from 'ffi-rs';
2
+ export default class LibndxAdapter {
3
+ static Class;
4
+ static ffiRsOpen = open;
5
+ static ffiRsDefine = define;
6
+ static instance;
7
+ libndxPath;
8
+ bindings;
9
+ constructor(options) {
10
+ const { libndxPath = '' } = options ?? {};
11
+ this.libndxPath = libndxPath;
12
+ this.tryToLoadBindings();
13
+ }
14
+ static getInstance(options) {
15
+ if (!this.instance) {
16
+ this.setInstance(new this(options));
17
+ }
18
+ return this.instance;
19
+ }
20
+ static setInstance(instance) {
21
+ this.instance = instance;
22
+ }
23
+ static resetInstance() {
24
+ delete this.instance;
25
+ }
26
+ tryToLoadBindings() {
27
+ try {
28
+ this.openLibndx();
29
+ this.defineBindings();
30
+ }
31
+ catch (err) {
32
+ this.throwFailedToLoadLibndx(err);
33
+ }
34
+ }
35
+ openLibndx() {
36
+ this.ffiRsOpen({
37
+ library: 'ndx',
38
+ path: this.libndxPath,
39
+ });
40
+ }
41
+ defineBindings() {
42
+ this.bindings = this.ffiRsDefine({
43
+ create_ble_backend: {
44
+ library: 'ndx',
45
+ retType: DataType.String,
46
+ paramsType: [DataType.String],
47
+ },
48
+ start_ble_backend: {
49
+ library: 'ndx',
50
+ retType: DataType.String,
51
+ paramsType: [DataType.String],
52
+ },
53
+ stop_ble_backend: {
54
+ library: 'ndx',
55
+ retType: DataType.String,
56
+ paramsType: [DataType.String],
57
+ },
58
+ destroy_ble_backend: {
59
+ library: 'ndx',
60
+ retType: DataType.String,
61
+ paramsType: [DataType.String],
62
+ },
63
+ create_ftdi_backend: {
64
+ library: 'ndx',
65
+ retType: DataType.String,
66
+ paramsType: [DataType.String],
67
+ },
68
+ start_ftdi_backend: {
69
+ library: 'ndx',
70
+ retType: DataType.String,
71
+ paramsType: [DataType.String],
72
+ },
73
+ stop_ftdi_backend: {
74
+ library: 'ndx',
75
+ retType: DataType.String,
76
+ paramsType: [DataType.String],
77
+ },
78
+ destroy_ftdi_backend: {
79
+ library: 'ndx',
80
+ retType: DataType.String,
81
+ paramsType: [DataType.String],
82
+ },
83
+ });
84
+ }
85
+ throwFailedToLoadLibndx(err) {
86
+ throw new Error(`
87
+ \n -----------------------------------
88
+ \n Failed to load libndx! Tried to load from:
89
+ \n ${this.libndxPath}
90
+ \n Instructions to save your day (on MacOS):
91
+ \n 1. git clone https://github.com/neurodevs/libndx.git
92
+ \n 2. cd libndx && cmake -S . -B build && cmake --build build
93
+ \n 3. sudo cp build/libndx.dylib /opt/local/lib/
94
+ \n 4. Try whatever you were doing again!
95
+ \n Modify step 3 for your OS if you are not on MacOS.
96
+ \n If you're still unsure, ask an LLM with this error and your OS.
97
+ \n You could also post an issue on the repo:
98
+ \n https://github.com/neurodevs/ndx-native/issues
99
+ \n Good luck!
100
+ \n @ericthecurious
101
+ \n -----------------------------------
102
+ \n Original error: ${err.message}
103
+ \n
104
+ `.replace(/\s+/g, ''));
105
+ }
106
+ createBleBackend(options) {
107
+ const { deviceUuid } = options;
108
+ return this.bindings.create_ble_backend([deviceUuid]);
109
+ }
110
+ startBleBackend(options) {
111
+ const { deviceUuid } = options;
112
+ return this.bindings.start_ble_backend([deviceUuid]);
113
+ }
114
+ stopBleBackend(options) {
115
+ const { deviceUuid } = options;
116
+ return this.bindings.stop_ble_backend([deviceUuid]);
117
+ }
118
+ destroyBleBackend(options) {
119
+ const { deviceUuid } = options;
120
+ return this.bindings.destroy_ble_backend([deviceUuid]);
121
+ }
122
+ createFtdiBackend(options) {
123
+ const { serialNumber } = options;
124
+ return this.bindings.create_ftdi_backend([serialNumber]);
125
+ }
126
+ startFtdiBackend(options) {
127
+ const { serialNumber } = options;
128
+ return this.bindings.start_ftdi_backend([serialNumber]);
129
+ }
130
+ stopFtdiBackend(options) {
131
+ const { serialNumber } = options;
132
+ return this.bindings.stop_ftdi_backend([serialNumber]);
133
+ }
134
+ destroyFtdiBackend(options) {
135
+ const { serialNumber } = options;
136
+ return this.bindings.destroy_ftdi_backend([serialNumber]);
137
+ }
138
+ get ffiRsOpen() {
139
+ return LibndxAdapter.ffiRsOpen;
140
+ }
141
+ get ffiRsDefine() {
142
+ return LibndxAdapter.ffiRsDefine;
143
+ }
144
+ }
145
+ //# sourceMappingURL=LibndxAdapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LibndxAdapter.js","sourceRoot":"","sources":["../../src/impl/LibndxAdapter.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { MangledNameMap } from '@neurodevs/node-mangled-names';
2
- import { define, FieldType, FuncObj, open } from 'ffi-rs';
2
+ import { define, open } from 'ffi-rs';
3
3
  export default class LibxdfAdapter implements Libxdf {
4
4
  static Class?: LibxdfConstructor;
5
5
  static ffiRsOpen: typeof open;
@@ -12,7 +12,6 @@ export default class LibxdfAdapter implements Libxdf {
12
12
  protected constructor(libxdfPath: string, mangledNameMap: MangledNameMap);
13
13
  static Create(libxdfPath: string, throwIfPathNotExists?: boolean): Promise<Libxdf>;
14
14
  private tryToLoadBindings;
15
- private loadBindings;
16
15
  private openLibxdf;
17
16
  private defineBindings;
18
17
  private throwFailedToLoadLiblsl;
@@ -37,6 +36,8 @@ export default class LibxdfAdapter implements Libxdf {
37
36
  };
38
37
  private get unmangledNames();
39
38
  private get loadXdfName();
39
+ private get ffiRsOpen();
40
+ private get ffiRsDefine();
40
41
  private static generateFailedMessage;
41
42
  private static loadMangledNameMap;
42
43
  private static MangledNameExtractor;
@@ -47,7 +48,6 @@ export interface Libxdf {
47
48
  export type LibxdfConstructor = new (libxdfPath: string, mangledNameMap: MangledNameMap) => Libxdf;
48
49
  export type LibxdfBindings = Record<string, (path: string[]) => string>;
49
50
  export type LibxdfStatusCode = 0 | Exclude<number, 0>;
50
- export type FfiRsDefineOptions = FuncObj<FieldType, boolean | undefined, boolean | undefined>;
51
51
  export interface XdfFile {
52
52
  path: string;
53
53
  streams: XdfStream[];
@@ -24,18 +24,15 @@ export default class LibxdfAdapter {
24
24
  }
25
25
  tryToLoadBindings() {
26
26
  try {
27
- this.bindings = this.loadBindings();
27
+ this.openLibxdf();
28
+ this.bindings = this.defineBindings();
28
29
  }
29
30
  catch (err) {
30
31
  this.throwFailedToLoadLiblsl(err);
31
32
  }
32
33
  }
33
- loadBindings() {
34
- this.openLibxdf();
35
- return this.defineBindings();
36
- }
37
34
  openLibxdf() {
38
- LibxdfAdapter.ffiRsOpen({
35
+ this.ffiRsOpen({
39
36
  library: 'xdf',
40
37
  path: this.libxdfPath,
41
38
  });
@@ -51,7 +48,7 @@ export default class LibxdfAdapter {
51
48
  };
52
49
  return acc;
53
50
  }, {});
54
- return LibxdfAdapter.ffiRsDefine(funcs);
51
+ return this.ffiRsDefine(funcs);
55
52
  }
56
53
  throwFailedToLoadLiblsl(err) {
57
54
  throw new Error(this.generateFailedMessage(err));
@@ -98,6 +95,12 @@ export default class LibxdfAdapter {
98
95
  get loadXdfName() {
99
96
  return LibxdfAdapter.loadXdfName;
100
97
  }
98
+ get ffiRsOpen() {
99
+ return LibxdfAdapter.ffiRsOpen;
100
+ }
101
+ get ffiRsDefine() {
102
+ return LibxdfAdapter.ffiRsDefine;
103
+ }
101
104
  static generateFailedMessage(libxdfPath) {
102
105
  return `
103
106
  \n -----------------------------------