@neurodevs/node-lsl 18.0.0 → 19.0.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 (124) hide show
  1. package/.vscode/launch.json +54 -58
  2. package/.vscode/settings.json +61 -66
  3. package/.vscode/tasks.json +98 -129
  4. package/README.md +14 -12
  5. package/build/__tests__/AbstractPackageTest.d.ts +16 -12
  6. package/build/__tests__/AbstractPackageTest.js +48 -20
  7. package/build/__tests__/AbstractPackageTest.js.map +1 -1
  8. package/build/__tests__/impl/BleDeviceController.test.d.ts +59 -0
  9. package/build/__tests__/impl/BleDeviceController.test.js +364 -0
  10. package/build/__tests__/impl/BleDeviceController.test.js.map +1 -0
  11. package/build/__tests__/impl/LslEventMarkerEmitter.test.js +1 -1
  12. package/build/__tests__/impl/LslEventMarkerEmitter.test.js.map +1 -1
  13. package/build/__tests__/impl/LslStreamInlet.test.js +2 -2
  14. package/build/__tests__/impl/LslStreamInlet.test.js.map +1 -1
  15. package/build/__tests__/impl/LslStreamOutlet.test.js +11 -13
  16. package/build/__tests__/impl/LslStreamOutlet.test.js.map +1 -1
  17. package/build/__tests__/impl/LslWebSocketBridge.test.js +3 -3
  18. package/build/__tests__/impl/LslWebSocketBridge.test.js.map +1 -1
  19. package/build/__tests__/impl/UsbDeviceController.test.d.ts +17 -0
  20. package/build/__tests__/impl/UsbDeviceController.test.js +81 -0
  21. package/build/__tests__/impl/UsbDeviceController.test.js.map +1 -0
  22. package/build/__tests__/impl/WindowedClockRegressor.test.d.ts +19 -0
  23. package/build/__tests__/impl/WindowedClockRegressor.test.js +172 -0
  24. package/build/__tests__/impl/WindowedClockRegressor.test.js.map +1 -0
  25. package/build/impl/LslStreamInlet.d.ts +1 -0
  26. package/build/impl/LslStreamInlet.js +2 -1
  27. package/build/impl/LslStreamInlet.js.map +1 -1
  28. package/build/impl/LslStreamOutlet.d.ts +3 -2
  29. package/build/impl/LslStreamOutlet.js +4 -3
  30. package/build/impl/LslStreamOutlet.js.map +1 -1
  31. package/build/impl/LslWebSocketBridge.js +2 -2
  32. package/build/impl/LslWebSocketBridge.js.map +1 -1
  33. package/build/impl/WindowedClockRegressor.d.ts +24 -0
  34. package/build/impl/WindowedClockRegressor.js +73 -0
  35. package/build/impl/WindowedClockRegressor.js.map +1 -0
  36. package/build/impl/controllers/BleDeviceController.d.ts +60 -0
  37. package/build/impl/controllers/BleDeviceController.js +153 -0
  38. package/build/impl/controllers/BleDeviceController.js.map +1 -0
  39. package/build/impl/controllers/UsbDeviceController.d.ts +23 -0
  40. package/build/impl/controllers/UsbDeviceController.js +40 -0
  41. package/build/impl/controllers/UsbDeviceController.js.map +1 -0
  42. package/build/impl/workers/inlet/StreamInletWorker.d.ts +4 -4
  43. package/build/impl/workers/inlet/StreamInletWorker.js +12 -12
  44. package/build/impl/workers/inlet/StreamInletWorker.js.map +1 -1
  45. package/build/impl/workers/outlet/LslStreamOutlet.worker.d.ts +3 -3
  46. package/build/impl/workers/outlet/LslStreamOutlet.worker.js +7 -7
  47. package/build/impl/workers/outlet/LslStreamOutlet.worker.js.map +1 -1
  48. package/build/index.d.ts +14 -4
  49. package/build/index.js +17 -5
  50. package/build/index.js.map +1 -1
  51. package/build/scripts/discoverMuse.d.ts +1 -0
  52. package/build/scripts/discoverMuse.js +40 -0
  53. package/build/scripts/discoverMuse.js.map +1 -0
  54. package/build/scripts/runMuse.d.ts +1 -0
  55. package/build/scripts/runMuse.js +40 -0
  56. package/build/scripts/runMuse.js.map +1 -0
  57. package/build/scripts/runUsb.d.ts +1 -0
  58. package/build/scripts/runUsb.js +14 -0
  59. package/build/scripts/runUsb.js.map +1 -0
  60. package/build/testDoubles/BleController/FakeBleController.d.ts +26 -0
  61. package/build/testDoubles/BleController/FakeBleController.js +47 -0
  62. package/build/testDoubles/BleController/FakeBleController.js.map +1 -0
  63. package/build/testDoubles/BleController/SpyBleController.d.ts +14 -0
  64. package/build/testDoubles/BleController/SpyBleController.js +48 -0
  65. package/build/testDoubles/BleController/SpyBleController.js.map +1 -0
  66. package/build/testDoubles/ClockRegressor/FakeClockRegressor.d.ts +17 -0
  67. package/build/testDoubles/ClockRegressor/FakeClockRegressor.js +23 -0
  68. package/build/testDoubles/ClockRegressor/FakeClockRegressor.js.map +1 -0
  69. package/build/testDoubles/StreamOutlet/FakeStreamOutlet.d.ts +2 -2
  70. package/build/testDoubles/StreamOutlet/FakeStreamOutlet.js +5 -2
  71. package/build/testDoubles/StreamOutlet/FakeStreamOutlet.js.map +1 -1
  72. package/build/testDoubles/UsbController/FakeUsbController.d.ts +12 -0
  73. package/build/testDoubles/UsbController/FakeUsbController.js +25 -0
  74. package/build/testDoubles/UsbController/FakeUsbController.js.map +1 -0
  75. package/build/testDoubles/WebSocketBridge/FakeWebSocketBridge.js.map +1 -1
  76. package/build/testDoubles/generateRandomOutletOptions.js +1 -1
  77. package/build/testDoubles/generateRandomOutletOptions.js.map +1 -1
  78. package/eslint.config.js +3 -0
  79. package/package.json +19 -57
  80. package/prettier.config.js +3 -0
  81. package/src/__tests__/AbstractPackageTest.ts +86 -29
  82. package/src/__tests__/impl/BleDeviceController.test.ts +535 -0
  83. package/src/__tests__/impl/LslEventMarkerEmitter.test.ts +2 -1
  84. package/src/__tests__/impl/LslStreamInlet.test.ts +2 -2
  85. package/src/__tests__/impl/LslStreamOutlet.test.ts +15 -14
  86. package/src/__tests__/impl/LslWebSocketBridge.test.ts +4 -3
  87. package/src/__tests__/impl/UsbDeviceController.test.ts +109 -0
  88. package/src/__tests__/impl/WindowedClockRegressor.test.ts +262 -0
  89. package/src/impl/LslStreamInlet.ts +4 -1
  90. package/src/impl/LslStreamOutlet.ts +5 -4
  91. package/src/impl/LslWebSocketBridge.ts +2 -2
  92. package/src/impl/WindowedClockRegressor.ts +136 -0
  93. package/src/impl/controllers/BleDeviceController.ts +240 -0
  94. package/src/impl/controllers/UsbDeviceController.ts +65 -0
  95. package/src/impl/workers/inlet/StreamInletWorker.ts +12 -12
  96. package/src/impl/workers/outlet/LslStreamOutlet.worker.ts +8 -8
  97. package/src/index.ts +24 -5
  98. package/src/scripts/discoverMuse.ts +50 -0
  99. package/src/scripts/runMuse.ts +50 -0
  100. package/src/scripts/runUsb.ts +20 -0
  101. package/src/testDoubles/BleController/FakeBleController.ts +81 -0
  102. package/src/testDoubles/BleController/SpyBleController.ts +61 -0
  103. package/src/testDoubles/ClockRegressor/FakeClockRegressor.ts +46 -0
  104. package/src/testDoubles/StreamOutlet/FakeStreamOutlet.ts +6 -3
  105. package/src/testDoubles/UsbController/FakeUsbController.ts +34 -0
  106. package/src/testDoubles/WebSocketBridge/FakeWebSocketBridge.ts +1 -2
  107. package/src/testDoubles/generateRandomOutletOptions.ts +2 -1
  108. package/tsconfig.json +23 -27
  109. package/.regressionproof.json +0 -7
  110. package/build/.spruce/settings.json +0 -15
  111. package/build/__tests__/impl/LslBackpressureMonitor.test.d.ts +0 -7
  112. package/build/__tests__/impl/LslBackpressureMonitor.test.js +0 -26
  113. package/build/__tests__/impl/LslBackpressureMonitor.test.js.map +0 -1
  114. package/build/impl/LslBackpressureMonitor.d.ts +0 -8
  115. package/build/impl/LslBackpressureMonitor.js +0 -8
  116. package/build/impl/LslBackpressureMonitor.js.map +0 -1
  117. package/build/testDoubles/BackpressureMonitor/FakeBackpressureMonitor.d.ts +0 -6
  118. package/build/testDoubles/BackpressureMonitor/FakeBackpressureMonitor.js +0 -10
  119. package/build/testDoubles/BackpressureMonitor/FakeBackpressureMonitor.js.map +0 -1
  120. package/eslint.config.mjs +0 -3
  121. package/src/.spruce/settings.json +0 -15
  122. package/src/__tests__/impl/LslBackpressureMonitor.test.ts +0 -25
  123. package/src/impl/LslBackpressureMonitor.ts +0 -13
  124. package/src/testDoubles/BackpressureMonitor/FakeBackpressureMonitor.ts +0 -13
