BrasilAPI / BrasilAPI/cep-promise
RFC: Configurações da biblioteca
- Dominant language
- JavaScript
- Stars
- 3k
- Forks
- 317
- PR merge metrics
- No merged PRs in 30d
Description
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
```js
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
```js
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](https://github.com/filipedeschamps/cep-promise/issues/148#issuecomment-587654546) caso um fornecedor decida utilizar o cep-promise em sua implementação, como por exemplo, a [BrasilAPI](https://github.com/filipedeschamps/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'`
Contributor guide
Research direction
No files, tests, or entry points are named. Start by reviewing the unresolved proposals and related issue #148, then identify the library entry point and configuration tests; done means an agreed configuration design with documented defaults, accepted values, precedence, and coverage for provider selection and formatting.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- javascript, nodejs
- Domain
- api, backend
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 20/100