@ledgerhq/hw-transport
Advanced tools
Comparing version 2.2.0-beta.9d29a5c6 to 2.2.0
@@ -8,2 +8,6 @@ "use strict"; | ||
var _promise = require("babel-runtime/core-js/promise"); | ||
var _promise2 = _interopRequireDefault(_promise); | ||
var _toConsumableArray2 = require("babel-runtime/helpers/toConsumableArray"); | ||
@@ -179,2 +183,7 @@ | ||
/** | ||
* Statically check if a transport is supported on the user's platform/browser. | ||
*/ | ||
/** | ||
* List once all available descriptors. For a better granularity, checkout `listen()`. | ||
@@ -301,51 +310,42 @@ * @return a promise of descriptors | ||
/** | ||
* create() allows to open the first descriptor available or throw if there is none. | ||
* **DEPRECATED**: use `list()` or `listen()` and `open()` instead. | ||
* create() allows to open the first descriptor available or | ||
* throw if there is none or if timeout is reached. | ||
* This is a light helper, alternative to using listen() and open() (that you may need for any more advanced usecase) | ||
* @example | ||
TransportFoo.create().then(transport => ...) | ||
*/ | ||
value: function () { | ||
var _ref2 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee2(timeout) { | ||
var debug = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; | ||
var descriptors, transport; | ||
return _regenerator2.default.wrap(function _callee2$(_context2) { | ||
while (1) { | ||
switch (_context2.prev = _context2.next) { | ||
case 0: | ||
console.warn(this.name + ".create is deprecated. Please use .list()/.listen() and .open() instead"); | ||
_context2.next = 3; | ||
return this.list(); | ||
value: function create() { | ||
var _this2 = this; | ||
case 3: | ||
descriptors = _context2.sent; | ||
var timeout = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 5000; | ||
if (!(descriptors.length === 0)) { | ||
_context2.next = 6; | ||
break; | ||
} | ||
throw new TransportError("No device found", "NoDeviceFound"); | ||
case 6: | ||
_context2.next = 8; | ||
return this.open(descriptors[0], timeout); | ||
case 8: | ||
transport = _context2.sent; | ||
transport.setDebugMode(debug); | ||
return _context2.abrupt("return", transport); | ||
case 11: | ||
case "end": | ||
return _context2.stop(); | ||
if (arguments.length > 1) { | ||
console.warn(this.name + ".create: second parameter 'debugMode' has been dropped. instead, please use transport.setDebugMode(debug)"); | ||
} | ||
return new _promise2.default(function (resolve, reject) { | ||
var found = false; | ||
var timeoutId = setTimeout(function () { | ||
sub.unsubscribe(); | ||
reject(new TransportError("Transport timeout", "timeout")); | ||
}, timeout); | ||
var sub = _this2.listen({ | ||
next: function next(e) { | ||
found = true; | ||
sub.unsubscribe(); | ||
clearTimeout(timeoutId); | ||
_this2.open(e.descriptor, timeout).then(resolve, reject); | ||
}, | ||
error: function error(e) { | ||
clearTimeout(timeoutId); | ||
reject(e); | ||
}, | ||
complete: function complete() { | ||
clearTimeout(timeoutId); | ||
if (!found) { | ||
reject(new TransportError("No device found", "NoDeviceFound")); | ||
} | ||
} | ||
}, _callee2, this); | ||
})); | ||
function create(_x7) { | ||
return _ref2.apply(this, arguments); | ||
} | ||
return create; | ||
}() | ||
}); | ||
}); | ||
} | ||
}]); | ||
@@ -352,0 +352,0 @@ return Transport; |
{ | ||
"name": "@ledgerhq/hw-transport", | ||
"version": "2.2.0-beta.9d29a5c6", | ||
"version": "2.2.0", | ||
"description": "Ledger Hardware Wallet common interface of the communication layer", | ||
@@ -5,0 +5,0 @@ "keywords": [ |
@@ -96,2 +96,7 @@ //@flow | ||
/** | ||
* Statically check if a transport is supported on the user's platform/browser. | ||
*/ | ||
static +isSupported: () => Promise<boolean>; | ||
/** | ||
* List once all available descriptors. For a better granularity, checkout `listen()`. | ||
@@ -231,21 +236,41 @@ * @return a promise of descriptors | ||
/** | ||
* create() allows to open the first descriptor available or throw if there is none. | ||
* **DEPRECATED**: use `list()` or `listen()` and `open()` instead. | ||
* create() allows to open the first descriptor available or | ||
* throw if there is none or if timeout is reached. | ||
* This is a light helper, alternative to using listen() and open() (that you may need for any more advanced usecase) | ||
* @example | ||
TransportFoo.create().then(transport => ...) | ||
*/ | ||
static async create( | ||
timeout?: number, | ||
debug?: boolean = false | ||
): Promise<Transport<Descriptor>> { | ||
console.warn( | ||
this.name + | ||
".create is deprecated. Please use .list()/.listen() and .open() instead" | ||
); | ||
const descriptors = await this.list(); | ||
if (descriptors.length === 0) { | ||
throw new TransportError("No device found", "NoDeviceFound"); | ||
static create(timeout?: number = 5000): Promise<Transport<Descriptor>> { | ||
if (arguments.length > 1) { | ||
console.warn( | ||
this.name + | ||
".create: second parameter 'debugMode' has been dropped. instead, please use transport.setDebugMode(debug)" | ||
); | ||
} | ||
const transport = await this.open(descriptors[0], timeout); | ||
transport.setDebugMode(debug); | ||
return transport; | ||
return new Promise((resolve, reject) => { | ||
let found = false; | ||
const timeoutId = setTimeout(() => { | ||
sub.unsubscribe(); | ||
reject(new TransportError("Transport timeout", "timeout")); | ||
}, timeout); | ||
const sub = this.listen({ | ||
next: e => { | ||
found = true; | ||
sub.unsubscribe(); | ||
clearTimeout(timeoutId); | ||
this.open(e.descriptor, timeout).then(resolve, reject); | ||
}, | ||
error: e => { | ||
clearTimeout(timeoutId); | ||
reject(e); | ||
}, | ||
complete: () => { | ||
clearTimeout(timeoutId); | ||
if (!found) { | ||
reject(new TransportError("No device found", "NoDeviceFound")); | ||
} | ||
} | ||
}); | ||
}); | ||
} | ||
} |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
New author
Supply chain riskA new npm collaborator published a version of the package for the first time. New collaborators are usually benign additions to a project, but do indicate a change to the security surface area of a package.
Found 1 instance in 1 package
No v1
QualityPackage is not semver >=1. This means it is not stable and does not support ^ ranges.
Found 1 instance in 1 package
49653
833
0
0