From 71c47eedaf0af3cbc7019497de2ac75dc1e176ed Mon Sep 17 00:00:00 2001 From: Josh Date: Wed, 2 Oct 2019 18:47:08 +0000 Subject: [PATCH] add type definitions for @ledgerhq/hw-transport-webusb (#38795) --- .../ledgerhq__hw-transport-webusb/index.d.ts | 21 +++++++++++++++++ .../ledgerhq__hw-transport-webusb-tests.ts | 23 +++++++++++++++++++ .../tsconfig.json | 20 ++++++++++++++++ .../ledgerhq__hw-transport-webusb/tslint.json | 3 +++ 4 files changed, 67 insertions(+) create mode 100644 types/ledgerhq__hw-transport-webusb/index.d.ts create mode 100644 types/ledgerhq__hw-transport-webusb/ledgerhq__hw-transport-webusb-tests.ts create mode 100644 types/ledgerhq__hw-transport-webusb/tsconfig.json create mode 100644 types/ledgerhq__hw-transport-webusb/tslint.json diff --git a/types/ledgerhq__hw-transport-webusb/index.d.ts b/types/ledgerhq__hw-transport-webusb/index.d.ts new file mode 100644 index 0000000000..adb99ab575 --- /dev/null +++ b/types/ledgerhq__hw-transport-webusb/index.d.ts @@ -0,0 +1,21 @@ +// Type definitions for @ledgerhq/hw-transport-webusb 4.70 +// Project: https://github.com/LedgerHQ/ledgerjs/tree/master/packages/hw-transport-webusb, https://github.com/ledgerhq/ledgerjs +// Definitions by: Joshua +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped +// TypeScript Version: 2.3 + +/// +import Transport, { DescriptorEvent, Observer, Subscription } from '@ledgerhq/hw-transport'; + +declare class TransportWebUSB extends Transport { + constructor(device: string); + + static listen(observer: Observer>): Subscription; + + static request(): Promise; + static openConnection(): Promise; + + static open(device: string): Promise; +} + +export default TransportWebUSB; diff --git a/types/ledgerhq__hw-transport-webusb/ledgerhq__hw-transport-webusb-tests.ts b/types/ledgerhq__hw-transport-webusb/ledgerhq__hw-transport-webusb-tests.ts new file mode 100644 index 0000000000..2f5033d030 --- /dev/null +++ b/types/ledgerhq__hw-transport-webusb/ledgerhq__hw-transport-webusb-tests.ts @@ -0,0 +1,23 @@ +import TransportWebUSB from '@ledgerhq/hw-transport-webusb'; + +// $ExpectType Promise +TransportWebUSB.isSupported(); +// $ExpectType Promise> +TransportWebUSB.list(); +// $ExpectType Promise +TransportWebUSB.request(); +// $ExpectType Promise +TransportWebUSB.open('test'); +// $ExpectType Promise +TransportWebUSB.openConnection(); + +const test = TransportWebUSB.open('test').then(transport => { + // $ExpectType void + transport.setScrambleKey('BTC'); + + // $ExpectType Promise + transport.exchange(Buffer.from('test', 'hex')); + + // $ExpectType Promise + transport.close(); +}); diff --git a/types/ledgerhq__hw-transport-webusb/tsconfig.json b/types/ledgerhq__hw-transport-webusb/tsconfig.json new file mode 100644 index 0000000000..5c0aa57730 --- /dev/null +++ b/types/ledgerhq__hw-transport-webusb/tsconfig.json @@ -0,0 +1,20 @@ +{ + "compilerOptions": { + "module": "commonjs", + "lib": ["es6"], + "noImplicitAny": true, + "noImplicitThis": true, + "strictNullChecks": true, + "strictFunctionTypes": true, + "baseUrl": "../", + "typeRoots": ["../"], + "types": [], + "noEmit": true, + "forceConsistentCasingInFileNames": true, + "paths": { + "@ledgerhq/hw-transport": ["ledgerhq__hw-transport"], + "@ledgerhq/hw-transport-webusb": ["ledgerhq__hw-transport-webusb"] + } + }, + "files": ["index.d.ts", "ledgerhq__hw-transport-webusb-tests.ts"] +} diff --git a/types/ledgerhq__hw-transport-webusb/tslint.json b/types/ledgerhq__hw-transport-webusb/tslint.json new file mode 100644 index 0000000000..f93cf8562a --- /dev/null +++ b/types/ledgerhq__hw-transport-webusb/tslint.json @@ -0,0 +1,3 @@ +{ + "extends": "dtslint/dt.json" +}