jin-frame: uma biblioteca de requisições HTTP reutilizável, declarativa, type-safe e extensível.
(github.com/imjuni)É um cliente de requisições HTTP baseado em axios. É possível definir requisições HTTP como classes TypeScript.
No trabalho do dia a dia, acaba sendo necessário gerenciar de forma diferente por endpoint coisas como timeout, número de tentativas de retry e estratégia de retry, além de implementar padrões em comum ou adicionar logging em caso de falha, entre vários outros requisitos.
Usei diversos clientes, como axios, fetch e ky, mas não encontrei um que atendesse a esse tipo de requisito com relativa facilidade, então acabei desenvolvendo este.
@Get({ host: 'https://pokeapi.co', path: '/api/v2/pokemon/:name' })
export class PokemonFrame extends JinFrame {
@Param()
declare public readonly name: string;
}
const frame = PokemonFrame.of({ name: 'pikachu' });
const reply = await frame.execute();
console.log(reply);
Por herança, é possível estender Hooks e também gerenciar de forma diferente, para cada classe, timeout, número de tentativas de retry etc., o que torna a biblioteca bastante útil.
Experimentem e enviem bastante feedback!
Ainda não há comentários.