Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

RFC: Configurações da biblioteca #163

Open
SkyaTura opened this issue Feb 20, 2020 · 4 comments
Open

RFC: Configurações da biblioteca #163

SkyaTura opened this issue Feb 20, 2020 · 4 comments

Comments

@SkyaTura
Copy link

SkyaTura commented Feb 20, 2020

O propósito dessa Issue é discutir a melhor forma de inserir configurações na biblioteca e quais seriam suas funções configuráveis.

Irei citar aqui algumas coisas que já foram mapeadas para facilitar na elaboração de melhorias até chegarmos ao melhor cenário.

Issues relacionadas

Propostas

Parâmetro adicional

cep('05010000', { format: true }).then(console.log)

Originally posted by @dansoliveira in https://github.com/filipedeschamps/cep-promise/issues/148#issuecomment-585550625

Método config

const cep = require('cep').config({
  providers: ['ViaCep', 'Correios'],
  masked: true,
})

Originally posted by @lucianopf in https://github.com/filipedeschamps/cep-promise/issues/148#issuecomment-588230177

Híbrido

Utilizar as duas propostas citadas acima.

Propriedades

>>> Considerações importantes <<<

  • Todas as propriedades devem ter um valor padrão
  • Nenhum valor padrão não pode alterar o comportamento atual da biblioteca
  • As propriedades devem ser simples e intuitivas, para não aumentar a carga cognitiva de uso da biblioteca

# Formatação do CEP

Define se a resposta da API deve, ou não, aplicar a máscara de CEP.

Considerações importantes

  • A propriedade deve considerar que existem 2 formatos populares de máscara (00.000-000 e 00000-000)

Nome da propriedade: format ou mask ou formatCEP
Valor padrão: ?
Valores possíveis: ?
Tipos de valor aceitos: ?

# Lista de fornecedores aceitos

Define quais os providers devem ser consultados na chamada.

Nome da propriedade: providers
Valor padrão: [] (Se vazio, utiliza todos os providers disponíveis)
Tipos de valor aceitos: Array de Strings
Valores possíveis:

  • 'correios'
  • 'viacep'
  • 'widenet'
  • 'brasilapi'

# Lista de fornecedores negados

Define quais os providers não devem ser consultados na chamada.

Considerações importantes

  • Essa configuração sobrepõe a lista de fornecedores aceitos

Caso de uso: Evitar o looping de chamadas caso um fornecedor decida utilizar o cep-promise em sua implementação, como por exemplo, a BrasilAPI.

Nome da propriedade: ignoredProviders
Valor padrão: [] (Se vazio, não altera o comportamento)
Tipos de valor aceitos: Array de Strings
Valores possíveis:

  • 'correios'
  • 'viacep'
  • 'widenet'
  • 'brasilapi'
@SkyaTura
Copy link
Author

Aproveitando o embalo, gostaria que vocês avaliassem a minha proposta para a propriedade de formatação de CEP.

Nome da propriedade: maskResponseCEP
Tipos de valor aceitos: String
Valor padrão: 'none'
Valores possíveis:

  • 'none' - Não aplica máscara (Retorno 12345678)
  • 'hyphen' - Aplica apenas o hífen (Retorno 12345-789)
  • 'dots' - Aplica apenas o ponto (Retorno 12.345.678)
  • 'both' - Aplica ambos os formatos (Retorno 12.345-678)

@luciancaetano
Copy link

Poderia-se permitir utilizar ou não o proxy

@SkyaTura
Copy link
Author

@luciancaetano pode dar mais detalhes da idéia? E um exemplo de caso de uso.

@LorhanSohaky
Copy link
Member

@SkyaTura, fiz um esquema dele receber configurações para todos os providers e específicos de cada um, além de adicionar a funcionalidade de keep-alive #191

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants