BrasilAPI / BrasilAPI/cep-promise

RFC: Configurações da biblioteca

Open
#163 4 comments 5 reactions 0 assignees View on GitHub
proposal question
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.