UNPKG

node-hue-api

Version:
56 lines (55 loc) 1.69 kB
import * as bridgeValidator from './bridge-validation'; import { nupnp } from './nupnp'; import { mDNSSearch } from './mDNS'; export function mdnsSearch(timeout) { const mDNSearch = new mDNSSearch(); return mDNSearch.search(timeout) .then((data) => { return loadDescriptions(data); }); } export function nupnpSearch() { return nupnp().then(loadConfigurations); } export function description(ipAddress) { if (!ipAddress) { return Promise.resolve(undefined); } return loadDescriptions([{ internalipaddress: ipAddress }]) .then((results) => { return results[0]; }); } function loadDescriptions(results) { const promises = results.map(result => { return bridgeValidator.getBridgeDescription(result); }); return Promise.all(promises); } function loadConfigurations(results) { const promises = results.map(result => { return bridgeValidator .getBridgeConfig(result) .then(config => { return { ipaddress: config.ipaddress, config: config }; }) .catch(err => { const error = { error: { message: err.message, description: `Failed to connect and load configuration from the bridge at ip address ${result.internalipaddress}`, ipaddress: result.internalipaddress, id: result.id, } }; return { ipaddress: result.internalipaddress, error: error }; }); }); return Promise.all(promises); }