Integração com SDK TypeScript e Problemas de Tipagem

EXIBINDO RESPOSTAS:

Avatar discord do usuario renatorazal

renatorazal

Fala pessoal, boa tarde! Tudo bem com vocês?

Estou tentando usar a SDK para TypeScript, e parece que a tipagem está bem quebrada.

ts
Gerencianet({
sandbox: process.env.NODE_ENV === "dev",
client_id: process.env.GERENCIANET_CLIENT_ID!,
client_secret: process.env.GERENCIANET_CLIENT_SECRET!,
pix_cert: process.env.PIX_CERT_PATH!,
});

O valor retornado ao chamar essa função não tem nenhum metodo, como o exemplo usado nas proprias docs, o createCharge.

Eu que estou perdendo algo, a lib que está quebrada mesmo? 😅

Avatar discord do usuario igor_efi

igor_efi

Bom dia! Quando você chama o metodo, é retornado alguma falha?

Avatar discord do usuario renatorazal

renatorazal

Ainda não cheguei a testar, ja que a minha conta ainda estásob processo de validação, mas o problema é mais sobre a tipagem da lib msm.

O intellisense do vscode deveria sugerir os metodos disponiveis, mas não sugere. Eu dei uma fuçada na tipagem "bruta" lá da lib, e eu posso estar perdendo algo, mas parece que não tem tipagem pra eles mesmo.

Eu dei uma fuçada rápida tbm, no código em js, e se me lembrio bem, parecia que os metodos estavam sendo definidos dinamicamente (acho que era um loop que ia setando os metodos), talvez seja isso que tenha quebrado a tipagem.

Avatar discord do usuario igor_efi

igor_efi

Razal, acredito que é devido ao fato da SDK utilizar magical methods.

Avatar discord do usuario renatorazal

renatorazal

Puts, ai complica pra gente q é dev :/

A mágica do TS é que o código se documenta sozinho sem precisar de docs externas, ae agiliza bastante o desenvolvimento.

Seria bacana dar uma tabalhada nisso, ajudaria de mais, até pq das soluções que eu pesquisei aqui, a Gerencianet parece ser a mais avançada em relação ao Pix, principalmente na documentação de implementação (inclusive parabens pro pessoal q escreveu, gravou vários videos, está tudo muito bom 👏 ).

Mas por enquanto resolvi usar a API REST direto mesmo, implementando a solução com axios, e resolveu meu problema aqui 😄