cep-promise icon indicating copy to clipboard operation
cep-promise copied to clipboard

RFC: Configurações da biblioteca

Open SkyaTura opened this issue 4 years ago • 4 comments

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 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 avatar Feb 20 '20 13:02 SkyaTura

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)

SkyaTura avatar Feb 20 '20 13:02 SkyaTura

Poderia-se permitir utilizar ou não o proxy

luciancaetano avatar Mar 13 '20 15:03 luciancaetano

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

SkyaTura avatar Mar 13 '20 18:03 SkyaTura

@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

LorhanSohaky avatar Nov 13 '20 14:11 LorhanSohaky