Parcourir la source

feat(api): support unknown types for event emit payload, closes #2929 (#2964)

Lucas Fernandes Nogueira il y a 3 ans
Parent
commit
0600099696

+ 5 - 0
.changes/api-emit-payload-type.md

@@ -0,0 +1,5 @@
+---
+"api": patch
+---
+
+Event `emit` now automatically serialize non-string types.

Fichier diff supprimé car celui-ci est trop grand
+ 0 - 0
core/tauri/scripts/bundle.js


+ 2 - 2
tooling/api/src/event.ts

@@ -109,8 +109,8 @@ async function once<T>(
  * @param [payload] Event payload
  * @returns
  */
-async function emit(event: string, payload?: string): Promise<void> {
-  return emitEvent(event, undefined, payload)
+async function emit(event: string, payload?: unknown): Promise<void> {
+  return emitEvent(event, null, payload)
 }
 
 export type { Event, EventName, EventCallback, UnlistenFn }

+ 3 - 3
tooling/api/src/helpers/event.ts

@@ -15,8 +15,8 @@ import { invokeTauriCommand } from './tauri'
  */
 async function emit(
   event: string,
-  windowLabel: WindowLabel,
-  payload?: string
+  windowLabel: WindowLabel | null,
+  payload?: unknown
 ): Promise<void> {
   await invokeTauriCommand({
     __tauriModule: 'Event',
@@ -24,7 +24,7 @@ async function emit(
       cmd: 'emit',
       event,
       windowLabel,
-      payload
+      payload: typeof payload === 'string' ? payload : JSON.stringify(payload)
     }
   })
 }

+ 1 - 1
tooling/api/src/window.ts

@@ -283,7 +283,7 @@ class WebviewWindowHandle {
    * @param event Event name.
    * @param payload Event payload.
    */
-  async emit(event: string, payload?: string): Promise<void> {
+  async emit(event: string, payload?: unknown): Promise<void> {
     if (localTauriEvents.includes(event)) {
       // eslint-disable-next-line
       for (const handler of this.listeners[event] || []) {

Certains fichiers n'ont pas été affichés car il y a eu trop de fichiers modifiés dans ce diff