@onekeyfe/hd-common-connect-sdk 1.2.0-alpha.19 → 1.2.0-alpha.20
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/__tests__/device-state-event.test.js +97 -0
- package/dist/index.js +19 -5
- package/package.json +9 -9
- package/src/index.ts +7 -2
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
import { CORE_EVENT, DEVICE, DEVICE_EVENT, initCore } from '@onekeyfe/hd-core';
|
|
2
|
+
|
|
3
|
+
import HardwareCommonConnectSdk from '../src';
|
|
4
|
+
|
|
5
|
+
jest.mock('@onekeyfe/hd-core', () => {
|
|
6
|
+
const actual = jest.requireActual('@onekeyfe/hd-core');
|
|
7
|
+
return {
|
|
8
|
+
__esModule: true,
|
|
9
|
+
...actual,
|
|
10
|
+
default: ({ eventEmitter, init, dispose }) => ({
|
|
11
|
+
init,
|
|
12
|
+
dispose,
|
|
13
|
+
on: (type, listener) => eventEmitter.on(type, listener),
|
|
14
|
+
off: (type, listener) => eventEmitter.off(type, listener),
|
|
15
|
+
removeAllListeners: type => eventEmitter.removeAllListeners(type),
|
|
16
|
+
}),
|
|
17
|
+
initCore: jest.fn(),
|
|
18
|
+
};
|
|
19
|
+
});
|
|
20
|
+
|
|
21
|
+
describe('hd-common-connect-sdk device state events', () => {
|
|
22
|
+
test('forwards KnownDevice connect and disconnect payload wrappers to SDK consumers', async () => {
|
|
23
|
+
let handleCoreMessage;
|
|
24
|
+
const core = {
|
|
25
|
+
on: jest.fn((event, listener) => {
|
|
26
|
+
if (event === CORE_EVENT) {
|
|
27
|
+
handleCoreMessage = listener;
|
|
28
|
+
}
|
|
29
|
+
}),
|
|
30
|
+
dispose: jest.fn(),
|
|
31
|
+
};
|
|
32
|
+
initCore.mockResolvedValue(core);
|
|
33
|
+
const onConnect = jest.fn();
|
|
34
|
+
const onDisconnect = jest.fn();
|
|
35
|
+
HardwareCommonConnectSdk.on(DEVICE.CONNECT, onConnect);
|
|
36
|
+
HardwareCommonConnectSdk.on(DEVICE.DISCONNECT, onDisconnect);
|
|
37
|
+
|
|
38
|
+
await HardwareCommonConnectSdk.init({ env: 'lowlevel' });
|
|
39
|
+
const device = {
|
|
40
|
+
connectId: 'ble-connect-id',
|
|
41
|
+
serialNo: 'SERIAL-001',
|
|
42
|
+
uuid: 'SERIAL-001',
|
|
43
|
+
label: 'OneKey Test',
|
|
44
|
+
};
|
|
45
|
+
const payload = { device };
|
|
46
|
+
|
|
47
|
+
handleCoreMessage({
|
|
48
|
+
event: DEVICE_EVENT,
|
|
49
|
+
type: DEVICE.CONNECT,
|
|
50
|
+
payload,
|
|
51
|
+
});
|
|
52
|
+
handleCoreMessage({
|
|
53
|
+
event: DEVICE_EVENT,
|
|
54
|
+
type: DEVICE.DISCONNECT,
|
|
55
|
+
payload,
|
|
56
|
+
});
|
|
57
|
+
|
|
58
|
+
expect(onConnect).toHaveBeenCalledWith(payload);
|
|
59
|
+
expect(onDisconnect).toHaveBeenCalledWith(payload);
|
|
60
|
+
HardwareCommonConnectSdk.removeAllListeners(DEVICE.CONNECT);
|
|
61
|
+
HardwareCommonConnectSdk.removeAllListeners(DEVICE.DISCONNECT);
|
|
62
|
+
await HardwareCommonConnectSdk.dispose();
|
|
63
|
+
});
|
|
64
|
+
|
|
65
|
+
test('forwards Protocol V2 DEVICE.STATE payloads to SDK consumers', async () => {
|
|
66
|
+
let handleCoreMessage;
|
|
67
|
+
const core = {
|
|
68
|
+
on: jest.fn((event, listener) => {
|
|
69
|
+
if (event === CORE_EVENT) {
|
|
70
|
+
handleCoreMessage = listener;
|
|
71
|
+
}
|
|
72
|
+
}),
|
|
73
|
+
dispose: jest.fn(),
|
|
74
|
+
};
|
|
75
|
+
initCore.mockResolvedValue(core);
|
|
76
|
+
const listener = jest.fn();
|
|
77
|
+
HardwareCommonConnectSdk.on(DEVICE.STATE, listener);
|
|
78
|
+
|
|
79
|
+
await HardwareCommonConnectSdk.init({ env: 'webusb' });
|
|
80
|
+
const payload = {
|
|
81
|
+
connectId: 'connect-id',
|
|
82
|
+
revision: 1,
|
|
83
|
+
source: 'device-info',
|
|
84
|
+
changedKeys: ['protocolVersion'],
|
|
85
|
+
state: { protocol: 'V2', protocolVersion: 2 },
|
|
86
|
+
};
|
|
87
|
+
handleCoreMessage({
|
|
88
|
+
event: DEVICE_EVENT,
|
|
89
|
+
type: DEVICE.STATE,
|
|
90
|
+
payload,
|
|
91
|
+
});
|
|
92
|
+
|
|
93
|
+
expect(listener).toHaveBeenCalledWith(payload);
|
|
94
|
+
HardwareCommonConnectSdk.removeAllListeners(DEVICE.STATE);
|
|
95
|
+
await HardwareCommonConnectSdk.dispose();
|
|
96
|
+
});
|
|
97
|
+
});
|
package/dist/index.js
CHANGED
|
@@ -609,12 +609,26 @@ var _core;
|
|
|
609
609
|
var _settings = HardwareSdk.parseConnectSettings();
|
|
610
610
|
var _messageID = 0;
|
|
611
611
|
var messagePromises = {};
|
|
612
|
-
var dispose = function () {
|
|
612
|
+
var dispose = function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
613
|
+
var core;
|
|
613
614
|
var _a;
|
|
614
|
-
|
|
615
|
-
|
|
616
|
-
|
|
617
|
-
|
|
615
|
+
return __generator(this, function (_b) {
|
|
616
|
+
switch (_b.label) {
|
|
617
|
+
case 0:
|
|
618
|
+
core = _core;
|
|
619
|
+
_core = undefined;
|
|
620
|
+
eventEmitter.removeAllListeners();
|
|
621
|
+
Object.keys(messagePromises).forEach(function (key) {
|
|
622
|
+
delete messagePromises[Number(key)];
|
|
623
|
+
});
|
|
624
|
+
_settings = HardwareSdk.parseConnectSettings();
|
|
625
|
+
return [4 /*yield*/, ((_a = core === null || core === void 0 ? void 0 : core.dispose) === null || _a === void 0 ? void 0 : _a.call(core))];
|
|
626
|
+
case 1:
|
|
627
|
+
_b.sent();
|
|
628
|
+
return [2 /*return*/];
|
|
629
|
+
}
|
|
630
|
+
});
|
|
631
|
+
}); };
|
|
618
632
|
var uiResponse = function (response) {
|
|
619
633
|
if (!_core) {
|
|
620
634
|
throw hdShared.ERRORS.TypedError(hdShared.HardwareErrorCode.NotInitialized);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@onekeyfe/hd-common-connect-sdk",
|
|
3
|
-
"version": "1.2.0-alpha.
|
|
3
|
+
"version": "1.2.0-alpha.20",
|
|
4
4
|
"author": "OneKey",
|
|
5
5
|
"homepage": "https://github.com/OneKeyHQ/hardware-js-sdk#readme",
|
|
6
6
|
"license": "ISC",
|
|
@@ -20,13 +20,13 @@
|
|
|
20
20
|
"lint:fix": "eslint . --fix"
|
|
21
21
|
},
|
|
22
22
|
"dependencies": {
|
|
23
|
-
"@onekeyfe/hd-core": "1.2.0-alpha.
|
|
24
|
-
"@onekeyfe/hd-shared": "1.2.0-alpha.
|
|
25
|
-
"@onekeyfe/hd-transport-emulator": "1.2.0-alpha.
|
|
26
|
-
"@onekeyfe/hd-transport-http": "1.2.0-alpha.
|
|
27
|
-
"@onekeyfe/hd-transport-lowlevel": "1.2.0-alpha.
|
|
28
|
-
"@onekeyfe/hd-transport-usb": "1.2.0-alpha.
|
|
29
|
-
"@onekeyfe/hd-transport-web-device": "1.2.0-alpha.
|
|
23
|
+
"@onekeyfe/hd-core": "1.2.0-alpha.20",
|
|
24
|
+
"@onekeyfe/hd-shared": "1.2.0-alpha.20",
|
|
25
|
+
"@onekeyfe/hd-transport-emulator": "1.2.0-alpha.20",
|
|
26
|
+
"@onekeyfe/hd-transport-http": "1.2.0-alpha.20",
|
|
27
|
+
"@onekeyfe/hd-transport-lowlevel": "1.2.0-alpha.20",
|
|
28
|
+
"@onekeyfe/hd-transport-usb": "1.2.0-alpha.20",
|
|
29
|
+
"@onekeyfe/hd-transport-web-device": "1.2.0-alpha.20"
|
|
30
30
|
},
|
|
31
|
-
"gitHead": "
|
|
31
|
+
"gitHead": "5fbc1ada90fd3cfda7e5ef08be368cb452018733"
|
|
32
32
|
}
|
package/src/index.ts
CHANGED
|
@@ -60,10 +60,15 @@ let _settings = parseConnectSettings();
|
|
|
60
60
|
let _messageID = 0;
|
|
61
61
|
export const messagePromises: { [key: number]: Deferred<any> } = {};
|
|
62
62
|
|
|
63
|
-
const dispose = () => {
|
|
63
|
+
const dispose = async () => {
|
|
64
|
+
const core = _core;
|
|
65
|
+
_core = undefined;
|
|
64
66
|
eventEmitter.removeAllListeners();
|
|
65
|
-
|
|
67
|
+
Object.keys(messagePromises).forEach(key => {
|
|
68
|
+
delete messagePromises[Number(key)];
|
|
69
|
+
});
|
|
66
70
|
_settings = parseConnectSettings();
|
|
71
|
+
await core?.dispose?.();
|
|
67
72
|
};
|
|
68
73
|
|
|
69
74
|
const uiResponse = (response: UiResponseEvent) => {
|