UNPKG

node-red-contrib-wled

Version:
31 lines (28 loc) 1.04 kB
const dnssd = require('dnssd2'); const fetch = require('node-fetch'); module.exports = (timeout = 4000) => { return new Promise((resolve, reject) => { const wleds = []; /* eslint-disable-next-line new-cap */ const browser = dnssd.Browser(dnssd.tcp('http')) .on('serviceUp', service => { fetch('http://' + service.addresses[0] + '/json') .then(res => res.json()) .then(data => { if (data && data.info && data.info.brand === 'WLED') { wleds.push({address: service.addresses[0], name: data.info.name, ver: data.info.ver}); } }) .catch(() => {}); }) .start(); setTimeout(() => { browser.stop(); if (wleds.length > 0) { resolve(wleds); } else { reject(new Error('no wled found')); } }, timeout); }); };