b2x-utils

1.0.1 • Public • Published

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

Readme

Keywords

none

Package Sidebar

Install

npm i b2x-utils

Weekly Downloads

1

Version

1.0.1

License

ISC

Unpacked Size

55.8 kB

Total Files

11

Last publish

Collaborators

  • studios7.dev