7.0.2 • Published 1 year ago

@transformation/csv v7.0.2

Weekly downloads
1
License
MIT
Repository
github
Last release
1 year ago

@transformation/csv

A package for reading and writing CSV files.

readCSV

Streams the rows of a CSV file using csv-parser and emits objects.

const { readCSV } = require("transformation/csv");
await expect(readCSV(csvFilePath), "to yield items", [
  {
    time: "2015-12-22T18:45:11.000Z",
    latitude: "59.9988",
    longitude: "-152.7191",
  },
  {
    time: "2015-12-22T18:38:34.000Z",
    latitude: "62.9616",
    longitude: "-148.7532",
  },
  {
    time: "2015-12-22T18:38:01.820Z",
    latitude: "19.2129993",
    longitude: "-155.4179993",
  },
  {
    time: "2015-12-22T18:38:00.000Z",
    latitude: "63.7218",
    longitude: "-147.083",
  },
  {
    time: "2015-12-22T18:28:57.000Z",
    latitude: "64.0769",
    longitude: "-148.8226",
  },
  {
    time: "2015-12-22T18:25:40.000Z",
    latitude: "61.4715",
    longitude: "-150.7697",
  },
]);

You can provide options to the parser the following way. It just forwards the options to csv-parser.

readCSV(csvFilePath, {
  maxRowBytes: 10,
});

writeCSV

Writes objects to one or more CSV files using csv-writer.

const { writeCSV } = require("transformation/csv");

Simplest case is just to write objects into a single file.

await program(
  emitItems(
    { symbol: "GOOG", price: 1349 },
    { symbol: "AAPL", price: 274 },
    { symbol: "AAPL", price: 275 },
    { symbol: "GOOG", price: 1351 },
    { symbol: "AAPL", price: 279 }
  ),
  writeCSV("stocks.csv")
);

You can also route the objects to multiple files.

await program(
  emitItems(
    { symbol: "GOOG", price: 1349 },
    { symbol: "AAPL", price: 274 },
    { symbol: "AAPL", price: 275 },
    { symbol: "GOOG", price: 1351 },
    { symbol: "AAPL", price: 279 }
  ),
  writeCSV(({ symbol }) => path.join(testPath, `stocks-${symbol}.csv`))
);

You can provide options to the parser the following way. It just forwards the options to csv-writer.

await program(
  emitItems(
    { symbol: "GOOG", price: 1349 },
    { symbol: "AAPL", price: 274 },
    { symbol: "AAPL", price: 275 },
    { symbol: "GOOG", price: 1351 },
    { symbol: "AAPL", price: 279 }
  ),
  writeCSV("stocks.csv", {
    headers: [
      { id: "symbol", title: "Symbol" },
      { id: "price", title: "Price $" },
    ],
  })
);

Notice it is usually easier to just map the keys of the objects using the map transform.

7.0.0

1 year ago

7.0.2

1 year ago

7.0.1

1 year ago

5.1.1

2 years ago

5.1.0

2 years ago

5.0.0

2 years ago

6.0.0

2 years ago

4.2.0

2 years ago

4.3.0

2 years ago

4.1.2

3 years ago

4.1.0

3 years ago

4.1.1

3 years ago

4.0.1

3 years ago

4.0.0

3 years ago

3.8.0

3 years ago

3.7.0

3 years ago

3.6.0

3 years ago

3.5.3

3 years ago

3.5.1

3 years ago

3.5.0

3 years ago

3.4.0

3 years ago

3.3.0

3 years ago

3.2.0

3 years ago

3.1.0

3 years ago

3.0.0

4 years ago

2.3.0

4 years ago

2.2.0

4 years ago

2.0.0

4 years ago

2.1.0

4 years ago

1.34.0

4 years ago

1.33.0

4 years ago

1.32.0

4 years ago

1.31.0

4 years ago

1.30.2

4 years ago

1.30.1

4 years ago

1.30.0

4 years ago

1.29.1

4 years ago

1.29.0

4 years ago

1.28.0

4 years ago

1.27.1

4 years ago

1.27.0

4 years ago

1.26.0

4 years ago

1.25.0

4 years ago

1.24.0

4 years ago

1.22.0

4 years ago

1.21.0

4 years ago

1.20.2

4 years ago

1.20.1

4 years ago

1.20.0

4 years ago

1.19.0

4 years ago

1.18.2

4 years ago

1.18.1

4 years ago

1.18.0

4 years ago

1.17.0

4 years ago

1.16.0

4 years ago

1.15.0

4 years ago

1.14.1

4 years ago

1.12.3

4 years ago

1.12.2

4 years ago

1.12.1

4 years ago

1.12.0

4 years ago

1.11.0

4 years ago

1.10.0

4 years ago

1.9.0

4 years ago

1.8.0

4 years ago

1.7.1

4 years ago

1.7.0

4 years ago

1.6.0

4 years ago

1.5.0

4 years ago

1.4.1

4 years ago

1.4.0

4 years ago

1.3.1

4 years ago

1.2.0

4 years ago

1.3.0

4 years ago

1.1.1

4 years ago

1.1.0

4 years ago

1.0.1

4 years ago

1.0.0

4 years ago