@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.
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "0.2.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}",
@@ -56,8 +56,7 @@
56
56
  "**/build/**",
57
57
  "**/vscode-extension/**",
58
58
  "**/.git/objects/**",
59
- ".vscode",
60
- ".spruce"
59
+ ".vscode"
61
60
  ],
62
61
  "cSpell.words": ["arkit", "autogenerated", "scrollable", "serializable"]
63
62
  }
@@ -22,16 +22,8 @@
22
22
  },
23
23
  {
24
24
  "label": "test.file",
25
- "command": "spruce",
26
- "args": [
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
- "command": "spruce",
49
- "args": ["test", "--shouldHoldAtStart", "true", "--watchMode", "smart"],
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 ffiRsOpenOptions?;
10
- private static ffiRsDefineOptions?;
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 callsFfiRsOpenWithRequiredOptions(): Promise<void>;
29
- protected static callsFfiRsDefineWithRequiredOptions(): Promise<void>;
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 fakeFfiRsOpen;
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 ffiRsOpenOptions;
19
- static ffiRsDefineOptions;
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 callsFfiRsOpenWithRequiredOptions() {
54
- assert.isEqualDeep(this.ffiRsOpenOptions, {
55
- library: 'ndx',
56
- path: this.libndxPath,
57
- });
58
- }
59
- static async callsFfiRsDefineWithRequiredOptions() {
60
- assert.isEqualDeep(this.ffiRsDefineOptions, {
61
- create_ble_backend: {
62
- library: 'ndx',
63
- retType: DataType.String,
64
- paramsType: [DataType.String],
65
- },
66
- start_ble_backend: {
67
- library: 'ndx',
68
- retType: DataType.String,
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.ffiRsOpenOptions;
328
- delete this.ffiRsDefineOptions;
329
- this.fakeFfiRsOpen();
330
- this.fakeFfiRsDefine();
331
- }
332
- static fakeFfiRsOpen() {
333
- LibndxAdapter.ffiRsOpen = (options) => {
334
- this.ffiRsOpenOptions = options;
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, "callsFfiRsOpenWithRequiredOptions", null);
333
+ ], LibndxAdapterTest, "callsKoffiLoadWithLibndxPath", null);
383
334
  __decorate([
384
335
  test()
385
- ], LibndxAdapterTest, "callsFfiRsDefineWithRequiredOptions", null);
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 { define, open } from 'ffi-rs';
1
+ import koffi from 'koffi';
2
2
  export default class LibndxAdapter implements Libndx {
3
3
  static Class?: LibndxConstructor;
4
- static ffiRsOpen: typeof open;
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 { DataType, define, open } from 'ffi-rs';
1
+ import koffi from 'koffi';
2
2
  export default class LibndxAdapter {
3
3
  static Class;
4
- static ffiRsOpen = open;
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
- 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
- write_ble_characteristic: {
54
- library: 'ndx',
55
- retType: DataType.String,
56
- paramsType: [DataType.String, DataType.String, DataType.String],
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":"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"}
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.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.1"
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": "^0.2.5",
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
- "reporters": [
64
- "default",
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 ffiRsOpenOptions?: OpenParams
21
- private static ffiRsDefineOptions?: FfiRsDefineOptions
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 callsFfiRsOpenWithRequiredOptions() {
74
- assert.isEqualDeep(this.ffiRsOpenOptions, {
75
- library: 'ndx',
76
- path: this.libndxPath,
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 callsFfiRsDefineWithRequiredOptions() {
78
+ protected static async registersExpectedKoffiFuncSignatures() {
82
79
  assert.isEqualDeep(
83
- this.ffiRsDefineOptions,
84
- {
85
- create_ble_backend: {
86
- library: 'ndx',
87
- retType: DataType.String,
88
- paramsType: [DataType.String],
89
- },
90
- start_ble_backend: {
91
- library: 'ndx',
92
- retType: DataType.String,
93
- paramsType: [DataType.String],
94
- },
95
- write_ble_characteristic: {
96
- library: 'ndx',
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.ffiRsOpenOptions
477
- delete this.ffiRsDefineOptions
478
- this.fakeFfiRsOpen()
479
- this.fakeFfiRsDefine()
480
- }
481
-
482
- private static fakeFfiRsOpen() {
483
- LibndxAdapter.ffiRsOpen = (options) => {
484
- this.ffiRsOpenOptions = options
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 { DataType, define, open } from 'ffi-rs'
1
+ import koffi from 'koffi'
2
2
 
3
3
  export default class LibndxAdapter implements Libndx {
4
4
  public static Class?: LibndxConstructor
5
- public static ffiRsOpen = open
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
- this.bindings = this.ffiRsDefine({
54
- create_ble_backend: {
55
- library: 'ndx',
56
- retType: DataType.String,
57
- paramsType: [DataType.String],
58
- },
59
- start_ble_backend: {
60
- library: 'ndx',
61
- retType: DataType.String,
62
- paramsType: [DataType.String],
63
- },
64
- write_ble_characteristic: {
65
- library: 'ndx',
66
- retType: DataType.String,
67
- paramsType: [DataType.String, DataType.String, DataType.String],
68
- },
69
- read_ble_rssi: {
70
- library: 'ndx',
71
- retType: DataType.String,
72
- paramsType: [DataType.String],
73
- },
74
- stop_ble_backend: {
75
- library: 'ndx',
76
- retType: DataType.String,
77
- paramsType: [DataType.String],
78
- },
79
- destroy_ble_backend: {
80
- library: 'ndx',
81
- retType: DataType.String,
82
- paramsType: [DataType.String],
83
- },
84
- create_ftdi_backend: {
85
- library: 'ndx',
86
- retType: DataType.String,
87
- paramsType: [DataType.String],
88
- },
89
- start_ftdi_backend: {
90
- library: 'ndx',
91
- retType: DataType.String,
92
- paramsType: [DataType.String],
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
@@ -20,5 +20,5 @@
20
20
  "resolveJsonModule": true,
21
21
  "experimentalDecorators": true
22
22
  },
23
- "include": ["src/*.ts", "src/**/*.ts", "./src/*.ts", "./src/**/*.ts"]
23
+ "include": ["./src/*.ts", "./src/**/*.ts", "src/*.ts", "src/**/*.ts"]
24
24
  }
@@ -1,7 +0,0 @@
1
- {
2
- "version": "0.9.4",
3
- "projectName": "ndx-native",
4
- "remote": {
5
- "url": "https://git.regressionproof.ai/liquidg3/ndx-native.git"
6
- }
7
- }
@@ -1,11 +0,0 @@
1
- {
2
- "scriptUpdater": {
3
- "skipped": []
4
- },
5
- "skipped": ["skill"],
6
- "installed": ["test"],
7
- "regressionproof": {
8
- "enabled": true,
9
- "projectName": "ndx-native"
10
- }
11
- }
@@ -1,11 +0,0 @@
1
- {
2
- "scriptUpdater": {
3
- "skipped": []
4
- },
5
- "skipped": ["skill"],
6
- "installed": ["test"],
7
- "regressionproof": {
8
- "enabled": true,
9
- "projectName": "ndx-native"
10
- }
11
- }