@onekeyfe/hd-shared 0.1.11 → 0.1.14
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/dist/HardwareError.d.ts +4 -0
- package/dist/HardwareError.d.ts.map +1 -1
- package/dist/index.d.ts +39 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +122 -1
- package/dist/logger.d.ts +33 -0
- package/dist/logger.d.ts.map +1 -0
- package/package.json +2 -2
- package/src/HardwareError.ts +27 -0
- package/src/index.ts +1 -0
- package/src/logger.ts +132 -0
package/dist/HardwareError.d.ts
CHANGED
|
@@ -52,9 +52,13 @@ export declare const HardwareErrorCode: {
|
|
|
52
52
|
readonly PinCancelled: 802;
|
|
53
53
|
readonly ActionCancelled: 803;
|
|
54
54
|
readonly FirmwareError: 804;
|
|
55
|
+
readonly ResponseUnexpectTypeError: 805;
|
|
56
|
+
readonly BridgeNetworkError: 806;
|
|
57
|
+
readonly BridgeTimeoutError: 807;
|
|
55
58
|
};
|
|
56
59
|
export declare const HardwareErrorCodeMessage: HardwareErrorCodeMessageMapping;
|
|
57
60
|
export declare const TypedError: (hardwareError: ErrorCodeUnion | string, message?: string | undefined) => HardwareError;
|
|
58
61
|
export declare const serializeError: (payload: any) => any;
|
|
62
|
+
export declare const CreateErrorByMessage: (message: string) => HardwareError;
|
|
59
63
|
export {};
|
|
60
64
|
//# sourceMappingURL=HardwareError.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HardwareError.d.ts","sourceRoot":"","sources":["../src/HardwareError.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,OAAO,CAAC,OAAO,iBAAiB,CAAC,CAAC;IAC7C,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,aAAK,OAAO,CAAC,CAAC,SAAS,MAAM,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;AAE5C,aAAK,+BAA+B,GAAG;KAAG,CAAC,IAAI,OAAO,CAAC,OAAO,iBAAiB,CAAC,GAAG,MAAM;CAAE,CAAC;AAE5F,aAAK,cAAc,GAAG,OAAO,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAMxD,qBAAa,aAAc,SAAQ,KAAK;IACtC,SAAS,EAAE,cAAc,CAAkC;IAE3D,OAAO,SAAM;gBAED,aAAa,EAAE,cAAc,GAAG,MAAM;CAkBnD;AAED,eAAO,MAAM,iBAAiB
|
|
1
|
+
{"version":3,"file":"HardwareError.d.ts","sourceRoot":"","sources":["../src/HardwareError.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,OAAO,CAAC,OAAO,iBAAiB,CAAC,CAAC;IAC7C,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,aAAK,OAAO,CAAC,CAAC,SAAS,MAAM,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;AAE5C,aAAK,+BAA+B,GAAG;KAAG,CAAC,IAAI,OAAO,CAAC,OAAO,iBAAiB,CAAC,GAAG,MAAM;CAAE,CAAC;AAE5F,aAAK,cAAc,GAAG,OAAO,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAMxD,qBAAa,aAAc,SAAQ,KAAK;IACtC,SAAS,EAAE,cAAc,CAAkC;IAE3D,OAAO,SAAM;gBAED,aAAa,EAAE,cAAc,GAAG,MAAM;CAkBnD;AAED,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+KpB,CAAC;AAEX,eAAO,MAAM,wBAAwB,EAAE,+BA0E7B,CAAC;AAEX,eAAO,MAAM,UAAU,kBAAmB,cAAc,GAAG,MAAM,gDAKhE,CAAC;AAEF,eAAO,MAAM,cAAc,YAAa,GAAG,QAQ1C,CAAC;AAEF,eAAO,MAAM,oBAAoB,YAAa,MAAM,KAAG,aAOtD,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -61,10 +61,14 @@ declare const HardwareErrorCode: {
|
|
|
61
61
|
readonly PinCancelled: 802;
|
|
62
62
|
readonly ActionCancelled: 803;
|
|
63
63
|
readonly FirmwareError: 804;
|
|
64
|
+
readonly ResponseUnexpectTypeError: 805;
|
|
65
|
+
readonly BridgeNetworkError: 806;
|
|
66
|
+
readonly BridgeTimeoutError: 807;
|
|
64
67
|
};
|
|
65
68
|
declare const HardwareErrorCodeMessage: HardwareErrorCodeMessageMapping;
|
|
66
69
|
declare const TypedError: (hardwareError: ErrorCodeUnion | string, message?: string | undefined) => HardwareError;
|
|
67
70
|
declare const serializeError: (payload: any) => any;
|
|
71
|
+
declare const CreateErrorByMessage: (message: string) => HardwareError;
|
|
68
72
|
|
|
69
73
|
type HardwareError$1_IHardwareError = IHardwareError;
|
|
70
74
|
type HardwareError$1_HardwareError = HardwareError;
|
|
@@ -73,6 +77,7 @@ declare const HardwareError$1_HardwareErrorCode: typeof HardwareErrorCode;
|
|
|
73
77
|
declare const HardwareError$1_HardwareErrorCodeMessage: typeof HardwareErrorCodeMessage;
|
|
74
78
|
declare const HardwareError$1_TypedError: typeof TypedError;
|
|
75
79
|
declare const HardwareError$1_serializeError: typeof serializeError;
|
|
80
|
+
declare const HardwareError$1_CreateErrorByMessage: typeof CreateErrorByMessage;
|
|
76
81
|
declare namespace HardwareError$1 {
|
|
77
82
|
export {
|
|
78
83
|
HardwareError$1_IHardwareError as IHardwareError,
|
|
@@ -81,7 +86,40 @@ declare namespace HardwareError$1 {
|
|
|
81
86
|
HardwareError$1_HardwareErrorCodeMessage as HardwareErrorCodeMessage,
|
|
82
87
|
HardwareError$1_TypedError as TypedError,
|
|
83
88
|
HardwareError$1_serializeError as serializeError,
|
|
89
|
+
HardwareError$1_CreateErrorByMessage as CreateErrorByMessage,
|
|
84
90
|
};
|
|
85
91
|
}
|
|
86
92
|
|
|
87
|
-
|
|
93
|
+
declare type LogMessage = {
|
|
94
|
+
level: string;
|
|
95
|
+
prefix: string;
|
|
96
|
+
message: any[];
|
|
97
|
+
timestamp: number;
|
|
98
|
+
};
|
|
99
|
+
declare type LoggerFn = (...data: any[]) => void;
|
|
100
|
+
declare type LoggerMoreParams = (message?: any, ...optionalParams: any[]) => void;
|
|
101
|
+
declare type Logger = {
|
|
102
|
+
debug: LoggerFn | LoggerMoreParams;
|
|
103
|
+
info: LoggerFn | LoggerMoreParams;
|
|
104
|
+
warn: LoggerFn | LoggerMoreParams;
|
|
105
|
+
error: LoggerFn | LoggerMoreParams;
|
|
106
|
+
};
|
|
107
|
+
declare class Log {
|
|
108
|
+
prefix: string;
|
|
109
|
+
enabled: boolean;
|
|
110
|
+
messages: LogMessage[];
|
|
111
|
+
logger?: Logger;
|
|
112
|
+
constructor(prefix: string, enabled: boolean, logger?: Logger);
|
|
113
|
+
addMessage(level: string, prefix: string, ...args: any[]): void;
|
|
114
|
+
log(...args: any[]): void;
|
|
115
|
+
error(...args: any[]): void;
|
|
116
|
+
warn(...args: any[]): void;
|
|
117
|
+
debug(...args: any[]): void;
|
|
118
|
+
}
|
|
119
|
+
declare const initLog: (prefix: string, enabled?: boolean | undefined, logger?: Logger | undefined) => Log;
|
|
120
|
+
declare const enableLog: (enabled?: boolean | undefined) => void;
|
|
121
|
+
declare const setOutsideLogger: (logger: Logger) => void;
|
|
122
|
+
declare const enableLogByPrefix: (prefix: string, enabled: boolean) => void;
|
|
123
|
+
declare const getLog: () => LogMessage[];
|
|
124
|
+
|
|
125
|
+
export { CreateErrorByMessage, Deferred, HardwareError$1 as ERRORS, HardwareError, HardwareErrorCode, HardwareErrorCodeMessage, IHardwareError, TypedError, createDeferred, enableLog, enableLogByPrefix, getLog, initLog, serializeError, setOutsideLogger };
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,iBAAiB,CAAC;AAChC,OAAO,KAAK,MAAM,MAAM,iBAAiB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,iBAAiB,CAAC;AAChC,cAAc,UAAU,CAAC;AACzB,OAAO,KAAK,MAAM,MAAM,iBAAiB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -119,6 +119,9 @@ const HardwareErrorCode = {
|
|
|
119
119
|
PinCancelled: 802,
|
|
120
120
|
ActionCancelled: 803,
|
|
121
121
|
FirmwareError: 804,
|
|
122
|
+
ResponseUnexpectTypeError: 805,
|
|
123
|
+
BridgeNetworkError: 806,
|
|
124
|
+
BridgeTimeoutError: 807,
|
|
122
125
|
};
|
|
123
126
|
const HardwareErrorCodeMessage = {
|
|
124
127
|
[HardwareErrorCode.UnknownError]: 'Unknown error occurred. Check message property.',
|
|
@@ -160,6 +163,9 @@ const HardwareErrorCodeMessage = {
|
|
|
160
163
|
[HardwareErrorCode.PinCancelled]: 'Pin cancelled',
|
|
161
164
|
[HardwareErrorCode.ActionCancelled]: 'Action cancelled by user',
|
|
162
165
|
[HardwareErrorCode.FirmwareError]: 'Firmware installation failed',
|
|
166
|
+
[HardwareErrorCode.ResponseUnexpectTypeError]: 'Response type is not expected',
|
|
167
|
+
[HardwareErrorCode.BridgeNetworkError]: 'Bridge network error',
|
|
168
|
+
[HardwareErrorCode.BridgeTimeoutError]: 'Bridge network timeout',
|
|
163
169
|
};
|
|
164
170
|
const TypedError = (hardwareError, message) => {
|
|
165
171
|
if (typeof hardwareError === 'string') {
|
|
@@ -176,6 +182,14 @@ const serializeError = (payload) => {
|
|
|
176
182
|
}
|
|
177
183
|
return payload;
|
|
178
184
|
};
|
|
185
|
+
const CreateErrorByMessage = (message) => {
|
|
186
|
+
for (const code of Object.values(HardwareErrorCode)) {
|
|
187
|
+
if (HardwareErrorCodeMessage[code] === message) {
|
|
188
|
+
return TypedError(code);
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
return new HardwareError(message);
|
|
192
|
+
};
|
|
179
193
|
|
|
180
194
|
var HardwareError$1 = /*#__PURE__*/Object.freeze({
|
|
181
195
|
__proto__: null,
|
|
@@ -183,13 +197,120 @@ var HardwareError$1 = /*#__PURE__*/Object.freeze({
|
|
|
183
197
|
HardwareErrorCode: HardwareErrorCode,
|
|
184
198
|
HardwareErrorCodeMessage: HardwareErrorCodeMessage,
|
|
185
199
|
TypedError: TypedError,
|
|
186
|
-
serializeError: serializeError
|
|
200
|
+
serializeError: serializeError,
|
|
201
|
+
CreateErrorByMessage: CreateErrorByMessage
|
|
187
202
|
});
|
|
188
203
|
|
|
204
|
+
const MAX_ENTRIES = 100;
|
|
205
|
+
class Log {
|
|
206
|
+
constructor(prefix, enabled, logger) {
|
|
207
|
+
this.prefix = prefix;
|
|
208
|
+
this.enabled = enabled;
|
|
209
|
+
this.messages = [];
|
|
210
|
+
if (logger) {
|
|
211
|
+
this.logger = logger;
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
addMessage(level, prefix, ...args) {
|
|
215
|
+
this.messages.push({
|
|
216
|
+
level,
|
|
217
|
+
prefix,
|
|
218
|
+
message: args,
|
|
219
|
+
timestamp: new Date().getTime(),
|
|
220
|
+
});
|
|
221
|
+
if (this.messages.length > MAX_ENTRIES) {
|
|
222
|
+
this.messages.shift();
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
log(...args) {
|
|
226
|
+
this.addMessage('log', this.prefix, ...args);
|
|
227
|
+
if (!this.enabled) {
|
|
228
|
+
return;
|
|
229
|
+
}
|
|
230
|
+
if (this.logger) {
|
|
231
|
+
this.logger.info(this.prefix, ...args);
|
|
232
|
+
}
|
|
233
|
+
else {
|
|
234
|
+
console.log(this.prefix, ...args);
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
error(...args) {
|
|
238
|
+
this.addMessage('error', this.prefix, ...args);
|
|
239
|
+
if (!this.enabled) {
|
|
240
|
+
return;
|
|
241
|
+
}
|
|
242
|
+
if (this.logger) {
|
|
243
|
+
this.logger.error(this.prefix, ...args);
|
|
244
|
+
}
|
|
245
|
+
else {
|
|
246
|
+
console.error(this.prefix, ...args);
|
|
247
|
+
}
|
|
248
|
+
}
|
|
249
|
+
warn(...args) {
|
|
250
|
+
this.addMessage('warn', this.prefix, ...args);
|
|
251
|
+
if (!this.enabled) {
|
|
252
|
+
return;
|
|
253
|
+
}
|
|
254
|
+
if (this.logger) {
|
|
255
|
+
this.logger.warn(this.prefix, ...args);
|
|
256
|
+
}
|
|
257
|
+
else {
|
|
258
|
+
console.warn(this.prefix, ...args);
|
|
259
|
+
}
|
|
260
|
+
}
|
|
261
|
+
debug(...args) {
|
|
262
|
+
this.addMessage('debug', this.prefix, ...args);
|
|
263
|
+
if (!this.enabled) {
|
|
264
|
+
return;
|
|
265
|
+
}
|
|
266
|
+
if (this.logger) {
|
|
267
|
+
this.logger.debug(this.prefix, ...args);
|
|
268
|
+
}
|
|
269
|
+
else {
|
|
270
|
+
console.log(this.prefix, ...args);
|
|
271
|
+
}
|
|
272
|
+
}
|
|
273
|
+
}
|
|
274
|
+
const _logs = {};
|
|
275
|
+
const initLog = (prefix, enabled, logger) => {
|
|
276
|
+
const instance = new Log(prefix, !!enabled, logger);
|
|
277
|
+
_logs[prefix] = instance;
|
|
278
|
+
return instance;
|
|
279
|
+
};
|
|
280
|
+
const enableLog = (enabled) => {
|
|
281
|
+
Object.keys(_logs).forEach(key => {
|
|
282
|
+
_logs[key].enabled = !!enabled;
|
|
283
|
+
});
|
|
284
|
+
};
|
|
285
|
+
const setOutsideLogger = (logger) => {
|
|
286
|
+
Object.keys(_logs).forEach(key => {
|
|
287
|
+
_logs[key].logger = logger;
|
|
288
|
+
});
|
|
289
|
+
};
|
|
290
|
+
const enableLogByPrefix = (prefix, enabled) => {
|
|
291
|
+
if (_logs[prefix]) {
|
|
292
|
+
_logs[prefix].enabled = enabled;
|
|
293
|
+
}
|
|
294
|
+
};
|
|
295
|
+
const getLog = () => {
|
|
296
|
+
let logs = [];
|
|
297
|
+
Object.keys(_logs).forEach(key => {
|
|
298
|
+
logs = logs.concat(_logs[key].messages);
|
|
299
|
+
});
|
|
300
|
+
logs.sort((a, b) => a.timestamp - b.timestamp);
|
|
301
|
+
return logs;
|
|
302
|
+
};
|
|
303
|
+
|
|
304
|
+
exports.CreateErrorByMessage = CreateErrorByMessage;
|
|
189
305
|
exports.ERRORS = HardwareError$1;
|
|
190
306
|
exports.HardwareError = HardwareError;
|
|
191
307
|
exports.HardwareErrorCode = HardwareErrorCode;
|
|
192
308
|
exports.HardwareErrorCodeMessage = HardwareErrorCodeMessage;
|
|
193
309
|
exports.TypedError = TypedError;
|
|
194
310
|
exports.createDeferred = createDeferred;
|
|
311
|
+
exports.enableLog = enableLog;
|
|
312
|
+
exports.enableLogByPrefix = enableLogByPrefix;
|
|
313
|
+
exports.getLog = getLog;
|
|
314
|
+
exports.initLog = initLog;
|
|
195
315
|
exports.serializeError = serializeError;
|
|
316
|
+
exports.setOutsideLogger = setOutsideLogger;
|
package/dist/logger.d.ts
ADDED
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
declare type LogMessage = {
|
|
2
|
+
level: string;
|
|
3
|
+
prefix: string;
|
|
4
|
+
message: any[];
|
|
5
|
+
timestamp: number;
|
|
6
|
+
};
|
|
7
|
+
declare type LoggerFn = (...data: any[]) => void;
|
|
8
|
+
declare type LoggerMoreParams = (message?: any, ...optionalParams: any[]) => void;
|
|
9
|
+
declare type Logger = {
|
|
10
|
+
debug: LoggerFn | LoggerMoreParams;
|
|
11
|
+
info: LoggerFn | LoggerMoreParams;
|
|
12
|
+
warn: LoggerFn | LoggerMoreParams;
|
|
13
|
+
error: LoggerFn | LoggerMoreParams;
|
|
14
|
+
};
|
|
15
|
+
declare class Log {
|
|
16
|
+
prefix: string;
|
|
17
|
+
enabled: boolean;
|
|
18
|
+
messages: LogMessage[];
|
|
19
|
+
logger?: Logger;
|
|
20
|
+
constructor(prefix: string, enabled: boolean, logger?: Logger);
|
|
21
|
+
addMessage(level: string, prefix: string, ...args: any[]): void;
|
|
22
|
+
log(...args: any[]): void;
|
|
23
|
+
error(...args: any[]): void;
|
|
24
|
+
warn(...args: any[]): void;
|
|
25
|
+
debug(...args: any[]): void;
|
|
26
|
+
}
|
|
27
|
+
export declare const initLog: (prefix: string, enabled?: boolean | undefined, logger?: Logger | undefined) => Log;
|
|
28
|
+
export declare const enableLog: (enabled?: boolean | undefined) => void;
|
|
29
|
+
export declare const setOutsideLogger: (logger: Logger) => void;
|
|
30
|
+
export declare const enableLogByPrefix: (prefix: string, enabled: boolean) => void;
|
|
31
|
+
export declare const getLog: () => LogMessage[];
|
|
32
|
+
export {};
|
|
33
|
+
//# sourceMappingURL=logger.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"AAAA,aAAK,UAAU,GAAG;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,GAAG,EAAE,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,aAAK,QAAQ,GAAG,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,CAAC;AACzC,aAAK,gBAAgB,GAAG,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,GAAG,cAAc,EAAE,GAAG,EAAE,KAAK,IAAI,CAAC;AAE1E,aAAK,MAAM,GAAG;IACZ,KAAK,EAAE,QAAQ,GAAG,gBAAgB,CAAC;IACnC,IAAI,EAAE,QAAQ,GAAG,gBAAgB,CAAC;IAClC,IAAI,EAAE,QAAQ,GAAG,gBAAgB,CAAC;IAClC,KAAK,EAAE,QAAQ,GAAG,gBAAgB,CAAC;CACpC,CAAC;AAIF,cAAM,GAAG;IACP,MAAM,EAAE,MAAM,CAAC;IAEf,OAAO,EAAE,OAAO,CAAC;IAEjB,QAAQ,EAAE,UAAU,EAAE,CAAC;IAEvB,MAAM,CAAC,EAAE,MAAM,CAAC;gBAEJ,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,MAAM;IAS7D,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE;IAYxD,GAAG,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE;IAYlB,KAAK,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE;IAYpB,IAAI,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE;IAYnB,KAAK,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE;CAWrB;AAID,eAAO,MAAM,OAAO,WAAY,MAAM,oEAIrC,CAAC;AAEF,eAAO,MAAM,SAAS,yCAIrB,CAAC;AAEF,eAAO,MAAM,gBAAgB,WAAY,MAAM,SAI9C,CAAC;AAEF,eAAO,MAAM,iBAAiB,WAAY,MAAM,WAAW,OAAO,SAIjE,CAAC;AAEF,eAAO,MAAM,MAAM,oBAOlB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@onekeyfe/hd-shared",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.14",
|
|
4
4
|
"description": "Hardware SDK's shared tool library",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"Hardware-SDK",
|
|
@@ -25,5 +25,5 @@
|
|
|
25
25
|
"lint": "eslint .",
|
|
26
26
|
"lint:fix": "eslint . --fix"
|
|
27
27
|
},
|
|
28
|
-
"gitHead": "
|
|
28
|
+
"gitHead": "216fee1795067013da0d68f4fc25f583509bb509"
|
|
29
29
|
}
|
package/src/HardwareError.ts
CHANGED
|
@@ -198,6 +198,21 @@ export const HardwareErrorCode = {
|
|
|
198
198
|
* Firmware installation failed
|
|
199
199
|
*/
|
|
200
200
|
FirmwareError: 804,
|
|
201
|
+
|
|
202
|
+
/**
|
|
203
|
+
* transport response unexpect error
|
|
204
|
+
*/
|
|
205
|
+
ResponseUnexpectTypeError: 805,
|
|
206
|
+
|
|
207
|
+
/**
|
|
208
|
+
* bridge network error
|
|
209
|
+
*/
|
|
210
|
+
BridgeNetworkError: 806,
|
|
211
|
+
|
|
212
|
+
/**
|
|
213
|
+
* Bridge network timeout
|
|
214
|
+
*/
|
|
215
|
+
BridgeTimeoutError: 807,
|
|
201
216
|
} as const;
|
|
202
217
|
|
|
203
218
|
export const HardwareErrorCodeMessage: HardwareErrorCodeMessageMapping = {
|
|
@@ -271,6 +286,9 @@ export const HardwareErrorCodeMessage: HardwareErrorCodeMessageMapping = {
|
|
|
271
286
|
[HardwareErrorCode.PinCancelled]: 'Pin cancelled',
|
|
272
287
|
[HardwareErrorCode.ActionCancelled]: 'Action cancelled by user',
|
|
273
288
|
[HardwareErrorCode.FirmwareError]: 'Firmware installation failed',
|
|
289
|
+
[HardwareErrorCode.ResponseUnexpectTypeError]: 'Response type is not expected',
|
|
290
|
+
[HardwareErrorCode.BridgeNetworkError]: 'Bridge network error',
|
|
291
|
+
[HardwareErrorCode.BridgeTimeoutError]: 'Bridge network timeout',
|
|
274
292
|
} as const;
|
|
275
293
|
|
|
276
294
|
export const TypedError = (hardwareError: ErrorCodeUnion | string, message?: string) => {
|
|
@@ -289,3 +307,12 @@ export const serializeError = (payload: any) => {
|
|
|
289
307
|
}
|
|
290
308
|
return payload;
|
|
291
309
|
};
|
|
310
|
+
|
|
311
|
+
export const CreateErrorByMessage = (message: string): HardwareError => {
|
|
312
|
+
for (const code of Object.values(HardwareErrorCode)) {
|
|
313
|
+
if (HardwareErrorCodeMessage[code] === message) {
|
|
314
|
+
return TypedError(code);
|
|
315
|
+
}
|
|
316
|
+
}
|
|
317
|
+
return new HardwareError(message);
|
|
318
|
+
};
|
package/src/index.ts
CHANGED
package/src/logger.ts
ADDED
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
type LogMessage = {
|
|
2
|
+
level: string;
|
|
3
|
+
prefix: string;
|
|
4
|
+
message: any[];
|
|
5
|
+
timestamp: number;
|
|
6
|
+
};
|
|
7
|
+
|
|
8
|
+
type LoggerFn = (...data: any[]) => void;
|
|
9
|
+
type LoggerMoreParams = (message?: any, ...optionalParams: any[]) => void;
|
|
10
|
+
|
|
11
|
+
type Logger = {
|
|
12
|
+
debug: LoggerFn | LoggerMoreParams;
|
|
13
|
+
info: LoggerFn | LoggerMoreParams;
|
|
14
|
+
warn: LoggerFn | LoggerMoreParams;
|
|
15
|
+
error: LoggerFn | LoggerMoreParams;
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
const MAX_ENTRIES = 100;
|
|
19
|
+
|
|
20
|
+
class Log {
|
|
21
|
+
prefix: string;
|
|
22
|
+
|
|
23
|
+
enabled: boolean;
|
|
24
|
+
|
|
25
|
+
messages: LogMessage[];
|
|
26
|
+
|
|
27
|
+
logger?: Logger;
|
|
28
|
+
|
|
29
|
+
constructor(prefix: string, enabled: boolean, logger?: Logger) {
|
|
30
|
+
this.prefix = prefix;
|
|
31
|
+
this.enabled = enabled;
|
|
32
|
+
this.messages = [];
|
|
33
|
+
if (logger) {
|
|
34
|
+
this.logger = logger;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
addMessage(level: string, prefix: string, ...args: any[]) {
|
|
39
|
+
this.messages.push({
|
|
40
|
+
level,
|
|
41
|
+
prefix,
|
|
42
|
+
message: args,
|
|
43
|
+
timestamp: new Date().getTime(),
|
|
44
|
+
});
|
|
45
|
+
if (this.messages.length > MAX_ENTRIES) {
|
|
46
|
+
this.messages.shift();
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
log(...args: any[]) {
|
|
51
|
+
this.addMessage('log', this.prefix, ...args);
|
|
52
|
+
if (!this.enabled) {
|
|
53
|
+
return;
|
|
54
|
+
}
|
|
55
|
+
if (this.logger) {
|
|
56
|
+
this.logger.info(this.prefix, ...args);
|
|
57
|
+
} else {
|
|
58
|
+
console.log(this.prefix, ...args);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
error(...args: any[]) {
|
|
63
|
+
this.addMessage('error', this.prefix, ...args);
|
|
64
|
+
if (!this.enabled) {
|
|
65
|
+
return;
|
|
66
|
+
}
|
|
67
|
+
if (this.logger) {
|
|
68
|
+
this.logger.error(this.prefix, ...args);
|
|
69
|
+
} else {
|
|
70
|
+
console.error(this.prefix, ...args);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
warn(...args: any[]) {
|
|
75
|
+
this.addMessage('warn', this.prefix, ...args);
|
|
76
|
+
if (!this.enabled) {
|
|
77
|
+
return;
|
|
78
|
+
}
|
|
79
|
+
if (this.logger) {
|
|
80
|
+
this.logger.warn(this.prefix, ...args);
|
|
81
|
+
} else {
|
|
82
|
+
console.warn(this.prefix, ...args);
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
debug(...args: any[]) {
|
|
87
|
+
this.addMessage('debug', this.prefix, ...args);
|
|
88
|
+
if (!this.enabled) {
|
|
89
|
+
return;
|
|
90
|
+
}
|
|
91
|
+
if (this.logger) {
|
|
92
|
+
this.logger.debug(this.prefix, ...args);
|
|
93
|
+
} else {
|
|
94
|
+
console.log(this.prefix, ...args);
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
const _logs: { [k: string]: Log } = {};
|
|
100
|
+
|
|
101
|
+
export const initLog = (prefix: string, enabled?: boolean, logger?: Logger) => {
|
|
102
|
+
const instance = new Log(prefix, !!enabled, logger);
|
|
103
|
+
_logs[prefix] = instance;
|
|
104
|
+
return instance;
|
|
105
|
+
};
|
|
106
|
+
|
|
107
|
+
export const enableLog = (enabled?: boolean) => {
|
|
108
|
+
Object.keys(_logs).forEach(key => {
|
|
109
|
+
_logs[key].enabled = !!enabled;
|
|
110
|
+
});
|
|
111
|
+
};
|
|
112
|
+
|
|
113
|
+
export const setOutsideLogger = (logger: Logger) => {
|
|
114
|
+
Object.keys(_logs).forEach(key => {
|
|
115
|
+
_logs[key].logger = logger;
|
|
116
|
+
});
|
|
117
|
+
};
|
|
118
|
+
|
|
119
|
+
export const enableLogByPrefix = (prefix: string, enabled: boolean) => {
|
|
120
|
+
if (_logs[prefix]) {
|
|
121
|
+
_logs[prefix].enabled = enabled;
|
|
122
|
+
}
|
|
123
|
+
};
|
|
124
|
+
|
|
125
|
+
export const getLog = () => {
|
|
126
|
+
let logs: LogMessage[] = [];
|
|
127
|
+
Object.keys(_logs).forEach(key => {
|
|
128
|
+
logs = logs.concat(_logs[key].messages);
|
|
129
|
+
});
|
|
130
|
+
logs.sort((a, b) => a.timestamp - b.timestamp);
|
|
131
|
+
return logs;
|
|
132
|
+
};
|