@@ -309,7 +309,42 @@ CommandsRegistry.registerCommand('_workbench.getRecentlyOpened', async function
309
309
} ) ;
310
310
311
311
if ( isWeb ) {
312
- CommandsRegistry . registerCommand ( 'workbench.experimental.requestUsbDevice' , async ( _accessor : ServicesAccessor ) : Promise < void > => {
313
- await ( navigator as any ) . usb . requestDevice ( { filters : [ ] } ) ;
312
+ interface UsbDeviceData {
313
+ readonly deviceClass : number ;
314
+ readonly deviceProtocol : number ;
315
+ readonly deviceSubclass : number ;
316
+ readonly deviceVersionMajor : number ;
317
+ readonly deviceVersionMinor : number ;
318
+ readonly deviceVersionSubminor : number ;
319
+ readonly manufacturerName ?: string ;
320
+ readonly productId : number ;
321
+ readonly productName ?: string ;
322
+ readonly serialNumber ?: string ;
323
+ readonly usbVersionMajor : number ;
324
+ readonly usbVersionMinor : number ;
325
+ readonly usbVersionSubminor : number ;
326
+ readonly vendorId : number ;
327
+ }
328
+ CommandsRegistry . registerCommand ( 'workbench.experimental.requestUsbDevice' , async ( _accessor : ServicesAccessor , options ?: { filters ?: unknown [ ] } ) : Promise < UsbDeviceData | undefined > => {
329
+ const device = await ( navigator as any ) . usb . requestDevice ( { filters : options ?. filters ?? [ ] } ) ;
330
+ if ( ! device ) {
331
+ return undefined ;
332
+ }
333
+ return {
334
+ deviceClass : device . deviceClass ,
335
+ deviceProtocol : device . deviceProtocol ,
336
+ deviceSubclass : device . deviceSubclass ,
337
+ deviceVersionMajor : device . deviceVersionMajor ,
338
+ deviceVersionMinor : device . deviceVersionMinor ,
339
+ deviceVersionSubminor : device . deviceVersionSubminor ,
340
+ manufacturerName : device . manufacturerName ,
341
+ productId : device . productId ,
342
+ productName : device . productName ,
343
+ serialNumber : device . serialNumber ,
344
+ usbVersionMajor : device . usbVersionMajor ,
345
+ usbVersionMinor : device . usbVersionMinor ,
346
+ usbVersionSubminor : device . usbVersionSubminor ,
347
+ vendorId : device . vendorId ,
348
+ } ;
314
349
} ) ;
315
350
}
0 commit comments