123456789101112131415161718192021222324252627282930313233343536373839404142 |
- import { invoke, transformCallback } from './tauri'
- export interface Event<T> {
- type: string
- payload: T
- }
- export type EventCallback<T> = (event: Event<T>) => void
- /**
- * listen to an event from the backend
- *
- * @param event the event name
- * @param handler the event handler callback
- */
- function listen<T>(event: string, handler: EventCallback<T>, once = false): void {
- invoke({
- cmd: 'listen',
- event,
- handler: transformCallback(handler, once),
- once
- })
- }
- /**
- * emits an event to the backend
- *
- * @param event the event name
- * @param [payload] the event payload
- */
- function emit(event: string, payload?: string): void {
- invoke({
- cmd: 'emit',
- event,
- payload
- })
- }
- export {
- listen,
- emit
- }
|