Renderer.js 988 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. /**
  2. * @author oldj
  3. * @blog https://oldj.net
  4. */
  5. 'use strict'
  6. const IS_DEV = process.env.ENV === 'dev'
  7. //const SH_event = require('./ui/event').event
  8. //const SH_Agent = require('./ui/agent')
  9. const {ipcRenderer} = require('electron')
  10. const notifier = require('node-notifier')
  11. const platform = process.platform
  12. ipcRenderer.setMaxListeners(20)
  13. let x_get_idx = 0
  14. function act (action, data, callback) {
  15. let fn = ['_cb', (new Date()).getTime(), (x_get_idx++)].join('_')
  16. if (!callback && typeof data === 'function') {
  17. callback = data
  18. data = null
  19. }
  20. if (typeof callback === 'function') {
  21. ipcRenderer.once(fn, (e, d) => callback.apply(null, d))
  22. }
  23. console.log(fn)
  24. ipcRenderer.send('x', {
  25. action
  26. , data
  27. , callback: fn
  28. })
  29. }
  30. function pact (action, data) {
  31. return new Promise((resolve, reject) => act(action, data,
  32. (err, result) => err ? reject(err) : resolve(result)))
  33. }
  34. module.exports = {
  35. IS_DEV
  36. , notifier
  37. , platform
  38. , act
  39. , pact
  40. }