---
name: wails_emit_event
kind: function
lang: go
domain: infra
version: "1.0.0"
purity: impure
signature: "WailsEmitEvent(ctx context.Context, eventName string, data interface{})"
description: "Emite eventos tipados de Go al frontend con timestamp automático. Incluye WailsEmitJSON para serialización explícita."
tags: [wails, event, emit, ipc, realtime, infra]
uses_functions: []
uses_types: []
returns: []
returns_optional: false
error_type: "error_go_core"
imports: [context, encoding/json, fmt, time, github.com/wailsapp/wails/v2/pkg/runtime]
params:
  - name: ctx
    desc: "context de Wails"
  - name: eventName
    desc: "nombre del evento a emitir (ej: price:update)"
  - name: data
    desc: "datos a serializar y enviar al frontend"
output: "void (sin valor de retorno, efecto es emitir el evento)"
tested: false
tests: []
test_file_path: ""
file_path: "functions/infra/wails_emit_event.go"
---

## Ejemplo

```go
// Emitir evento tipado
WailsEmitEvent(ctx, "price:update", PriceData{Symbol: "BTC", Price: 67500.0})

// El frontend lo recibe con useWailsEvent:
// useWailsEvent({ eventName: 'price:update', onEvent: (data) => ... })
```

## Notas

El evento llega al frontend como WailsEventPayload con `type`, `data` y `timestamp`. Complementa `use_wails_event` del lado TS. Requiere la dependencia `github.com/wailsapp/wails/v2` en el proyecto destino.