@@ -0,0 +1,61 @@
1
+ import BleDeviceController, {
2
+ BleControllerOptions,
3
+ } from '../../impl/controllers/BleDeviceController.js'
4
+
5
+ export default class SpyBleController extends BleDeviceController {
6
+ public infoLogs: string[] = []
7
+ public warnLogs: string[] = []
8
+ public errorLogs: string[] = []
9
+
10
+ public constructor(options: BleControllerOptions) {
11
+ super(options)
12
+ }
13
+
14
+ public getCharacteristicCallbacks() {
15
+ return this.charCallbacks
16
+ }
17
+
18
+ public getRssiIntervalMs() {
19
+ return this.rssiIntervalMs
20
+ }
21
+
22
+ public getConnected() {
23
+ return this.connected
24
+ }
25
+
26
+ public setLogInfoSpy() {
27
+ this.infoLogs = []
28
+
29
+ this.log.info = (...args: unknown[]) => {
30
+ const message = args.join(' ')
31
+ this.infoLogs.push(message)
32
+ return message
33
+ }
34
+ }
35
+
36
+ public setLogWarnSpy() {
37
+ this.warnLogs = []
38
+
39
+ this.log.warn = (...args: unknown[]) => {
40
+ const message = args.join(' ')
41
+ this.warnLogs.push(message)
42
+ return message
43
+ }
44
+ }
45
+
46
+ public setLogErrorSpy() {
47
+ this.errorLogs = []
48
+
49
+ this.log.error = (...args: unknown[]) => {
50
+ const message = args.join(' ')
51
+ this.errorLogs.push(message)
52
+ return message
53
+ }
54
+ }
55
+
56
+ public resetTestDouble() {
57
+ this.infoLogs = []
58
+ this.warnLogs = []
59
+ this.errorLogs = []
60
+ }
61
+ }
@@ -0,0 +1,46 @@
1
+ import {
2
+ ClockRegressor,
3
+ WindowedClockRegressorOptions,
4
+ } from '../../impl/WindowedClockRegressor.js'
5
+
6
+ export default class FakeClockRegressor implements ClockRegressor {
7
+ public static callsToConstructor: {
8
+ nominalHz: number
9
+ options?: WindowedClockRegressorOptions
10
+ }[] = []
11
+ public static callsToDeriveTimestamps: {
12
+ deviceTime: number
13
+ earliestLslTime: number
14
+ chunkSize: number
15
+ }[] = []
16
+
17
+ public static fakeResultValue = 0
18
+
19
+ public readonly nominalHz: number
20
+
21
+ public constructor(
22
+ nominalHz: number,
23
+ options?: WindowedClockRegressorOptions
24
+ ) {
25
+ FakeClockRegressor.callsToConstructor.push({ nominalHz, options })
26
+ this.nominalHz = nominalHz
27
+ }
28
+
29
+ public deriveTimestamps(
30
+ deviceTime: number,
31
+ earliestLslTime: number,
32
+ chunkSize: number
33
+ ) {
34
+ FakeClockRegressor.callsToDeriveTimestamps.push({
35
+ deviceTime,
36
+ earliestLslTime,
37
+ chunkSize,
38
+ })
39
+ return Array(chunkSize).fill(FakeClockRegressor.fakeResultValue)
40
+ }
41
+
42
+ public static resetTestDouble() {
43
+ FakeClockRegressor.callsToConstructor = []
44
+ FakeClockRegressor.callsToDeriveTimestamps = []
45
+ }
46
+ }
@@ -13,7 +13,7 @@ export default class FakeStreamOutlet implements StreamOutlet {
13
13
 
14
14
  public static callsToPushSample: {
15
15
  sample: LslSample
16
- timestamp?: number
16
+ timestampSec?: number
17
17
  }[] = []
18
18
 
19
19
  public static numCallsToDestroy = 0
@@ -29,8 +29,11 @@ export default class FakeStreamOutlet implements StreamOutlet {
29
29
  FakeStreamOutlet.numCallsToDestroy++
30
30
  }
31
31
 
32
- public pushSample(sample: LslSample, timestamp?: number) {
33
- FakeStreamOutlet.callsToPushSample.push({ sample, timestamp })
32
+ public pushSample(sample: LslSample, timestampSec?: number) {
33
+ FakeStreamOutlet.callsToPushSample.push({
34
+ sample,
35
+ timestampSec,
36
+ })
34
37
  }
35
38
 
36
39
  public get name() {
@@ -0,0 +1,34 @@
1
+ import {
2
+ UsbController,
3
+ UsbControllerOptions,
4
+ } from '../../impl/controllers/UsbDeviceController.js'
5
+
6
+ export default class FakeUsbController implements UsbController {
7
+ public static callsToConstructor: (UsbControllerOptions | undefined)[] = []
8
+ public static numCallsToConnect = 0
9
+ public static callsToWriteUsb: string[] = []
10
+ public static numCallsToDisconnect = 0
11
+
12
+ public constructor(options?: UsbControllerOptions) {
13
+ FakeUsbController.callsToConstructor.push(options)
14
+ }
15
+
16
+ public async connect() {
17
+ FakeUsbController.numCallsToConnect++
18
+ }
19
+
20
+ public async writeUsb(value: string) {
21
+ FakeUsbController.callsToWriteUsb.push(value)
22
+ }
23
+
24
+ public async disconnect() {
25
+ FakeUsbController.numCallsToDisconnect++
26
+ }
27
+
28
+ public static resetTestDouble() {
29
+ FakeUsbController.callsToConstructor.length = 0
30
+ FakeUsbController.numCallsToConnect = 0
31
+ FakeUsbController.callsToWriteUsb.length = 0
32
+ FakeUsbController.numCallsToDisconnect = 0
33
+ }
34
+ }
@@ -8,8 +8,7 @@ import FakeWebSocketServer from '../WebSockets/FakeWebSocketServer.js'
8
8
 
9
9
  export default class FakeWebSocketBridge implements WebSocketBridge {
10
10
  public static callsToConstructor: (
11
- | WebSocketBridgeConstructorOptions
12
- | undefined
11
+ WebSocketBridgeConstructorOptions | undefined
13
12
  )[] = []
14
13
 
15
14
  public static numCallsToActivate = 0
@@ -1,4 +1,5 @@
1
- import { randomInt } from 'crypto'
1
+ import { randomInt } from 'node:crypto'
2
+
2
3
  import generateId from '@neurodevs/generate-id'
3
4
 
4
5
  import { StreamOutletOptions } from '../impl/LslStreamOutlet.js'
package/tsconfig.json CHANGED
@@ -1,28 +1,24 @@
1
1
  {
2
- "compilerOptions": {
3
- "module": "nodenext",
4
- "moduleResolution": "nodenext",
5
- "target": "ES2022",
6
- "lib": ["ES2022"],
7
- "types": ["node"],
8
- "baseUrl": "src",
9
- "outDir": "build",
10
- "sourceMap": false,
11
- "strict": true,
12
- "noImplicitAny": true,
13
- "noImplicitReturns": true,
14
- "noUnusedLocals": true,
15
- "forceConsistentCasingInFileNames": true,
16
- "declaration": true,
17
- "skipLibCheck": true,
18
- "esModuleInterop": true,
19
- "moduleDetection": "force",
20
- "allowJs": true,
21
- "resolveJsonModule": true,
22
- "experimentalDecorators": true
23
- },
24
- "include": [
25
- "./src/*.ts",
26
- "./src/**/*.ts"
27
- ]
28
- }
2
+ "compilerOptions": {
3
+ "module": "nodenext",
4
+ "target": "esnext",
5
+ "lib": ["esnext"],
6
+ "types": ["node"],
7
+ "rootDir": "src",
8
+ "outDir": "build",
9
+ "sourceMap": false,
10
+ "strict": true,
11
+ "noImplicitAny": true,
12
+ "noImplicitReturns": true,
13
+ "noUnusedLocals": true,
14
+ "forceConsistentCasingInFileNames": true,
15
+ "declaration": true,
16
+ "skipLibCheck": true,
17
+ "esModuleInterop": true,
18
+ "moduleDetection": "force",
19
+ "allowJs": true,
20
+ "resolveJsonModule": true,
21
+ "experimentalDecorators": true
22
+ },
23
+ "include": ["./src/*.ts", "./src/**/*.ts"]
24
+ }
@@ -1,7 +0,0 @@
1
- {
2
- "version": "0.8.0",
3
- "projectName": "node-lsl",
4
- "remote": {
5
- "url": "https://git.regressionproof.ai/liquidg3/node-lsl.git"
6
- }
7
- }
@@ -1,15 +0,0 @@
1
- {
2
- "scriptUpdater": {
3
- "skipped": []
4
- },
5
- "skipped": [
6
- "skill"
7
- ],
8
- "installed": [
9
- "test"
10
- ],
11
- "regressionproof": {
12
- "enabled": true,
13
- "projectName": "node-lsl"
14
- }
15
- }
@@ -1,7 +0,0 @@
1
- import AbstractPackageTest from '../AbstractPackageTest.js';
2
- export default class LslBackpressureMonitorTest extends AbstractPackageTest {
3
- private static instance;
4
- protected static beforeEach(): Promise<void>;
5
- protected static createsInstance(): Promise<void>;
6
- private static LslBackpressureMonitor;
7
- }
@@ -1,26 +0,0 @@
1
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
- return c > 3 && r && Object.defineProperty(target, key, r), r;
6
- };
7
- import { test, assert } from '@neurodevs/node-tdd';
8
- import LslBackpressureMonitor from '../../impl/LslBackpressureMonitor.js';
9
- import AbstractPackageTest from '../AbstractPackageTest.js';
10
- export default class LslBackpressureMonitorTest extends AbstractPackageTest {
11
- static instance;
12
- static async beforeEach() {
13
- await super.beforeEach();
14
- this.instance = this.LslBackpressureMonitor();
15
- }
16
- static async createsInstance() {
17
- assert.isTruthy(this.instance, 'Failed to create instance!');
18
- }
19
- static LslBackpressureMonitor() {
20
- return LslBackpressureMonitor.Create();
21
- }
22
- }
23
- __decorate([
24
- test()
25
- ], LslBackpressureMonitorTest, "createsInstance", null);
26
- //# sourceMappingURL=LslBackpressureMonitor.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"LslBackpressureMonitor.test.js","sourceRoot":"","sources":["../../../src/__tests__/impl/LslBackpressureMonitor.test.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAElD,OAAO,sBAEN,MAAM,sCAAsC,CAAA;AAC7C,OAAO,mBAAmB,MAAM,2BAA2B,CAAA;AAE3D,MAAM,CAAC,OAAO,OAAO,0BAA2B,SAAQ,mBAAmB;IAC/D,MAAM,CAAC,QAAQ,CAAqB;IAElC,MAAM,CAAC,KAAK,CAAC,UAAU;QAC7B,MAAM,KAAK,CAAC,UAAU,EAAE,CAAA;QAExB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,sBAAsB,EAAE,CAAA;IACjD,CAAC;IAGsB,AAAb,MAAM,CAAC,KAAK,CAAC,eAAe;QAClC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,4BAA4B,CAAC,CAAA;IAChE,CAAC;IAEO,MAAM,CAAC,sBAAsB;QACjC,OAAO,sBAAsB,CAAC,MAAM,EAAE,CAAA;IAC1C,CAAC;CACJ;AAP0B;IADtB,IAAI,EAAE;uDAGN"}
@@ -1,8 +0,0 @@
1
- export default class LslBackpressureMonitor implements BackpressureMonitor {
2
- static Class?: BackpressureMonitorConstructor;
3
- protected constructor();
4
- static Create(): LslBackpressureMonitor;
5
- }
6
- export interface BackpressureMonitor {
7
- }
8
- export type BackpressureMonitorConstructor = new () => BackpressureMonitor;
@@ -1,8 +0,0 @@
1
- export default class LslBackpressureMonitor {
2
- static Class;
3
- constructor() { }
4
- static Create() {
5
- return new (this.Class ?? this)();
6
- }
7
- }
8
- //# sourceMappingURL=LslBackpressureMonitor.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"LslBackpressureMonitor.js","sourceRoot":"","sources":["../../src/impl/LslBackpressureMonitor.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,OAAO,OAAO,sBAAsB;IAChC,MAAM,CAAC,KAAK,CAAiC;IAEpD,gBAAyB,CAAC;IAEnB,MAAM,CAAC,MAAM;QAChB,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,EAAE,CAAA;IACrC,CAAC;CACJ"}
@@ -1,6 +0,0 @@
1
- import { BackpressureMonitor } from '../../impl/LslBackpressureMonitor.js';
2
- export default class FakeBackpressureMonitor implements BackpressureMonitor {
3
- static numCallsToConstructor: number;
4
- constructor();
5
- static resetTestDouble(): void;
6
- }
@@ -1,10 +0,0 @@
1
- export default class FakeBackpressureMonitor {
2
- static numCallsToConstructor = 0;
3
- constructor() {
4
- FakeBackpressureMonitor.numCallsToConstructor++;
5
- }
6
- static resetTestDouble() {
7
- FakeBackpressureMonitor.numCallsToConstructor = 0;
8
- }
9
- }
10
- //# sourceMappingURL=FakeBackpressureMonitor.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"FakeBackpressureMonitor.js","sourceRoot":"","sources":["../../../src/testDoubles/BackpressureMonitor/FakeBackpressureMonitor.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,OAAO,OAAO,uBAAuB;IACjC,MAAM,CAAC,qBAAqB,GAAG,CAAC,CAAA;IAEvC;QACI,uBAAuB,CAAC,qBAAqB,EAAE,CAAA;IACnD,CAAC;IAEM,MAAM,CAAC,eAAe;QACzB,uBAAuB,CAAC,qBAAqB,GAAG,CAAC,CAAA;IACrD,CAAC"}
package/eslint.config.mjs DELETED
@@ -1,3 +0,0 @@
1
- import eslintConfigSpruce from 'eslint-config-spruce'
2
-
3
- export default eslintConfigSpruce
@@ -1,15 +0,0 @@
1
- {
2
- "scriptUpdater": {
3
- "skipped": []
4
- },
5
- "skipped": [
6
- "skill"
7
- ],
8
- "installed": [
9
- "test"
10
- ],
11
- "regressionproof": {
12
- "enabled": true,
13
- "projectName": "node-lsl"
14
- }
15
- }
@@ -1,25 +0,0 @@
1
- import { test, assert } from '@neurodevs/node-tdd'
2
-
3
- import LslBackpressureMonitor, {
4
- BackpressureMonitor,
5
- } from '../../impl/LslBackpressureMonitor.js'
6
- import AbstractPackageTest from '../AbstractPackageTest.js'
7
-
8
- export default class LslBackpressureMonitorTest extends AbstractPackageTest {
9
- private static instance: BackpressureMonitor
10
-
11
- protected static async beforeEach() {
12
- await super.beforeEach()
13
-
14
- this.instance = this.LslBackpressureMonitor()
15
- }
16
-
17
- @test()
18
- protected static async createsInstance() {
19
- assert.isTruthy(this.instance, 'Failed to create instance!')
20
- }
21
-
22
- private static LslBackpressureMonitor() {
23
- return LslBackpressureMonitor.Create()
24
- }
25
- }
@@ -1,13 +0,0 @@
1
- export default class LslBackpressureMonitor implements BackpressureMonitor {
2
- public static Class?: BackpressureMonitorConstructor
3
-
4
- protected constructor() {}
5
-
6
- public static Create() {
7
- return new (this.Class ?? this)()
8
- }
9
- }
10
-
11
- export interface BackpressureMonitor {}
12
-
13
- export type BackpressureMonitorConstructor = new () => BackpressureMonitor
@@ -1,13 +0,0 @@
1
- import { BackpressureMonitor } from '../../impl/LslBackpressureMonitor.js'
2
-
3
- export default class FakeBackpressureMonitor implements BackpressureMonitor {
4
- public static numCallsToConstructor = 0
5
-
6
- public constructor() {
7
- FakeBackpressureMonitor.numCallsToConstructor++
8
- }
9
-
10
- public static resetTestDouble() {
11
- FakeBackpressureMonitor.numCallsToConstructor = 0
12
- }
13
- }