UNPKG

sussudio

Version:

An unofficial VS Code Internal API

64 lines (63 loc) 2.21 kB
/*--------------------------------------------------------------------------------------------- * Copyright (c) Microsoft Corporation. All rights reserved. * Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ export async function requestUsbDevice(options) { const usb = navigator.usb; if (!usb) { return undefined; } const device = await usb.requestDevice({ filters: options?.filters ?? [] }); if (!device) { return undefined; } return { deviceClass: device.deviceClass, deviceProtocol: device.deviceProtocol, deviceSubclass: device.deviceSubclass, deviceVersionMajor: device.deviceVersionMajor, deviceVersionMinor: device.deviceVersionMinor, deviceVersionSubminor: device.deviceVersionSubminor, manufacturerName: device.manufacturerName, productId: device.productId, productName: device.productName, serialNumber: device.serialNumber, usbVersionMajor: device.usbVersionMajor, usbVersionMinor: device.usbVersionMinor, usbVersionSubminor: device.usbVersionSubminor, vendorId: device.vendorId, }; } export async function requestSerialPort(options) { const serial = navigator.serial; if (!serial) { return undefined; } const port = await serial.requestPort({ filters: options?.filters ?? [] }); if (!port) { return undefined; } const info = port.getInfo(); return { usbVendorId: info.usbVendorId, usbProductId: info.usbProductId }; } export async function requestHidDevice(options) { const hid = navigator.hid; if (!hid) { return undefined; } const devices = await hid.requestDevice({ filters: options?.filters ?? [] }); if (!devices.length) { return undefined; } const device = devices[0]; return { opened: device.opened, vendorId: device.vendorId, productId: device.productId, productName: device.productName, collections: device.collections }; }