cep-promise
cep-promise copied to clipboard
RFC: Configurações da biblioteca
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
- #148 - Adicionar a função format
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
e00000-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'
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 (Retorno12345678
) -
'hyphen'
- Aplica apenas o hífen (Retorno12345-789
) -
'dots'
- Aplica apenas o ponto (Retorno12.345.678
) -
'both'
- Aplica ambos os formatos (Retorno12.345-678
)
Poderia-se permitir utilizar ou não o proxy
@luciancaetano pode dar mais detalhes da idéia? E um exemplo de caso de uso.
@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