n8n-nodes-br-data-utils
Version:
Valida e higieniza dados brasileiros (CPF, CNPJ, telefone, CEP e mais) em workflows do n8n.
80 lines (79 loc) • 3.08 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.BrDataUtils = void 0;
const validators_1 = require("./validators");
class BrDataUtils {
constructor() {
this.description = {
displayName: 'BR Data Utils',
name: 'brDataUtils',
group: ['transform'],
version: 1,
description: 'Valida e formata dados brasileiros',
defaults: {
name: 'BR Data Utils',
},
inputs: ["main" /* NodeConnectionType.Main */],
outputs: ["main" /* NodeConnectionType.Main */],
properties: [
{
displayName: 'Operação',
name: 'operation',
type: 'options',
options: [
{ name: 'Validar CPF', value: 'validarCpf' },
{ name: 'Validar CNPJ', value: 'validarCnpj' },
{ name: 'Validar Telefone', value: 'validarTelefone' },
{ name: 'Validar Celular', value: 'validarCelular' },
{ name: 'Validar CEP', value: 'validarCep' },
],
default: 'validarCpf',
description: 'Selecione a operação que deseja executar',
},
{
displayName: 'Valor',
name: 'value',
type: 'string',
default: '',
placeholder: 'Digite o valor a ser validado/formatado',
description: 'O valor que será processado pela operação selecionada',
},
],
};
}
async execute() {
const items = this.getInputData();
const returnData = [];
for (let i = 0; i < items.length; i++) {
const operation = this.getNodeParameter('operation', i);
const value = this.getNodeParameter('value', i);
try {
const result = (0, validators_1.executeOperation)(operation, value);
returnData.push({
json: {
operation,
original: value,
isValid: result.isValid,
masked: result.masked || null,
unmasked: result.unmasked || null,
error: result.error || null,
},
});
}
catch (error) {
returnData.push({
json: {
operation,
original: value,
isValid: false,
masked: null,
unmasked: null,
error: `Erro inesperado: ${error instanceof Error ? error.message : 'Erro desconhecido'}`,
},
});
}
}
return this.prepareOutputData(returnData);
}
}
exports.BrDataUtils = BrDataUtils;