assetexec.js 1.5 KB

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