event.ts 668 B

123456789101112131415161718192021222324252627282930313233343536
  1. import { invoke, transformCallback } from './tauri'
  2. import { EventCallback } from './types/event'
  3. /**
  4. * listen to an event from the backend
  5. *
  6. * @param event the event name
  7. * @param handler the event handler callback
  8. */
  9. function listen<T>(event: string, handler: EventCallback<T>, once = false): void {
  10. invoke({
  11. cmd: 'listen',
  12. event,
  13. handler: transformCallback(handler, once),
  14. once
  15. })
  16. }
  17. /**
  18. * emits an event to the backend
  19. *
  20. * @param event the event name
  21. * @param [payload] the event payload
  22. */
  23. function emit(event: string, payload?: string): void {
  24. invoke({
  25. cmd: 'emit',
  26. event,
  27. payload
  28. })
  29. }
  30. export {
  31. listen,
  32. emit
  33. }