b2x-utils v1.0.1
Funções de Leitura e Manipulação de Dados
Este código consiste em diversas funções que auxiliam na leitura e manipulação de dados em diferentes formatos: CSV, XML e JSON.
Funções de Leitura
lerCSV(path)
Esta função lê um arquivo CSV no caminho especificado por path e retorna uma Promise que se resolve com um array contendo todos os dados do arquivo. É utilizada a biblioteca csv-parser para realizar a leitura do arquivo.
const csvData = await lerCSV("arquivo.csv");
console.log(csvData);lerXML(path)
Esta função lê um arquivo XML no caminho especificado por path e retorna uma Promise que se resolve com uma string JSON contendo os dados do arquivo. É utilizada a biblioteca xml2js para converter o XML em um objeto JavaScript e, em seguida, é convertido em uma string JSON.
const xmlData = await lerXML("arquivo.xml");
console.log(xmlData);lerJSON(path)
const jsonData = await lerJSON("arquivo.json");
console.log(jsonData);Esta função lê um arquivo JSON no caminho especificado por path e retorna uma Promise que se resolve com um objeto JavaScript contendo os dados do arquivo.
Funções de Manipulação
navigateObject(obj, path)
Esta função recebe um objeto JavaScript obj e uma string path, onde path representa um caminho de acesso no objeto no formato "chave1.chave2.chave3". A função retorna o valor do objeto encontrado no caminho especificado por path, ou retorna o objeto original caso path seja nulo ou indefinido.
const obj = {
foo: {
bar: "baz",
},
};
const result = navigateObject(obj, "foo.bar");
console.log(result); // "baz"combineObjects(obj1, obj2)
Esta função recebe dois objetos JavaScript, obj1 e obj2, e combina os valores de obj2 com as chaves de obj1. Caso uma chave em obj1 seja uma array, é criada uma nova array contendo objetos com a chave original de obj1 e o valor correspondente de obj2. Se um valor em obj1 for um objeto, a função é chamada recursivamente para combinar os objetos. Se um valor em obj1 for uma chave que não existe em obj2, é atribuído um valor vazio.
const obj1 = {
name: "John",
age: "26",
address: {
city: "New York",
zip: "10001",
},
};
const obj2 = {
name: "John Doe",
age: 27,
address: {
zip: "10002",
},
};
const result = combineObjects(obj1, obj2);
console.log(result);convertValuesToNumberAndBoolean(obj, keys)
Esta função recebe um objeto JavaScript obj e um array de chaves keys. Para cada chave em keys, se a chave existe em obj, o valor é convertido em um número ou booleano, caso possível. Se o valor for uma string "true", é atribuído true. Se o valor for uma string "false", é atribuído false. Caso contrário, é atribuído o valor convertido em um número. Se a chave não existir em obj, é atribuído 0.
const obj = {
name: "John",
age: "26",
isStudent: "true",
score: "",
};
const keys = ["age", "isStudent", "score"];
const result = convertValuesToNumberAndBoolean(obj, keys);
console.log(result);removeLargeSpaces(obj)
Esta função recebe um objeto JavaScript obj e remove espaços excessivos em todas as chaves que possuem valor do tipo string. Espaços com mais de dois caracteres são substituídos por um único espaço.
const obj = {
name: " John Doe ",
address: {
street: " 123 Main St. ",
city: " New York ",
},
};
const result = removeLargeSpaces(obj);
console.log(result);removePathFromKeys(obj, path)
Esta função recebe um objeto JavaScript obj e uma string path, onde path representa um caminho de acesso no objeto no formato "chave1.chave2.chave3". A função retorna um novo objeto com as mesmas chaves e valores de obj, exceto pelas chaves que começam com o caminho especificado por path. Nesses casos, a chave é modificada para remover o caminho, mantendo apenas o nome da chave original. Se um valor em obj for uma array, a função é chamada recursivamente para
const obj = {
"person.name": "John Doe",
"person.age": 26,
"person.address.street": "123 Main St.",
"person.address.city": "New York",
};
const path = "person";
const result = removePathFromKeys(obj, path);
console.log(result);