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);