Início rápido: seu primeiro script
Um script é um arquivo com uma função main. O Waiso chama o main, passa os valores do cartão Entradas e mostra o que ele retornar. Nesta lição você escreve o daily-report — ele resume três notas — e roda pelo editor.
- Criar um script e escolher a linguagem
- Escrever o
maincom uma entrada que tem valor padrão - Rodar e mudar a entrada sem mexer no código
Como um script roda
O editor tem três partes que importam hoje: o código no meio, o cartão Entradas ao lado e o painel abaixo do código com Saída, Logs e Problemas. O Waiso lê os parâmetros do main enquanto você digita e transforma cada um num campo do cartão Entradas, com o tipo da anotação ou do valor padrão.
1def main(name: str = "world"):2 print(f"saying hello to {name}")3 return {"message": f"Hello, {name}!"}{
"message": "Hello, world!"
}Clicar em Rodar envia o código do editor e os valores das entradas para um worker. Ele roda exatamente o que você vê — salvo ou não — então dá para testar uma mudança antes de guardá-la.
Escreva e rode o daily-report
- Crie o script
No projeto
daily-report, abra Code, clique em + Novo e escolha Script. Digitedaily-reportem Nome do script, escolha TypeScript (ou qualquer linguagem abaixo) e clique em Criar script. O editor abre com um exemplo Hello, World. - Troque o código inicial
Cole o código abaixo da sua linguagem. Enquanto você digita, o cartão Entradas ganha um campo
passingcom80— o padrão do código. - Rode
Clique em Rodar (ou Ctrl+Enter). O painel mostra a execução indo de na fila a rodando a concluída, e depois o resultado em Saída. Clique em Salvar (Ctrl+S) para guardar o código.
export async function main(passing: number = 80) {
const scores = [85, 92, 78]
const total = scores.length
const average = scores.reduce((sum, s) => sum + s, 0) / total
const passed = scores.filter((s) => s >= passing).length
console.log(`${total} scores, ${passed} passed`)
return { total, average, passed }
}{
"total": 3,
"average": 85,
"passed": 2
}O ponto de entrada em cada linguagem
| Linguagem | Ponto de entrada | Entradas | Resultado |
|---|---|---|---|
| Python | def main(...) | Parâmetros com type hints e padrões | return de qualquer valor que vire JSON |
| TypeScript / JavaScript | export async function main(...) | Parâmetros com tipos (TS) ou padrões | return de qualquer valor que vire JSON |
| C / C++ | int main(int argc, char *argv[]) | Comentários // @param nome tipo = padrão, lidos com waiso_arg_* / waiso::arg* | waiso_set_result(json) / waiso::setResult(json) |
Mude a entrada, não o código
Digite 90 no campo passing e rode de novo: passed cai para 1. É esse mesmo campo que um agendamento, um passo de flow ou uma chamada de API preenchem depois — os parâmetros do main são o contrato público do script. Mais sobre tipos, listas e datas em Entradas do script.
Quando não roda
- Ele lança um erro. A Saída vira um bloco de erro com a mensagem e os frames do seu código; clique num frame para ir à linha. Veja Erros de script.
- Rodar está desativado. Falta uma entrada obrigatória — todo parâmetro sem padrão precisa ser preenchido antes.
- Fica na fila. Nenhum worker está online para o projeto; confira Workers.