getUserHosts.js 770 B

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. /**
  2. * @author oldj
  3. * @blog https://oldj.net
  4. */
  5. 'use strict'
  6. const paths = require('../paths')
  7. const io = require('../io')
  8. const makeId = require('../../libs/make-id')
  9. module.exports = () => {
  10. let fn = paths.data_path
  11. return io.pReadFile(fn)
  12. .then(cnt => {
  13. let data
  14. try {
  15. data = JSON.parse(cnt)
  16. } catch (e) {
  17. console.log(e)
  18. data = {}
  19. }
  20. return data
  21. })
  22. .then(data => {
  23. if (!Array.isArray(data.list)) {
  24. data.list = []
  25. }
  26. return data.list
  27. })
  28. .then(list => {
  29. let ids = {}
  30. return list.map(item => {
  31. if (!item.id || ids.hasOwnProperty(item.id)) {
  32. item.id = makeId()
  33. }
  34. ids[item.id] = 1
  35. return item
  36. })
  37. })
  38. }