assetexec.js 1.8 KB

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