gerador-br
Version:
Gerador de Dados Fictícios - Brasil
43 lines (39 loc) • 2.19 kB
JavaScript
'use strict';
var dbCeps = require('../data/db-ceps.cjs');
var utils = require('../utils.cjs');
/**
* Gera um endereço aleatório.
*
* O endereço gerado pode ser formatado com máscara (xxxxx-xxx) ou apenas com os dígitos.
*
* @param {boolean} [mask=false] - Se `true`, o CEP será retornado com a máscara de formatação (xxxxx-xxx). Se `false`, o CEP será retornado apenas com os dígitos.
* @param {string} [state] - A sigla do estado para filtrar os CEPs. Se não fornecido, um CEP de qualquer estado será gerado.
* @returns {object} O endereço gerado.
* @example
* // Endereço sem máscara
* console.log(endereco()); // { cep: '12345678', logradouro: 'Rua dos Pinheiros', numero: 123, complemento: 'Apto 101', bairro: 'Jardim Paulista', localidade: 'São Paulo', estado: 'SP' }
*
* // Endereço com máscara
* console.log(endereco(true)); // { cep: '12345-678', logradouro: 'Rua dos Pinheiros', numero: 123, complemento: 'Apto 101', bairro: 'Jardim Paulista', localidade: 'São Paulo', estado: 'SP' }
*
* // Endereço de São Paulo (SP) sem máscara
* console.log(endereco(false, "SP")); // { cep: '01001000', logradouro: 'Rua da Consolação', numero: 123, complemento: 'Apto 101', bairro: 'Consolação', localidade: 'São Paulo', estado: 'SP' }
*
* // Endereço de São Paulo (SP) com máscara
* console.log(endereco(true, "SP")); // { cep: '01001-000', logradouro: 'Rua da Consolação', numero: 123, complemento: 'Apto 101', bairro: 'Consolação', localidade: 'São Paulo', estado: 'SP' }
*/
function endereco(mask = false, state) {
const uf = state || utils.stateRand;
const fullAddress = dbCeps.filter((enderecos) => enderecos.uf === uf);
const sortAddress = fullAddress[Math.floor(Math.random() * fullAddress.length)];
const address = {};
address.cep = mask ? sortAddress.cep : sortAddress.cep.replace(/\D/g, '');
address.logradouro = sortAddress.logradouro;
address.numero = Math.floor(Math.random() * 999);
address.complemento = sortAddress.complemento;
address.bairro = sortAddress.bairro;
address.localidade = sortAddress.localidade;
address.estado = sortAddress.uf;
return address;
}
exports.endereco = endereco;