migrado de js para go
This commit is contained in:
parent
663a8d5bf2
commit
6f78511946
7 changed files with 964 additions and 83 deletions
32
README.md
32
README.md
|
|
@ -27,6 +27,38 @@ O servidor controla o cache de `/static/e-li.nps.js` via **ETag**.
|
|||
|
||||
Isso evita problemas de clientes com JS antigo em cache após mudanças.
|
||||
|
||||
### WebAssembly (WASM) — regras do widget em Go
|
||||
|
||||
O widget `e-li.nps.js` carrega um módulo WASM compilado em Go, para concentrar
|
||||
as regras de negócio do cliente (pré-validações, cooldown e decisão de abertura
|
||||
com base na resposta do backend).
|
||||
|
||||
Arquivos servidos:
|
||||
|
||||
- `/static/e-li.nps.js` (arquivo único do widget)
|
||||
- `/static/e-li.nps.wasm` (módulo WASM)
|
||||
- `/static/wasm_exec.js` (runtime do Go para WASM)
|
||||
|
||||
Regras importantes:
|
||||
|
||||
- **Fail-closed**: se o WASM não carregar, o widget não abre.
|
||||
- Cache é controlado por **ETag** e o browser sempre **revalida**.
|
||||
- O backend Go continua sendo a **autoridade** das regras e persistência.
|
||||
|
||||
#### Build local do WASM
|
||||
|
||||
Para (re)gerar os arquivos do WASM localmente:
|
||||
|
||||
```bash
|
||||
# gera o módulo WASM
|
||||
GOOS=js GOARCH=wasm go build -o web/static/e-li.nps.wasm ./cmd/widgetwasm
|
||||
|
||||
# copia o runtime JS do Go para WASM
|
||||
cp "$(go env GOROOT)/lib/wasm/wasm_exec.js" web/static/wasm_exec.js
|
||||
```
|
||||
|
||||
> Observação: no build via Docker, esses passos já são executados no `Dockerfile`.
|
||||
|
||||
### Arquivo `.env`
|
||||
|
||||
O servidor carrega automaticamente um arquivo `.env` na raiz do projeto (se existir) usando `godotenv`.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue