assetexec.js 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. const { AssetGuard } = require('./assetguard')
  2. process.env.NODE_TLS_REJECT_UNAUTHORIZED = '0'
  3. const tracker = new AssetGuard(process.argv[2], process.argv[3])
  4. console.log('AssetExec Started')
  5. // Temporary for debug purposes.
  6. process.on('unhandledRejection', r => console.log(r))
  7. tracker.on('validate', (data) => {
  8. process.send({context: 'validate', data})
  9. })
  10. tracker.on('progress', (data, acc, total) => {
  11. process.send({context: 'progress', data, value: acc, total, percent: parseInt((acc/total)*100)})
  12. })
  13. tracker.on('complete', (data, ...args) => {
  14. process.send({context: 'complete', data, args})
  15. })
  16. tracker.on('error', (data, error) => {
  17. process.send({context: 'error', data, error})
  18. })
  19. process.on('message', (msg) => {
  20. if(msg.task === 'execute'){
  21. const func = msg.function
  22. let nS = tracker[func]
  23. let iS = AssetGuard[func]
  24. if(typeof nS === 'function' || typeof iS === 'function'){
  25. const f = typeof nS === 'function' ? nS : iS
  26. const res = f.apply(f === nS ? tracker : null, msg.argsArr)
  27. if(res instanceof Promise){
  28. res.then((v) => {
  29. process.send({result: v, context: func})
  30. }).catch((err) => {
  31. process.send({result: err.message, context: func})
  32. })
  33. } else {
  34. process.send({result: res, context: func})
  35. }
  36. }
  37. }
  38. })
  39. process.on('disconnect', () => {
  40. console.log('AssetExec Disconnected')
  41. process.exit(0)
  42. })