Small Bree based job runner + gui
Você não pode selecionar mais de 25 tópicos Os tópicos devem começar com uma letra ou um número, podem incluir traços ('-') e podem ter até 35 caracteres.

123456789101112131415161718192021222324252627282930313233343536
  1. class Scanner {
  2. constructor({ controllers }) {
  3. this._controllers = controllers
  4. }
  5. get _controllersByType() {
  6. return this._controllers.reduce((byType, controller)=> {
  7. const type = controller.type
  8. if(byType[type].length < 1) byType[type] = []
  9. byType[type].push(controller)
  10. return byType
  11. }, {})
  12. }
  13. /**
  14. * Example: only temp controllers in range?
  15. * const tempControlsOK = allInRange('temp')
  16. *
  17. * Example: every controller in range?
  18. * const everythingOK = allInRange()
  19. */
  20. allInRange(type) {
  21. const all = type ? this._controllersByType[type] : this._controllers
  22. return all.every(controller => controller.inRange === true)
  23. }
  24. readAll() {
  25. const completeReadout = {}
  26. this._controllers.forEach(controller => {
  27. const readout = controller.readout()
  28. completeReadout[readout.from] = readout
  29. })
  30. return completeReadout
  31. }
  32. }
  33. module.exports = {
  34. Scanner
  35. }