* harmonize bus creation

* patch: rename web sub
This commit is contained in:
Peli de Halleux 2021-09-15 21:51:11 -07:00 коммит произвёл GitHub
Родитель 7006b34032
Коммит 8ad90cd2f3
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: 4AEE18F83AFDEB23
5 изменённых файлов: 25 добавлений и 10 удалений

Просмотреть файл

@ -25,8 +25,8 @@ yarn add jacdac-ts
then import components as needed using ES6 import syntax
```javascript
import { createUSBBus } from "jacdac-ts"
const jd = createUSBBus()
import { createWebBus } from "jacdac-ts"
const jd = createWebBus()
```
### CDN / UMD

Просмотреть файл

@ -54,6 +54,7 @@ export * from "./transport/usb"
export * from "./transport/webserial"
export * from "./transport/nodewebusb"
export * from "./transport/nodewebserialio"
export * from "./transport/createbus"
export * from "./error"
export * from "./rolemanager"
export * from "./filters/servicefilter"

Просмотреть файл

@ -0,0 +1,19 @@
import JDBus from "../bus"
import { createUSBTransport } from "./usb"
import { createWebSerialTransport } from "./webserial"
import { createBluetoothTransport } from "./bluetooth"
import { USBOptions } from "./usbio"
/**
* Creates a Jacdac bus using WebUSB, WebSerial or WebBluetooth
* @param options
* @returns
* @category Transport
*/
export function createWebBus(options?: { usbOptions?: USBOptions }) {
return new JDBus([
createUSBTransport(options?.usbOptions),
createWebSerialTransport(),
createBluetoothTransport(),
])
}

Просмотреть файл

@ -5,7 +5,6 @@ import Transport from "./transport"
import JDBus from "../bus"
import Proto from "./proto"
import WebSerialIO from "./webserialio"
import { createUSBTransport } from "./usb"
import { HF2_IO } from "./hf2"
export function isWebSerialEnabled(): boolean {
@ -59,7 +58,7 @@ class WebSerialTransport extends Transport {
export function createWebSerialTransport(
mkTransport: () => HF2_IO = () => new WebSerialIO()
): Transport {
return new WebSerialTransport(mkTransport)
return isWebSerialSupported() && new WebSerialTransport(mkTransport)
}
/**
@ -69,7 +68,3 @@ export function createWebSerialTransport(
export function createWebSerialBus() {
return new JDBus([createWebSerialTransport()])
}
export function createAnyUSBBus() {
return new JDBus([createUSBTransport(), createWebSerialTransport()])
}

Просмотреть файл

@ -5,7 +5,7 @@ import {
} from "../jdom/constants"
import { JDDevice } from "../jdom/device"
import { isSensor, serviceSpecifications } from "../jdom/spec"
import { createAnyUSBBus } from "../jdom/transport/webserial"
import { createWebBus } from "../jdom/transport/createbus"
import { toMap } from "../jdom/utils"
// p5 registration
@ -20,7 +20,7 @@ const sensorSpecs = serviceSpecifications().filter(
/**
* The Jacdac bus
*/
export const bus = createAnyUSBBus()
export const bus = createWebBus()
// ensure that the bus queries those services
bus.on(DEVICE_ANNOUNCE, (dev: JDDevice) =>