fp-either-ref
Ajuda seu agente a lidar com erros de forma segura. É útil para gerenciar operações que podem falhar, tornando o código mais confiável.
O que ela faz
Esta ferramenta ajuda a lidar com erros em programas de computador de forma organizada. Ela permite que você saiba se algo deu certo (com um valor) ou deu errado (com uma mensagem de erro específica), sem que o programa pare de funcionar inesperadamente.
Quando usar
- ✓Quando você precisa verificar se um dado está correto antes de usá-lo.
- ✓Ao realizar uma operação que pode falhar, como ler um arquivo.
- ✓Para transformar um código que pode gerar erros em um formato que o programa entende como 'sucesso' ou 'falha'.
Exemplo do que pedir para a IA
“Como posso verificar se um email é válido e, se não for, mostrar uma mensagem de erro clara?”
Quer saber mais? Abra as seções abaixo.
Como usar
O jeito mais fácil: copie a mensagem abaixo e cole no Claude, ChatGPT, Cursor ou outra IA. Ela lê a skill e segue as instruções.
Link da skill
Mensagem pronta para colar
Como funciona
Ela funciona definindo dois caminhos: um para o sucesso (com o resultado esperado) e outro para o erro (com a descrição do problema). Você pode então escolher qual caminho seguir dependendo do resultado.
Instalação
Jeito mais fácil: copie o link da skill e cole no Claude, ChatGPT ou Cursor pedindo para seguir as instruções.
No terminal (Claude Code, Codex, Cursor), na pasta do projeto:
npx skills add sickn33/agentic-awesome-skills --skill fp-either-refOu baixe só o arquivo:
curl -L https://raw.githubusercontent.com/sickn33/agentic-awesome-skills/main/plugins/agentic-awesome-skills-claude/skills/fp-either-ref/SKILL.md -o SKILL.mdConteúdo técnico (SKILL.md)
Tradução do texto original do autor no GitHub. Os comandos e códigos estão como no original.
Referência Rápida de Either
Either = sucesso ou falha. Right(value) ou Left(error).
Quando Usar
- Você precisa de uma referência rápida de fp-ts para tratamento de erros síncronos tipados.
- A tarefa envolve validação, operações falíveis ou conversão de código que lança exceções para
Either. - Você quer um resumo conciso em vez de um tutorial longo.
Criar
import * as E from 'fp-ts/Either'
E.right(value) // Success
E.left(error) // Failure
E.fromNullable(err)(x) // null → Left(err), else Right(x)
E.tryCatch(fn, toError) // try/catch → Either
Transformar
E.map(fn) // Transform Right value
E.mapLeft(fn) // Transform Left error
E.flatMap(fn) // Chain (fn returns Either)
E.filterOrElse(pred, toErr) // Right → Left if pred fails
Extrair
E.getOrElse(err => fallbackValue) // Get Right or default
E.match(onLeft, onRight) // Pattern match
E.toUnion(either) // E | A (loses type info)
Padrões Comuns
import { pipe, identity } from 'fp-ts/function'
import * as E from 'fp-ts/Either'
// Toy validation; an @ check is not complete email validation
const validateEmail = (s: string): E.Either<string, string> =>
s.includes('@') ? E.right(s) : E.left('Invalid email')
// Chain validations (stops at first error)
pipe(
E.right({ email: 'test@example.com', age: 25 }),
E.flatMap(d => pipe(validateEmail(d.email), E.map(() => d))),
E.flatMap(d => d.age >= 18 ? E.right(d) : E.left('Must be 18+'))
)
// Convert throwing code
const parseJson = (s: string) => E.tryCatch(
() => JSON.parse(s),
(e) => `Parse error: ${e}`
)
vs try/catch
// ❌ try/catch - errors not in types
try {
const data = JSON.parse(input)
process(data)
} catch (e) {
handleError(e)
}
// ✅ Either - errors explicit in types
pipe(
E.tryCatch(() => JSON.parse(input), String),
E.flatMap(data => E.tryCatch(() => process(data), String)),
E.match(handleError, identity)
)
Use Either quando o tipo de erro importa e você quer encadear operações.
Limitações
- Use esta habilidade apenas quando a tarefa corresponder claramente ao escopo descrito acima.
- Não trate a saída como substituta para validação específica do ambiente, testes ou revisão de especialistas.
- Pare e peça esclarecimentos se os inputs necessários, permissões, limites de segurança ou critérios de sucesso estiverem faltando.
Escopo de Referência
Estes são fragmentos de fp-ts 2.x. Forneça variáveis de aplicação, tipos, validadores e imports, e verifique a versão instalada. map não captura exceções lançadas. Task não tem um canal de erro tipado; uma promise incorretamente encapsulada ainda pode rejeitar. Use tryCatch em limites falíveis.
API Oficial: Módulos fp-ts.
Perguntas frequentes
Qual a diferença entre 'Right' e 'Left'?
'Right' representa o sucesso, contendo o valor que você esperava. 'Left' representa o erro, contendo a mensagem ou o tipo de erro que ocorreu.
Posso usar isso com código que pode dar erro (como ler um arquivo)?
Sim, a ferramenta tem uma função específica (`tryCatch`) para transformar operações que podem gerar erros em um resultado 'Right' (sucesso) ou 'Left' (erro).
Como eu pego o resultado final se ele pode ser um sucesso ou um erro?
Você pode usar funções como `getOrElse` para definir um valor padrão caso ocorra um erro, ou `match` para executar ações diferentes dependendo se foi sucesso ou erro.
Detalhes
Descrição original do autor
Quick reference for Either type. Use when user needs error handling, validation, or operations that can fail with typed errors.
Popularidade
- Estrelas no GitHub
- 48 mil
- Posição no ranking
- #3027
- Licença
- MIT
- Atualizada em
- 15/10/2026
Comentários
- …
Mais skills deste repositório
00-andruia-consultant
Ajuda seu agente a iniciar ou melhorar projetos de IA. Ele analisa código, sugere ferramentas e cria planos de ação em espanhol.
sickn33/agentic-awesome-skills
007
Faz seu agente realizar auditorias de segurança e modelagem de ameaças. É útil para proteger projetos contra ataques e vulnerabilidades.
sickn33/agentic-awesome-skills
10-andruia-skill-smith
Ajuda seu agente a criar ou melhorar ferramentas de IA. Ele define como as ferramentas funcionam, escreve a documentação e valida a estrutura.
sickn33/agentic-awesome-skills
20-andruia-niche-intelligence
Faz seu agente criar um resumo sobre um setor específico. É útil para entender o contexto, regras, padrões de uso e riscos de um projeto, usando fontes confiáveis.
sickn33/agentic-awesome-skills
Skills parecidas
benchmark-optimization-loop
Faz seu agente melhorar a velocidade de algo de forma medida. Ele testa várias versões e escolhe a mais rápida que ainda funciona corretamente.
affaan-m/ECC
change-impact
Ajuda seu agente a analisar o impacto de mudanças no código antes de fazê-las. Ele compara o planejado com o real depois, cobrindo caminhos, dados, testes e documentação. É útil para mudanças arriscadas ou que afetam várias partes do sistema.
affaan-m/ECC
click-path-audit
Faz seu agente rastrear todos os botões e interações do usuário para achar bugs. Ele encontra problemas onde funções parecem funcionar sozinhas, mas falham juntas. Útil quando bugs persistem mesmo após depuração.
affaan-m/ECC