From d6cec917ee62b301ef6e7cc07cd0008937a1819f Mon Sep 17 00:00:00 2001 From: David Sanders Date: Tue, 18 Dec 2018 08:13:19 -0700 Subject: [PATCH 1/2] Update type for transfer errors --- types/usb/index.d.ts | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/types/usb/index.d.ts b/types/usb/index.d.ts index 6a4ea4d329..9259317c8d 100644 --- a/types/usb/index.d.ts +++ b/types/usb/index.d.ts @@ -8,6 +8,10 @@ import { EventEmitter } from "events"; +export class libusbException extends Error { + errno: number; +} + export class Device { timeout: number; busNumber: number; @@ -25,7 +29,7 @@ export class Device { open(defaultConfig?: boolean): void; close(): void; interface(addr: number): Interface; - controlTransfer(bmRequestType: number, bRequest: number, wValue: number, wIndex: number, data_or_length: any, callback: (error?: string, buf?: Buffer) => void): Device; + controlTransfer(bmRequestType: number, bRequest: number, wValue: number, wIndex: number, data_or_length: any, callback: (error?: libusbException, buf?: Buffer) => void): Device; getStringDescriptor(desc_index: number, callback: (error?: string, buf?: Buffer) => void): void; setConfiguration(desired: number, cb: (err?: string) => void): void; reset(callback: (err?: string) => void): void; @@ -104,7 +108,7 @@ export class InEndpoint extends EventEmitter implements Endpoint { timeout: number; descriptor: EndpointDescriptor; constructor(device: Device, descriptor: EndpointDescriptor); - transfer(length: number, callback: (error: string, data: Buffer) => void): InEndpoint; + transfer(length: number, callback: (error: libusbException, data: Buffer) => void): InEndpoint; startPoll(nTransfers?: number, transferSize?: number): void; stopPoll(cb?: () => void): void; } @@ -115,8 +119,8 @@ export class OutEndpoint extends EventEmitter implements Endpoint { timeout: number; descriptor: EndpointDescriptor; constructor(device: Device, descriptor: EndpointDescriptor); - transfer(buffer: Buffer, cb: (err?: string) => void): OutEndpoint; - transferWithZLP(buf: Buffer, cb: (err?: string) => void): void; + transfer(buffer: Buffer, cb: (err?: libusbException) => void): OutEndpoint; + transferWithZLP(buf: Buffer, cb: (err?: libusbException) => void): void; } export class EndpointDescriptor { From ec3affa0f637715c0e597d7010d9c8430b79d728 Mon Sep 17 00:00:00 2001 From: David Sanders Date: Tue, 18 Dec 2018 10:43:04 -0700 Subject: [PATCH 2/2] Fixes from review --- types/usb/index.d.ts | 10 +++++----- types/usb/usb-tests.ts | 8 ++++---- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/types/usb/index.d.ts b/types/usb/index.d.ts index 9259317c8d..2543f0b06e 100644 --- a/types/usb/index.d.ts +++ b/types/usb/index.d.ts @@ -8,7 +8,7 @@ import { EventEmitter } from "events"; -export class libusbException extends Error { +export class LibUSBException extends Error { errno: number; } @@ -29,7 +29,7 @@ export class Device { open(defaultConfig?: boolean): void; close(): void; interface(addr: number): Interface; - controlTransfer(bmRequestType: number, bRequest: number, wValue: number, wIndex: number, data_or_length: any, callback: (error?: libusbException, buf?: Buffer) => void): Device; + controlTransfer(bmRequestType: number, bRequest: number, wValue: number, wIndex: number, data_or_length: any, callback: (error?: LibUSBException, buf?: Buffer) => void): Device; getStringDescriptor(desc_index: number, callback: (error?: string, buf?: Buffer) => void): void; setConfiguration(desired: number, cb: (err?: string) => void): void; reset(callback: (err?: string) => void): void; @@ -108,7 +108,7 @@ export class InEndpoint extends EventEmitter implements Endpoint { timeout: number; descriptor: EndpointDescriptor; constructor(device: Device, descriptor: EndpointDescriptor); - transfer(length: number, callback: (error: libusbException, data: Buffer) => void): InEndpoint; + transfer(length: number, callback: (error: LibUSBException, data: Buffer) => void): InEndpoint; startPoll(nTransfers?: number, transferSize?: number): void; stopPoll(cb?: () => void): void; } @@ -119,8 +119,8 @@ export class OutEndpoint extends EventEmitter implements Endpoint { timeout: number; descriptor: EndpointDescriptor; constructor(device: Device, descriptor: EndpointDescriptor); - transfer(buffer: Buffer, cb: (err?: libusbException) => void): OutEndpoint; - transferWithZLP(buf: Buffer, cb: (err?: libusbException) => void): void; + transfer(buffer: Buffer, cb: (err?: LibUSBException) => void): OutEndpoint; + transferWithZLP(buf: Buffer, cb: (err?: LibUSBException) => void): void; } export class EndpointDescriptor { diff --git a/types/usb/usb-tests.ts b/types/usb/usb-tests.ts index 1fa6bf7cca..d4b36d16df 100644 --- a/types/usb/usb-tests.ts +++ b/types/usb/usb-tests.ts @@ -12,7 +12,7 @@ device.__claimInterface(0); device.open(true); device.close(); -const xferDevice: usb.Device = device.controlTransfer(1, 1, 1, 1, 1, (error: string, buf: Buffer): usb.Device => new usb.Device()); +const xferDevice: usb.Device = device.controlTransfer(1, 1, 1, 1, 1, (error: usb.LibUSBException, buf: Buffer): usb.Device => new usb.Device()); device.getStringDescriptor(1, (error: string, buf: Buffer) => null); device.setConfiguration(1, (error: string) => null); device.reset((error: string) => null); @@ -103,7 +103,7 @@ inEndpoint.direction = "in"; inEndpoint.transferType = 1; inEndpoint.timeout = 1; inEndpoint.descriptor = endpointDesc; -const xferInEndpoint: usb.InEndpoint = inEndpoint.transfer(1, (error: string, data: Buffer) => inEndpoint); +const xferInEndpoint: usb.InEndpoint = inEndpoint.transfer(1, (error: usb.LibUSBException, data: Buffer) => inEndpoint); inEndpoint.on("data", (data) => null); inEndpoint.startPoll(1, 1); inEndpoint.startPoll(1); @@ -117,8 +117,8 @@ outEndpoint.transferType = 1; outEndpoint.timeout = 1; outEndpoint.descriptor = endpointDesc; inEndpoint.on("error", (err) => null); -const xferOutEndpoint: usb.OutEndpoint = outEndpoint.transfer(new Buffer([]), (error: string) => null); -outEndpoint.transferWithZLP(new Buffer([]), (error: string) => null); +const xferOutEndpoint: usb.OutEndpoint = outEndpoint.transfer(new Buffer([]), (error: usb.LibUSBException) => null); +outEndpoint.transferWithZLP(new Buffer([]), (error: usb.LibUSBException) => null); iface.endpoints = [inEndpoint, outEndpoint];