Skip to content
Busca por CEP integrado diretamente aos serviços dos Correios, ViaCEP e outros (Node.js e Browser)
Branch: master
Clone or download
Latest commit 69aa725 Feb 6, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
content
dist updated build after changes Jan 30, 2019
src
test feat(cep-aberto): add `cep-aberto` and fixes `correios` service Nov 19, 2017
.babelrc errors: refactor to classes Dec 11, 2018
.editorconfig chore(dotfiles): add base dotfiles Mar 10, 2016
.gitignore Mudando de isomorphic-fetch para isomorphic-unfetch (#120) by @lucianopf Jul 12, 2018
.nvmrc chore(dotfiles): add base dotfiles Mar 10, 2016
.travis.yml
CONTRIBUTING.md
LICENSE Initial commit Nov 30, 2015
README.md
bower.json
index.d.ts fix(index.d.ts): fix typings for typescript import Dec 27, 2017
package-lock.json
package.json 3.0.6 Feb 6, 2019
rollup.config.js

README.md

CEP Promise

Known Vulnerabilities

Busca por CEP integrado diretamente aos serviços dos Correios, ViaCEP e outros (Node.js e Browser)

Features

  • Sempre atualizado em tempo-real por se conectar diretamente aos serviços dos Correios, ViaCEP e outros.
  • Possui alta disponibilidade por usar vários serviços como fallback.
  • Sempre retorna a resposta mais rápida por fazer as consultas de forma concorrente.
  • Sem limites de uso (rate limits) conhecidos.
  • Interface de Promise extremamente simples.
  • Suporte ao Node.js 4.x, 5.x, 6.x, 7.x, 8.x, 9.x, 10.x e @stable.
  • Suporte ao Node.js 0.10.x e 0.12.x até cep-promise versão 2.0.8.
  • 100% de code coverage com testes unitários e E2E.
  • Desenvolvido utilizando ES6.

Como utilizar

Teste e aprenda aqui.

Realizando uma consulta

Por ser multifornecedor, a biblioteca irá resolver a Promise com o fornecedor que mais rápido lhe responder.

import cep from 'cep-promise'

cep('05010000')
  .then(console.log)

  // {
  //   "cep":  "05010000",
  //   "state":  "SP",
  //   "city":  "São Paulo",
  //   "street":  "Rua Caiubí",
  //   "neighborhood":  "Perdizes",
  // }

Você também poderá passar o CEP como Inteiro

Em muitos sistemas o CEP é utilizado erroneamente como um Inteiro (e com isto cortando todos os zeros à esquerda). Caso este seja o seu caso, não há problema, pois a biblioteca irá preencher os caracteres faltantes na String, por exemplo:

import cep from 'cep-promise'

// enviando sem ter um zero à esquerda do CEP "05010000"
cep(5010000)
  .then(console.log)

  // {
  //   "cep":  "05010000",
  //   "state":  "SP",
  //   "city":  "São Paulo",
  //   "street":  "Rua Caiubí",
  //   "neighborhood":  "Perdizes",
  // }

Quando o CEP não é encontrado

Neste caso será retornado um "service_error" e por ser multifornecedor, a biblioteca irá rejeitar a Promise apenas quando tiver a resposta negativa de todos os fornecedores.

import cep from 'cep-promise'

cep('99999999')
  .catch(console.log)

  // {
  //     name: 'CepPromiseError',
  //     message: 'Todos os serviços de CEP retornaram erro.',
  //     type: 'service_error',
  //     errors: [{
  //       message: 'CEP NAO ENCONTRADO',
  //       service: 'correios'
  //     }, {
  //       message: 'CEP não encontrado na base do ViaCEP.',
  //       service: 'viacep'
  //     }, {
  //       message: 'CEP não encontrado na base do Cep Aberto.',
  //       service: 'cepaberto'
  //     }]
  // }

Quando o CEP possui um formato inválido

Neste caso será retornado um "validation_error" e a biblioteca irá rejeitar imediatamente a Promise, sem chegar a consultar nenhum fornecedor.

import cep from 'cep-promise'

cep('123456789123456789')
  .catch(console.log)

  // {
  //     name: 'CepPromiseError',
  //     message: 'CEP deve conter exatamente 8 caracteres.',
  //     type: 'validation_error',
  //     errors: [{
  //       message: 'CEP informado possui mais do que 8 caracteres.',
  //       service: 'cep_validation'
  //     }]
  // }

Instalação

Browser usando CDN

<script src="https://cdn.jsdelivr.net/npm/cep-promise/dist/cep-promise.min.js"></script>

npm

$ npm install --save cep-promise

Bower

$ bower install --save cep-promise

Angular 2

import * as cep from 'cep-promise'

cep('05010000')
  .then(console.log)

Como contribuir

Leia nosso guia de contribuição aqui

Contribuidores


@lucianopf

@MarcoWorms

@caio-ribeiro-pereira

@chrisbenseler

@luanmuniz

@AlbertoTrindade

@pedrro

@petronetto

@olegon

@jhonnymoreira

@claytonsilva

@thiamsantos

@flyingluscas

@otaviopace

Autor


@filipedeschamps
You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.