UNPKG

rxpoweredup

Version:

A Typescript RxJS-based library for controlling LEGO Powered UP hubs & peripherals.

18 lines (17 loc) 898 B
import { last, switchMap } from 'rxjs'; import { WELL_KNOWN_PORT_MODE_IDS } from '../../constants'; export class RgbLightFeature { messenger; ledCommandsFactory; portInputSetupMessageFactory; constructor(messenger, ledCommandsFactory, portInputSetupMessageFactory) { this.messenger = messenger; this.ledCommandsFactory = ledCommandsFactory; this.portInputSetupMessageFactory = portInputSetupMessageFactory; } setRgbColor(portId, color, modeId = WELL_KNOWN_PORT_MODE_IDS.rgbLightRgbColor) { const setPortModeMessage = this.portInputSetupMessageFactory.createMessage(portId, modeId, false); const message = this.ledCommandsFactory.createSetRgbColorCommand(portId, modeId, color); return this.messenger.sendWithoutResponse(setPortModeMessage).pipe(last(), switchMap(() => this.messenger.sendPortOutputCommand(message))); } }