@neurodevs/ndx-native 2.0.0 → 2.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/.vscode/launch.json +3 -1
- package/.vscode/settings.json +1 -2
- package/.vscode/tasks.json +6 -31
- package/build/__tests__/impl/LibndxAdapter.test.d.ts +5 -8
- package/build/__tests__/impl/LibndxAdapter.test.js +37 -86
- package/build/__tests__/impl/LibndxAdapter.test.js.map +1 -1
- package/build/impl/LibndxAdapter.d.ts +2 -6
- package/build/impl/LibndxAdapter.js +19 -70
- package/build/impl/LibndxAdapter.js.map +1 -1
- package/package.json +8 -17
- package/src/__tests__/impl/LibndxAdapter.test.ts +46 -91
- package/src/impl/LibndxAdapter.ts +44 -74
- package/tsconfig.json +1 -1
- package/.regressionproof.json +0 -7
- package/build/.spruce/settings.json +0 -11
- package/src/.spruce/settings.json +0 -11
package/.vscode/launch.json
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "0.
|
|
2
|
+
"version": "1.0.0",
|
|
3
3
|
"configurations": [
|
|
4
4
|
{
|
|
5
5
|
"type": "node",
|
|
@@ -17,6 +17,7 @@
|
|
|
17
17
|
"runtimeArgs": [
|
|
18
18
|
"--inspect-brk",
|
|
19
19
|
"--trace-warnings",
|
|
20
|
+
"--experimental-vm-modules",
|
|
20
21
|
"${workspaceFolder}/node_modules/.bin/jest",
|
|
21
22
|
"${fileBasenameNoExtension}",
|
|
22
23
|
"--detectOpenHandles"
|
|
@@ -33,6 +34,7 @@
|
|
|
33
34
|
"runtimeArgs": [
|
|
34
35
|
"--inspect-brk",
|
|
35
36
|
"--trace-warnings",
|
|
37
|
+
"--experimental-vm-modules",
|
|
36
38
|
"${workspaceFolder}/node_modules/.bin/jest"
|
|
37
39
|
],
|
|
38
40
|
"cwd": "${workspaceFolder}",
|
package/.vscode/settings.json
CHANGED
package/.vscode/tasks.json
CHANGED
|
@@ -22,16 +22,8 @@
|
|
|
22
22
|
},
|
|
23
23
|
{
|
|
24
24
|
"label": "test.file",
|
|
25
|
-
"
|
|
26
|
-
"
|
|
27
|
-
"test",
|
|
28
|
-
"--inspect",
|
|
29
|
-
"5200",
|
|
30
|
-
"--pattern",
|
|
31
|
-
"${fileBasenameNoExtension}",
|
|
32
|
-
"--watchMode",
|
|
33
|
-
"standard"
|
|
34
|
-
],
|
|
25
|
+
"type": "shell",
|
|
26
|
+
"command": "node node_modules/@neurodevs/node-tdd/build/workspace/testRunner.cli.js --pattern \"${fileBasenameNoExtension}\" --watchMode standard --inspect 5200",
|
|
35
27
|
"promptOnClose": false,
|
|
36
28
|
"group": {
|
|
37
29
|
"kind": "test",
|
|
@@ -45,8 +37,8 @@
|
|
|
45
37
|
},
|
|
46
38
|
{
|
|
47
39
|
"label": "test.reporter",
|
|
48
|
-
"
|
|
49
|
-
"
|
|
40
|
+
"type": "shell",
|
|
41
|
+
"command": "node node_modules/@neurodevs/node-tdd/build/workspace/testRunner.cli.js --watchMode standard",
|
|
50
42
|
"promptOnClose": false,
|
|
51
43
|
"group": "test",
|
|
52
44
|
"runOptions": {
|
|
@@ -56,19 +48,8 @@
|
|
|
56
48
|
"panel": "shared",
|
|
57
49
|
"focus": true,
|
|
58
50
|
"reveal": "always"
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
{
|
|
62
|
-
"label": "spruce",
|
|
63
|
-
"type": "shell",
|
|
64
|
-
"command": "spruce ${input:spruceCommand}",
|
|
65
|
-
"problemMatcher": [],
|
|
66
|
-
"presentation": {
|
|
67
|
-
"reveal": "always",
|
|
68
|
-
"focus": true,
|
|
69
|
-
"panel": "new",
|
|
70
|
-
"clear": false
|
|
71
|
-
}
|
|
51
|
+
},
|
|
52
|
+
"problemMatcher": []
|
|
72
53
|
},
|
|
73
54
|
{
|
|
74
55
|
"label": "shell",
|
|
@@ -96,12 +77,6 @@
|
|
|
96
77
|
}
|
|
97
78
|
],
|
|
98
79
|
"inputs": [
|
|
99
|
-
{
|
|
100
|
-
"id": "spruceCommand",
|
|
101
|
-
"description": "spruce command",
|
|
102
|
-
"default": "create.test",
|
|
103
|
-
"type": "promptString"
|
|
104
|
-
},
|
|
105
80
|
{
|
|
106
81
|
"id": "command",
|
|
107
82
|
"description": "command",
|
|
@@ -1,13 +1,11 @@
|
|
|
1
1
|
import AbstractPackageTest from '../AbstractPackageTest.js';
|
|
2
|
-
import { define } from 'ffi-rs';
|
|
3
2
|
export default class LibndxAdapterTest extends AbstractPackageTest {
|
|
4
|
-
static ffiRsDefine: typeof define;
|
|
5
3
|
private static instance;
|
|
6
4
|
private static libndxPath;
|
|
7
5
|
private static shouldThrowWhenLoadingBindings;
|
|
8
6
|
private static fakeBindings;
|
|
9
|
-
private static
|
|
10
|
-
private static
|
|
7
|
+
private static koffiLoadPath?;
|
|
8
|
+
private static koffiFuncSignatures?;
|
|
11
9
|
private static readonly bleDeviceUuid;
|
|
12
10
|
private static readonly bleCharacteristicUuid;
|
|
13
11
|
private static readonly bleValueToWrite;
|
|
@@ -25,8 +23,8 @@ export default class LibndxAdapterTest extends AbstractPackageTest {
|
|
|
25
23
|
protected static beforeEach(): Promise<void>;
|
|
26
24
|
protected static createsInstance(): Promise<void>;
|
|
27
25
|
protected static throwsWhenBindingsFailToLoad(): Promise<void>;
|
|
28
|
-
protected static
|
|
29
|
-
protected static
|
|
26
|
+
protected static callsKoffiLoadWithLibndxPath(): Promise<void>;
|
|
27
|
+
protected static registersExpectedKoffiFuncSignatures(): Promise<void>;
|
|
30
28
|
protected static getInstanceReturnsASingleton(): Promise<void>;
|
|
31
29
|
protected static canSetInstance(): void;
|
|
32
30
|
protected static createBleBackendCallsBindingWithExpectedArgs(): Promise<void>;
|
|
@@ -62,8 +60,7 @@ export default class LibndxAdapterTest extends AbstractPackageTest {
|
|
|
62
60
|
private static FakeBindings;
|
|
63
61
|
private static resetCallsToFakeBindings;
|
|
64
62
|
private static clearAndFakeFfi;
|
|
65
|
-
private static
|
|
66
|
-
private static fakeFfiRsDefine;
|
|
63
|
+
private static fakeKoffiLoad;
|
|
67
64
|
private static get failedToLoadError();
|
|
68
65
|
private static resetInstance;
|
|
69
66
|
private static LibndxAdapter;
|
|
@@ -7,16 +7,14 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
7
7
|
import { test, assert } from '@neurodevs/node-tdd';
|
|
8
8
|
import LibndxAdapter from '../../impl/LibndxAdapter.js';
|
|
9
9
|
import AbstractPackageTest from '../AbstractPackageTest.js';
|
|
10
|
-
import { DataType, define } from 'ffi-rs';
|
|
11
10
|
import FakeLibndx from '../../testDoubles/Libndx/FakeLibndx.js';
|
|
12
11
|
export default class LibndxAdapterTest extends AbstractPackageTest {
|
|
13
|
-
static ffiRsDefine = define;
|
|
14
12
|
static instance;
|
|
15
13
|
static libndxPath = '/opt/local/lib/libndx.dylib';
|
|
16
14
|
static shouldThrowWhenLoadingBindings;
|
|
17
15
|
static fakeBindings;
|
|
18
|
-
static
|
|
19
|
-
static
|
|
16
|
+
static koffiLoadPath;
|
|
17
|
+
static koffiFuncSignatures;
|
|
20
18
|
static bleDeviceUuid = this.generateId();
|
|
21
19
|
static bleCharacteristicUuid = this.generateId();
|
|
22
20
|
static bleValueToWrite = this.generateId();
|
|
@@ -50,69 +48,22 @@ export default class LibndxAdapterTest extends AbstractPackageTest {
|
|
|
50
48
|
const actual = (err.message ?? err.stack).replace(/\s+/g, '');
|
|
51
49
|
assert.isEqual(actual, this.failedToLoadError, 'Did not receive the expected error!');
|
|
52
50
|
}
|
|
53
|
-
static async
|
|
54
|
-
assert.
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
paramsType: [DataType.String],
|
|
70
|
-
},
|
|
71
|
-
write_ble_characteristic: {
|
|
72
|
-
library: 'ndx',
|
|
73
|
-
retType: DataType.String,
|
|
74
|
-
paramsType: [
|
|
75
|
-
DataType.String,
|
|
76
|
-
DataType.String,
|
|
77
|
-
DataType.String,
|
|
78
|
-
],
|
|
79
|
-
},
|
|
80
|
-
read_ble_rssi: {
|
|
81
|
-
library: 'ndx',
|
|
82
|
-
retType: DataType.String,
|
|
83
|
-
paramsType: [DataType.String],
|
|
84
|
-
},
|
|
85
|
-
stop_ble_backend: {
|
|
86
|
-
library: 'ndx',
|
|
87
|
-
retType: DataType.String,
|
|
88
|
-
paramsType: [DataType.String],
|
|
89
|
-
},
|
|
90
|
-
destroy_ble_backend: {
|
|
91
|
-
library: 'ndx',
|
|
92
|
-
retType: DataType.String,
|
|
93
|
-
paramsType: [DataType.String],
|
|
94
|
-
},
|
|
95
|
-
create_ftdi_backend: {
|
|
96
|
-
library: 'ndx',
|
|
97
|
-
retType: DataType.String,
|
|
98
|
-
paramsType: [DataType.String],
|
|
99
|
-
},
|
|
100
|
-
start_ftdi_backend: {
|
|
101
|
-
library: 'ndx',
|
|
102
|
-
retType: DataType.String,
|
|
103
|
-
paramsType: [DataType.String],
|
|
104
|
-
},
|
|
105
|
-
stop_ftdi_backend: {
|
|
106
|
-
library: 'ndx',
|
|
107
|
-
retType: DataType.String,
|
|
108
|
-
paramsType: [DataType.String],
|
|
109
|
-
},
|
|
110
|
-
destroy_ftdi_backend: {
|
|
111
|
-
library: 'ndx',
|
|
112
|
-
retType: DataType.String,
|
|
113
|
-
paramsType: [DataType.String],
|
|
114
|
-
},
|
|
115
|
-
}, 'Did not pass valid options to ffiRsDefine!');
|
|
51
|
+
static async callsKoffiLoadWithLibndxPath() {
|
|
52
|
+
assert.isEqual(this.koffiLoadPath, this.libndxPath, 'Did not call koffiLoad with the expected library path!');
|
|
53
|
+
}
|
|
54
|
+
static async registersExpectedKoffiFuncSignatures() {
|
|
55
|
+
assert.isEqualDeep(this.koffiFuncSignatures, [
|
|
56
|
+
'str create_ble_backend(str config)',
|
|
57
|
+
'str start_ble_backend(str uuid)',
|
|
58
|
+
'str write_ble_characteristic(str uuid, str charUuid, str value)',
|
|
59
|
+
'str read_ble_rssi(str uuid)',
|
|
60
|
+
'str stop_ble_backend(str uuid)',
|
|
61
|
+
'str destroy_ble_backend(str uuid)',
|
|
62
|
+
'str create_ftdi_backend(str config)',
|
|
63
|
+
'str start_ftdi_backend(str serial)',
|
|
64
|
+
'str stop_ftdi_backend(str serial)',
|
|
65
|
+
'str destroy_ftdi_backend(str serial)',
|
|
66
|
+
], 'Did not register expected koffi func signatures!');
|
|
116
67
|
}
|
|
117
68
|
static async getInstanceReturnsASingleton() {
|
|
118
69
|
assert.isEqual(LibndxAdapter.getInstance(), LibndxAdapter.getInstance());
|
|
@@ -324,25 +275,25 @@ export default class LibndxAdapterTest extends AbstractPackageTest {
|
|
|
324
275
|
this.callsToDestroyFtdi.length = 0;
|
|
325
276
|
}
|
|
326
277
|
static clearAndFakeFfi() {
|
|
327
|
-
delete this.
|
|
328
|
-
|
|
329
|
-
this.
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
278
|
+
delete this.koffiLoadPath;
|
|
279
|
+
this.koffiFuncSignatures = [];
|
|
280
|
+
this.fakeKoffiLoad();
|
|
281
|
+
}
|
|
282
|
+
static fakeKoffiLoad() {
|
|
283
|
+
LibndxAdapter.koffiLoad = (path) => {
|
|
284
|
+
this.koffiLoadPath = path;
|
|
285
|
+
return {
|
|
286
|
+
func: (sig) => {
|
|
287
|
+
this.koffiFuncSignatures.push(sig);
|
|
288
|
+
if (this.shouldThrowWhenLoadingBindings) {
|
|
289
|
+
throw new Error(this.fakeErrorMessage);
|
|
290
|
+
}
|
|
291
|
+
const name = sig.match(/\w+\s+(\w+)\s*\(/)[1];
|
|
292
|
+
return (...args) => this.fakeBindings[name](args);
|
|
293
|
+
},
|
|
294
|
+
};
|
|
335
295
|
};
|
|
336
296
|
}
|
|
337
|
-
static fakeFfiRsDefine() {
|
|
338
|
-
LibndxAdapter.ffiRsDefine = ((options) => {
|
|
339
|
-
this.ffiRsDefineOptions = options;
|
|
340
|
-
if (this.shouldThrowWhenLoadingBindings) {
|
|
341
|
-
throw new Error(this.fakeErrorMessage);
|
|
342
|
-
}
|
|
343
|
-
return this.fakeBindings;
|
|
344
|
-
});
|
|
345
|
-
}
|
|
346
297
|
static get failedToLoadError() {
|
|
347
298
|
return `
|
|
348
299
|
\n -----------------------------------
|
|
@@ -379,10 +330,10 @@ __decorate([
|
|
|
379
330
|
], LibndxAdapterTest, "throwsWhenBindingsFailToLoad", null);
|
|
380
331
|
__decorate([
|
|
381
332
|
test()
|
|
382
|
-
], LibndxAdapterTest, "
|
|
333
|
+
], LibndxAdapterTest, "callsKoffiLoadWithLibndxPath", null);
|
|
383
334
|
__decorate([
|
|
384
335
|
test()
|
|
385
|
-
], LibndxAdapterTest, "
|
|
336
|
+
], LibndxAdapterTest, "registersExpectedKoffiFuncSignatures", null);
|
|
386
337
|
__decorate([
|
|
387
338
|
test()
|
|
388
339
|
], LibndxAdapterTest, "getInstanceReturnsASingleton", null);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LibndxAdapter.test.js","sourceRoot":"","sources":["../../../src/__tests__/impl/LibndxAdapter.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"LibndxAdapter.test.js","sourceRoot":"","sources":["../../../src/__tests__/impl/LibndxAdapter.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,7 @@
|
|
|
1
|
-
import
|
|
1
|
+
import koffi from 'koffi';
|
|
2
2
|
export default class LibndxAdapter implements Libndx {
|
|
3
3
|
static Class?: LibndxConstructor;
|
|
4
|
-
static
|
|
5
|
-
static ffiRsDefine: typeof define;
|
|
4
|
+
static koffiLoad: typeof koffi.load;
|
|
6
5
|
private static instance?;
|
|
7
6
|
private libndxPath;
|
|
8
7
|
private bindings;
|
|
@@ -11,7 +10,6 @@ export default class LibndxAdapter implements Libndx {
|
|
|
11
10
|
static setInstance(instance: Libndx): void;
|
|
12
11
|
static resetInstance(): void;
|
|
13
12
|
private tryToLoadBindings;
|
|
14
|
-
private openLibndx;
|
|
15
13
|
private defineBindings;
|
|
16
14
|
private throwFailedToLoadLibndx;
|
|
17
15
|
createBleBackend(options: BleBackendOptions): string;
|
|
@@ -24,8 +22,6 @@ export default class LibndxAdapter implements Libndx {
|
|
|
24
22
|
startFtdiBackend(options: FtdiBackendOptions): string;
|
|
25
23
|
stopFtdiBackend(options: FtdiBackendOptions): string;
|
|
26
24
|
destroyFtdiBackend(options: FtdiBackendOptions): string;
|
|
27
|
-
private get ffiRsOpen();
|
|
28
|
-
private get ffiRsDefine();
|
|
29
25
|
}
|
|
30
26
|
export interface Libndx {
|
|
31
27
|
createBleBackend(options: BleBackendOptions): string;
|
|
@@ -1,8 +1,7 @@
|
|
|
1
|
-
import
|
|
1
|
+
import koffi from 'koffi';
|
|
2
2
|
export default class LibndxAdapter {
|
|
3
3
|
static Class;
|
|
4
|
-
static
|
|
5
|
-
static ffiRsDefine = define;
|
|
4
|
+
static koffiLoad = koffi.load.bind(koffi);
|
|
6
5
|
static instance;
|
|
7
6
|
libndxPath;
|
|
8
7
|
bindings;
|
|
@@ -25,77 +24,33 @@ export default class LibndxAdapter {
|
|
|
25
24
|
}
|
|
26
25
|
tryToLoadBindings() {
|
|
27
26
|
try {
|
|
28
|
-
this.openLibndx();
|
|
29
27
|
this.defineBindings();
|
|
30
28
|
}
|
|
31
29
|
catch (err) {
|
|
32
30
|
this.throwFailedToLoadLibndx(err);
|
|
33
31
|
}
|
|
34
32
|
}
|
|
35
|
-
openLibndx() {
|
|
36
|
-
this.ffiRsOpen({
|
|
37
|
-
library: 'ndx',
|
|
38
|
-
path: this.libndxPath,
|
|
39
|
-
});
|
|
40
|
-
}
|
|
41
33
|
defineBindings() {
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
},
|
|
58
|
-
read_ble_rssi: {
|
|
59
|
-
library: 'ndx',
|
|
60
|
-
retType: DataType.String,
|
|
61
|
-
paramsType: [DataType.String],
|
|
62
|
-
},
|
|
63
|
-
stop_ble_backend: {
|
|
64
|
-
library: 'ndx',
|
|
65
|
-
retType: DataType.String,
|
|
66
|
-
paramsType: [DataType.String],
|
|
67
|
-
},
|
|
68
|
-
destroy_ble_backend: {
|
|
69
|
-
library: 'ndx',
|
|
70
|
-
retType: DataType.String,
|
|
71
|
-
paramsType: [DataType.String],
|
|
72
|
-
},
|
|
73
|
-
create_ftdi_backend: {
|
|
74
|
-
library: 'ndx',
|
|
75
|
-
retType: DataType.String,
|
|
76
|
-
paramsType: [DataType.String],
|
|
77
|
-
},
|
|
78
|
-
start_ftdi_backend: {
|
|
79
|
-
library: 'ndx',
|
|
80
|
-
retType: DataType.String,
|
|
81
|
-
paramsType: [DataType.String],
|
|
82
|
-
},
|
|
83
|
-
stop_ftdi_backend: {
|
|
84
|
-
library: 'ndx',
|
|
85
|
-
retType: DataType.String,
|
|
86
|
-
paramsType: [DataType.String],
|
|
87
|
-
},
|
|
88
|
-
destroy_ftdi_backend: {
|
|
89
|
-
library: 'ndx',
|
|
90
|
-
retType: DataType.String,
|
|
91
|
-
paramsType: [DataType.String],
|
|
92
|
-
},
|
|
93
|
-
});
|
|
34
|
+
const lib = LibndxAdapter.koffiLoad(this.libndxPath);
|
|
35
|
+
const wrap1 = (f) => (args) => f(args[0]);
|
|
36
|
+
const wrap3 = (f) => (args) => f(args[0], args[1], args[2]);
|
|
37
|
+
this.bindings = {
|
|
38
|
+
create_ble_backend: wrap1(lib.func('str create_ble_backend(str config)')),
|
|
39
|
+
start_ble_backend: wrap1(lib.func('str start_ble_backend(str uuid)')),
|
|
40
|
+
write_ble_characteristic: wrap3(lib.func('str write_ble_characteristic(str uuid, str charUuid, str value)')),
|
|
41
|
+
read_ble_rssi: wrap1(lib.func('str read_ble_rssi(str uuid)')),
|
|
42
|
+
stop_ble_backend: wrap1(lib.func('str stop_ble_backend(str uuid)')),
|
|
43
|
+
destroy_ble_backend: wrap1(lib.func('str destroy_ble_backend(str uuid)')),
|
|
44
|
+
create_ftdi_backend: wrap1(lib.func('str create_ftdi_backend(str config)')),
|
|
45
|
+
start_ftdi_backend: wrap1(lib.func('str start_ftdi_backend(str serial)')),
|
|
46
|
+
stop_ftdi_backend: wrap1(lib.func('str stop_ftdi_backend(str serial)')),
|
|
47
|
+
destroy_ftdi_backend: wrap1(lib.func('str destroy_ftdi_backend(str serial)')),
|
|
48
|
+
};
|
|
94
49
|
}
|
|
95
50
|
throwFailedToLoadLibndx(err) {
|
|
96
51
|
throw new Error(`
|
|
97
52
|
\n -----------------------------------
|
|
98
|
-
\n Failed to load libndx! Tried to load from:
|
|
53
|
+
\n Failed to load libndx! Tried to load from:
|
|
99
54
|
\n ${this.libndxPath}
|
|
100
55
|
\n Instructions to save your day (on MacOS):
|
|
101
56
|
\n 1. git clone https://github.com/neurodevs/libndx.git
|
|
@@ -103,7 +58,7 @@ export default class LibndxAdapter {
|
|
|
103
58
|
\n 3. sudo cp build/libndx.dylib /opt/local/lib/
|
|
104
59
|
\n 4. Try whatever you were doing again!
|
|
105
60
|
\n Modify step 3 for your OS if you are not on MacOS.
|
|
106
|
-
\n If you're still unsure, ask an LLM with this error and your OS.
|
|
61
|
+
\n If you're still unsure, ask an LLM with this error and your OS.
|
|
107
62
|
\n You could also post an issue on the repo:
|
|
108
63
|
\n https://github.com/neurodevs/ndx-native/issues
|
|
109
64
|
\n Good luck!
|
|
@@ -159,11 +114,5 @@ export default class LibndxAdapter {
|
|
|
159
114
|
const { serialNumber } = options;
|
|
160
115
|
return this.bindings.destroy_ftdi_backend([serialNumber]);
|
|
161
116
|
}
|
|
162
|
-
get ffiRsOpen() {
|
|
163
|
-
return LibndxAdapter.ffiRsOpen;
|
|
164
|
-
}
|
|
165
|
-
get ffiRsDefine() {
|
|
166
|
-
return LibndxAdapter.ffiRsDefine;
|
|
167
|
-
}
|
|
168
117
|
}
|
|
169
118
|
//# sourceMappingURL=LibndxAdapter.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LibndxAdapter.js","sourceRoot":"","sources":["../../src/impl/LibndxAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"LibndxAdapter.js","sourceRoot":"","sources":["../../src/impl/LibndxAdapter.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@neurodevs/ndx-native",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.1",
|
|
4
4
|
"description": "Native Node.js adapters for LSL, XDF, and LabRecorder",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"keywords": [
|
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
"main": "build/index.js",
|
|
22
22
|
"scripts": {
|
|
23
23
|
"build.ci": "yarn run build.tsc && yarn run lint",
|
|
24
|
-
"build.dev": "yarn run build.tsc --sourceMap ; yarn run fix.lint ; prettier --write .",
|
|
24
|
+
"build.dev": "yarn run build.tsc --sourceMap ; yarn run fix.lint ; prettier --write . --log-level warn",
|
|
25
25
|
"build.copy-files": "mkdir -p build && rsync -avzq --exclude='*.ts' ./src/ ./build/",
|
|
26
26
|
"build.tsc": "yarn run build.copy-files && tsc",
|
|
27
27
|
"clean": "yarn run clean.build",
|
|
@@ -37,32 +37,23 @@
|
|
|
37
37
|
},
|
|
38
38
|
"dependencies": {
|
|
39
39
|
"@neurodevs/node-mangled-names": "^1.0.1",
|
|
40
|
-
"ffi-rs": "^1.3.
|
|
40
|
+
"ffi-rs": "^1.3.2",
|
|
41
|
+
"koffi": "^3.0.1"
|
|
41
42
|
},
|
|
42
43
|
"devDependencies": {
|
|
43
44
|
"@neurodevs/eslint-config-ndx": "^1.0.1",
|
|
44
45
|
"@neurodevs/generate-id": "^1.1.2",
|
|
45
|
-
"@neurodevs/node-tdd": "^
|
|
46
|
+
"@neurodevs/node-tdd": "^1.1.2",
|
|
46
47
|
"@neurodevs/prettier-config-ndx": "^1.0.2",
|
|
47
|
-
"@regressionproof/cli": "^0.9.4",
|
|
48
|
-
"@regressionproof/jest-reporter": "^0.9.4",
|
|
49
|
-
"jest": "^30.2.0",
|
|
50
|
-
"jest-circus": "^30.2.0",
|
|
51
|
-
"prettier": "^3.8.1",
|
|
52
|
-
"tsc-watch": "^7.2.0",
|
|
53
48
|
"typescript": "^5.9.3"
|
|
54
49
|
},
|
|
55
50
|
"jest": {
|
|
56
|
-
"testRunner": "jest-circus/runner",
|
|
57
|
-
"maxWorkers": 4,
|
|
58
|
-
"testTimeout": 5000,
|
|
59
51
|
"testEnvironment": "node",
|
|
52
|
+
"testRunner": "jest-circus/runner",
|
|
60
53
|
"testMatch": [
|
|
61
54
|
"<rootDir>/build/__tests__/**/*.test.js?(x)"
|
|
62
55
|
],
|
|
63
|
-
"
|
|
64
|
-
|
|
65
|
-
"@regressionproof/jest-reporter"
|
|
66
|
-
]
|
|
56
|
+
"testTimeout": 5000,
|
|
57
|
+
"maxWorkers": 4
|
|
67
58
|
}
|
|
68
59
|
}
|
|
@@ -5,20 +5,16 @@ import LibndxAdapter, {
|
|
|
5
5
|
LibndxBindings,
|
|
6
6
|
} from '../../impl/LibndxAdapter.js'
|
|
7
7
|
import AbstractPackageTest from '../AbstractPackageTest.js'
|
|
8
|
-
import { DataType, define, OpenParams } from 'ffi-rs'
|
|
9
|
-
import { FfiRsDefineOptions } from '../../types.js'
|
|
10
8
|
import FakeLibndx from '../../testDoubles/Libndx/FakeLibndx.js'
|
|
11
9
|
|
|
12
10
|
export default class LibndxAdapterTest extends AbstractPackageTest {
|
|
13
|
-
public static ffiRsDefine = define
|
|
14
|
-
|
|
15
11
|
private static instance: Libndx
|
|
16
12
|
private static libndxPath = '/opt/local/lib/libndx.dylib'
|
|
17
13
|
private static shouldThrowWhenLoadingBindings: boolean
|
|
18
14
|
private static fakeBindings: LibndxBindings
|
|
19
15
|
|
|
20
|
-
private static
|
|
21
|
-
private static
|
|
16
|
+
private static koffiLoadPath?: string
|
|
17
|
+
private static koffiFuncSignatures?: string[]
|
|
22
18
|
|
|
23
19
|
private static readonly bleDeviceUuid = this.generateId()
|
|
24
20
|
private static readonly bleCharacteristicUuid = this.generateId()
|
|
@@ -70,74 +66,31 @@ export default class LibndxAdapterTest extends AbstractPackageTest {
|
|
|
70
66
|
}
|
|
71
67
|
|
|
72
68
|
@test()
|
|
73
|
-
protected static async
|
|
74
|
-
assert.
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
69
|
+
protected static async callsKoffiLoadWithLibndxPath() {
|
|
70
|
+
assert.isEqual(
|
|
71
|
+
this.koffiLoadPath,
|
|
72
|
+
this.libndxPath,
|
|
73
|
+
'Did not call koffiLoad with the expected library path!'
|
|
74
|
+
)
|
|
78
75
|
}
|
|
79
76
|
|
|
80
77
|
@test()
|
|
81
|
-
protected static async
|
|
78
|
+
protected static async registersExpectedKoffiFuncSignatures() {
|
|
82
79
|
assert.isEqualDeep(
|
|
83
|
-
this.
|
|
84
|
-
|
|
85
|
-
create_ble_backend
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
retType: DataType.String,
|
|
98
|
-
paramsType: [
|
|
99
|
-
DataType.String,
|
|
100
|
-
DataType.String,
|
|
101
|
-
DataType.String,
|
|
102
|
-
],
|
|
103
|
-
},
|
|
104
|
-
read_ble_rssi: {
|
|
105
|
-
library: 'ndx',
|
|
106
|
-
retType: DataType.String,
|
|
107
|
-
paramsType: [DataType.String],
|
|
108
|
-
},
|
|
109
|
-
stop_ble_backend: {
|
|
110
|
-
library: 'ndx',
|
|
111
|
-
retType: DataType.String,
|
|
112
|
-
paramsType: [DataType.String],
|
|
113
|
-
},
|
|
114
|
-
destroy_ble_backend: {
|
|
115
|
-
library: 'ndx',
|
|
116
|
-
retType: DataType.String,
|
|
117
|
-
paramsType: [DataType.String],
|
|
118
|
-
},
|
|
119
|
-
create_ftdi_backend: {
|
|
120
|
-
library: 'ndx',
|
|
121
|
-
retType: DataType.String,
|
|
122
|
-
paramsType: [DataType.String],
|
|
123
|
-
},
|
|
124
|
-
start_ftdi_backend: {
|
|
125
|
-
library: 'ndx',
|
|
126
|
-
retType: DataType.String,
|
|
127
|
-
paramsType: [DataType.String],
|
|
128
|
-
},
|
|
129
|
-
stop_ftdi_backend: {
|
|
130
|
-
library: 'ndx',
|
|
131
|
-
retType: DataType.String,
|
|
132
|
-
paramsType: [DataType.String],
|
|
133
|
-
},
|
|
134
|
-
destroy_ftdi_backend: {
|
|
135
|
-
library: 'ndx',
|
|
136
|
-
retType: DataType.String,
|
|
137
|
-
paramsType: [DataType.String],
|
|
138
|
-
},
|
|
139
|
-
},
|
|
140
|
-
'Did not pass valid options to ffiRsDefine!'
|
|
80
|
+
this.koffiFuncSignatures,
|
|
81
|
+
[
|
|
82
|
+
'str create_ble_backend(str config)',
|
|
83
|
+
'str start_ble_backend(str uuid)',
|
|
84
|
+
'str write_ble_characteristic(str uuid, str charUuid, str value)',
|
|
85
|
+
'str read_ble_rssi(str uuid)',
|
|
86
|
+
'str stop_ble_backend(str uuid)',
|
|
87
|
+
'str destroy_ble_backend(str uuid)',
|
|
88
|
+
'str create_ftdi_backend(str config)',
|
|
89
|
+
'str start_ftdi_backend(str serial)',
|
|
90
|
+
'str stop_ftdi_backend(str serial)',
|
|
91
|
+
'str destroy_ftdi_backend(str serial)',
|
|
92
|
+
],
|
|
93
|
+
'Did not register expected koffi func signatures!'
|
|
141
94
|
)
|
|
142
95
|
}
|
|
143
96
|
|
|
@@ -473,30 +426,32 @@ export default class LibndxAdapterTest extends AbstractPackageTest {
|
|
|
473
426
|
}
|
|
474
427
|
|
|
475
428
|
private static clearAndFakeFfi() {
|
|
476
|
-
delete this.
|
|
477
|
-
|
|
478
|
-
this.
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
429
|
+
delete this.koffiLoadPath
|
|
430
|
+
this.koffiFuncSignatures = []
|
|
431
|
+
this.fakeKoffiLoad()
|
|
432
|
+
}
|
|
433
|
+
|
|
434
|
+
private static fakeKoffiLoad() {
|
|
435
|
+
LibndxAdapter.koffiLoad = (path) => {
|
|
436
|
+
this.koffiLoadPath = path as string
|
|
437
|
+
return {
|
|
438
|
+
func: (sig: string) => {
|
|
439
|
+
this.koffiFuncSignatures!.push(sig)
|
|
440
|
+
|
|
441
|
+
if (this.shouldThrowWhenLoadingBindings) {
|
|
442
|
+
throw new Error(this.fakeErrorMessage)
|
|
443
|
+
}
|
|
444
|
+
|
|
445
|
+
const name = sig.match(
|
|
446
|
+
/\w+\s+(\w+)\s*\(/
|
|
447
|
+
)![1] as keyof LibndxBindings
|
|
448
|
+
return (...args: string[]) =>
|
|
449
|
+
this.fakeBindings[name](args as any)
|
|
450
|
+
},
|
|
451
|
+
} as any
|
|
485
452
|
}
|
|
486
453
|
}
|
|
487
454
|
|
|
488
|
-
private static fakeFfiRsDefine() {
|
|
489
|
-
LibndxAdapter.ffiRsDefine = ((options) => {
|
|
490
|
-
this.ffiRsDefineOptions = options
|
|
491
|
-
|
|
492
|
-
if (this.shouldThrowWhenLoadingBindings) {
|
|
493
|
-
throw new Error(this.fakeErrorMessage)
|
|
494
|
-
}
|
|
495
|
-
|
|
496
|
-
return this.fakeBindings as any
|
|
497
|
-
}) as typeof define
|
|
498
|
-
}
|
|
499
|
-
|
|
500
455
|
private static get failedToLoadError() {
|
|
501
456
|
return `
|
|
502
457
|
\n -----------------------------------
|
|
@@ -1,9 +1,8 @@
|
|
|
1
|
-
import
|
|
1
|
+
import koffi from 'koffi'
|
|
2
2
|
|
|
3
3
|
export default class LibndxAdapter implements Libndx {
|
|
4
4
|
public static Class?: LibndxConstructor
|
|
5
|
-
public static
|
|
6
|
-
public static ffiRsDefine = define
|
|
5
|
+
public static koffiLoad: typeof koffi.load = koffi.load.bind(koffi)
|
|
7
6
|
|
|
8
7
|
private static instance?: Libndx
|
|
9
8
|
|
|
@@ -35,80 +34,60 @@ export default class LibndxAdapter implements Libndx {
|
|
|
35
34
|
|
|
36
35
|
private tryToLoadBindings() {
|
|
37
36
|
try {
|
|
38
|
-
this.openLibndx()
|
|
39
37
|
this.defineBindings()
|
|
40
38
|
} catch (err: unknown) {
|
|
41
39
|
this.throwFailedToLoadLibndx(err as Error)
|
|
42
40
|
}
|
|
43
41
|
}
|
|
44
42
|
|
|
45
|
-
private openLibndx() {
|
|
46
|
-
this.ffiRsOpen({
|
|
47
|
-
library: 'ndx',
|
|
48
|
-
path: this.libndxPath,
|
|
49
|
-
})
|
|
50
|
-
}
|
|
51
|
-
|
|
52
43
|
private defineBindings() {
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
},
|
|
94
|
-
stop_ftdi_backend: {
|
|
95
|
-
library: 'ndx',
|
|
96
|
-
retType: DataType.String,
|
|
97
|
-
paramsType: [DataType.String],
|
|
98
|
-
},
|
|
99
|
-
destroy_ftdi_backend: {
|
|
100
|
-
library: 'ndx',
|
|
101
|
-
retType: DataType.String,
|
|
102
|
-
paramsType: [DataType.String],
|
|
103
|
-
},
|
|
104
|
-
}) as LibndxBindings
|
|
44
|
+
const lib = LibndxAdapter.koffiLoad(this.libndxPath)
|
|
45
|
+
|
|
46
|
+
const wrap1 = (f: (a: string) => string) => (args: [string]) =>
|
|
47
|
+
f(args[0])
|
|
48
|
+
|
|
49
|
+
const wrap3 =
|
|
50
|
+
(f: (a: string, b: string, c: string) => string) =>
|
|
51
|
+
(args: [string, string, string]) =>
|
|
52
|
+
f(args[0], args[1], args[2])
|
|
53
|
+
|
|
54
|
+
this.bindings = {
|
|
55
|
+
create_ble_backend: wrap1(
|
|
56
|
+
lib.func('str create_ble_backend(str config)')
|
|
57
|
+
),
|
|
58
|
+
start_ble_backend: wrap1(
|
|
59
|
+
lib.func('str start_ble_backend(str uuid)')
|
|
60
|
+
),
|
|
61
|
+
write_ble_characteristic: wrap3(
|
|
62
|
+
lib.func(
|
|
63
|
+
'str write_ble_characteristic(str uuid, str charUuid, str value)'
|
|
64
|
+
)
|
|
65
|
+
),
|
|
66
|
+
read_ble_rssi: wrap1(lib.func('str read_ble_rssi(str uuid)')),
|
|
67
|
+
stop_ble_backend: wrap1(lib.func('str stop_ble_backend(str uuid)')),
|
|
68
|
+
destroy_ble_backend: wrap1(
|
|
69
|
+
lib.func('str destroy_ble_backend(str uuid)')
|
|
70
|
+
),
|
|
71
|
+
create_ftdi_backend: wrap1(
|
|
72
|
+
lib.func('str create_ftdi_backend(str config)')
|
|
73
|
+
),
|
|
74
|
+
start_ftdi_backend: wrap1(
|
|
75
|
+
lib.func('str start_ftdi_backend(str serial)')
|
|
76
|
+
),
|
|
77
|
+
stop_ftdi_backend: wrap1(
|
|
78
|
+
lib.func('str stop_ftdi_backend(str serial)')
|
|
79
|
+
),
|
|
80
|
+
destroy_ftdi_backend: wrap1(
|
|
81
|
+
lib.func('str destroy_ftdi_backend(str serial)')
|
|
82
|
+
),
|
|
83
|
+
}
|
|
105
84
|
}
|
|
106
85
|
|
|
107
86
|
private throwFailedToLoadLibndx(err: Error) {
|
|
108
87
|
throw new Error(
|
|
109
88
|
`
|
|
110
89
|
\n -----------------------------------
|
|
111
|
-
\n Failed to load libndx! Tried to load from:
|
|
90
|
+
\n Failed to load libndx! Tried to load from:
|
|
112
91
|
\n ${this.libndxPath}
|
|
113
92
|
\n Instructions to save your day (on MacOS):
|
|
114
93
|
\n 1. git clone https://github.com/neurodevs/libndx.git
|
|
@@ -116,7 +95,7 @@ export default class LibndxAdapter implements Libndx {
|
|
|
116
95
|
\n 3. sudo cp build/libndx.dylib /opt/local/lib/
|
|
117
96
|
\n 4. Try whatever you were doing again!
|
|
118
97
|
\n Modify step 3 for your OS if you are not on MacOS.
|
|
119
|
-
\n If you're still unsure, ask an LLM with this error and your OS.
|
|
98
|
+
\n If you're still unsure, ask an LLM with this error and your OS.
|
|
120
99
|
\n You could also post an issue on the repo:
|
|
121
100
|
\n https://github.com/neurodevs/ndx-native/issues
|
|
122
101
|
\n Good luck!
|
|
@@ -141,7 +120,6 @@ export default class LibndxAdapter implements Libndx {
|
|
|
141
120
|
|
|
142
121
|
public writeBleCharacteristic(options: BleWriteOptions) {
|
|
143
122
|
const { deviceUuid, characteristicUuid, value } = options
|
|
144
|
-
|
|
145
123
|
return this.bindings.write_ble_characteristic([
|
|
146
124
|
deviceUuid,
|
|
147
125
|
characteristicUuid,
|
|
@@ -184,14 +162,6 @@ export default class LibndxAdapter implements Libndx {
|
|
|
184
162
|
const { serialNumber } = options
|
|
185
163
|
return this.bindings.destroy_ftdi_backend([serialNumber])
|
|
186
164
|
}
|
|
187
|
-
|
|
188
|
-
private get ffiRsOpen() {
|
|
189
|
-
return LibndxAdapter.ffiRsOpen
|
|
190
|
-
}
|
|
191
|
-
|
|
192
|
-
private get ffiRsDefine() {
|
|
193
|
-
return LibndxAdapter.ffiRsDefine
|
|
194
|
-
}
|
|
195
165
|
}
|
|
196
166
|
|
|
197
167
|
export interface Libndx {
|
package/tsconfig.json
CHANGED
package/.regressionproof.json
DELETED