Estou iniciando este código para tentar identificar se é CPF ou CNPJ e já retornar a mascara, antes de validar, porem não estou conseguindo incluir a validação, tentantado promise.resolve(Valida(number, type)) mas o retorno fica em <promise>, alguma sugestão?
function cpfcnpj (doc) => {
let valid = false,
number = doc.toString().replace(/D/g, ''),
masked = false,
type = number.length === 11 ? 'CPF' : number.length === 14 ? 'CNPJ' : false
if (type === 'CPF') {
masked = number.replace(/(d{3})(d{3})(d{3})(d{2})/, "$1.$2.$3-$4")
}
if (type === 'CNPJ') {
masked = number.replace(/^(d{2})(d{3})(d{3})(d{4})(d{2})/, "$1.$2.$3/$4-$5")
}
return {
type: type,
valid: Promise.resolve(Valida(number, type)).then(valid => { return valid}),
number: number,
masked: masked
}
function TestaCPF(strCPF) {
}
}
console.log(cpfcnpj('123.456.789-01'));
console.log(cpfcnpj('123 456 789@12'));
console.log(cpfcnpj('11.911.119/0001-9'));
console.log(cpfcnpj('11.9s11.1d19%0001&9'));
RETORNO:
{
type: 'CPF',
valid: Promise { <pending> },
number: '12345678901',
masked: '123.456.789-01'
}
{
type: 'CPF',
valid: Promise { <pending> },
number: '12345678912',
masked: '123.456.789-12'
}
{
type: false,
valid: Promise { <pending> },
number: '1191111900019',
masked: false
}
{
type: false,
valid: Promise { <pending> },
number: '1191111900019',
masked: false
}