npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

bfinancial-js

v0.0.1

Published

Para a segurança do seu sistema, usamos sistemas de incerteza. O código completo da incerteza está disponível em ./bfinancial/uncertain.ts. Isso também se aplica à sua aplicação. A incerteza implementada é inspirada na Result do Rust. O uso dessa abordage

Downloads

69

Readme

Para a segurança do seu sistema, usamos sistemas de incerteza. O código completo da incerteza está disponível em ./bfinancial/uncertain.ts. Isso também se aplica à sua aplicação. A incerteza implementada é inspirada na Result do Rust. O uso dessa abordagem trará mais segurança ao seu código, permitindo que, se houver algum problema, ele possa relatar o erro por meio de um callback bem implementado, em vez de gerar uma exceção e causar a falha do seu código.

Como Funciona

O sistema de incertezas que implementamos tem como base a ideia de que, em vez de lançar exceções quando ocorrem erros, ele fornece uma estrutura para que esses erros sejam tratados de forma controlada e previsível. Essa estrutura permite que você defina callbacks específicos para tratar diferentes tipos de erros, garantindo que o fluxo do programa não seja interrompido abruptamente.

Por exemplo, ao invés de uma função que pode lançar uma exceção e causar a parada do seu código, você terá uma função que retorna um objeto que indica o sucesso ou o erro da operação. Dependendo do resultado, você pode decidir como proceder, seja corrigindo o erro ou tentando uma abordagem alternativa.

Vantagens em um Sistema de Pagamentos

A implementação de um sistema de incertezas é particularmente vantajosa em um sistema de pagamentos, onde a integridade e a segurança das transações são cruciais. Veja algumas das principais vantagens:

  1. Robustez e Resiliência: Em sistemas de pagamentos, erros podem ocorrer em diversas etapas, como validação de cartões, comunicação com gateways de pagamento ou processamento de transações. Utilizando a abordagem de incerteza, você pode garantir que os erros sejam tratados de maneira controlada, sem interromper o processo de pagamento ou afetar a experiência do usuário.

  2. Tratamento Específico de Erros: Ao ter um controle mais granular sobre os tipos de erros, você pode implementar lógicas específicas para cada cenário. Por exemplo, erros de validação de cartão podem ser tratados com mensagens específicas para o usuário, enquanto problemas de comunicação com o gateway podem acionar tentativas de reenvio ou notificações para a equipe de suporte.

  3. Melhoria na Experiência do Usuário: Em vez de um sistema que falha silenciosamente ou exibe mensagens genéricas de erro, você pode fornecer feedback mais detalhado e ações corretivas, o que melhora a confiança do usuário no sistema e reduz a frustração.

  4. Facilidade de Manutenção: A estrutura de incerteza facilita a manutenção do código, permitindo que você adicione, remova ou modifique a forma como os erros são tratados sem precisar alterar o fluxo principal do programa. Isso simplifica a atualização e a escalabilidade do sistema de pagamentos.

  5. Segurança Adicional: Ao lidar com erros de forma controlada, você reduz o risco de falhas catastróficas que poderiam comprometer a segurança das transações e dos dados dos usuários.

A implementação dessa abordagem traz uma camada adicional de segurança e flexibilidade ao seu sistema de pagamentos, ajudando a garantir que ele seja mais confiável e mais fácil de manter ao longo do tempo.

Se interessou pela proposta do Rust? Temos também uma SDK para o Rust.

[!NOTE]
Logicamente, o que funciona em TypeScript deve funcionar em JavaScript. No entanto, recomendamos seguir as instruções e especificações descritas para garantir a segurança adequada do seu sistema (Lidar com Exeptions nunca é a melhor solução em JavaScript). Seguir as orientações específicas ajuda a evitar problemas e a assegurar que tudo funcione conforme esperado.

Gerando um pix com a SDK - TypeScript

const client = new Client().login("admin");
const payment = client.payments;

const info = {
  amount: 2,
  payer_email: "[email protected]"
};

/*
  Tenta gerar os dados para criar o pagamento pix.
  Caso dê algum problema, ele cairá no fail.
  Caso não, cairá no sucess. 
*/
match<PixPayment, string>(Presset.pix(info), {
  fail(_: string) { console.log(_); },

  success(pix: PixPayment) {
    /* 
      Por fim, tenta gerar os dados de pagamento do pix, como
      QRCode, Copia e cola e mais alguns dados que são necessários
      para o nosso funcionamento.
    */
    match(payment.create<Pix>(pix), {
      fail(_: string) { console.log(_); },

      async success(data: Promise<Pix>) {
        const pix: Pix = await data;
        console.log(pix);   
      }
    })
  }
})

Gerando um pix com a SDK - JavaScript

const client = new Client().login("admin");
const payment = client.payments;

const info = {
  amount: 2,
  payer_email: "[email protected]"
};

/*
  Tenta gerar os dados de pagamento do pix, como
  QRCode, Copia e cola e mais alguns dados que são necessários
  para o nosso funcionamento.
*/
match(payment.create(new Transaction(info).pix()), {
  fail(_) { console.log(_); },

  async success(data) {
    const pix = await data;
    console.log(pix);
  }
})

Evitando usar o match

const client = new Client().login("admin");
const payment = client.payments;

const info = {
  amount: 2,
  payer_email: "[email protected]"
};

/*
  Gera o pagamento pix, e envia para o data o conteúdo
  necessário para que seja possível o cliente efetuar o 
  pagamento.
*/
const data = payment.create(new Transaction(info).pix()).unwrap();
const pix = await data;
console.log(pix);