0.2.1 • Published 4 months ago

csv-objects-streamer v0.2.1

Weekly downloads
-
License
MIT
Repository
-
Last release
4 months ago

CsvObjectsStream

Lib to stream CSV directly to complex objects using few memory and no dependencies.

Install

npm install csv-objects-streamer

Input CSV format

If not specified, all columns are considered as string. You can define column type using ()

prop1;prop2.stringValue(string);prop2.booleanValue(boolean);prop2.integerValue(integer);prop2.dateValue(datetime);prop3(object);prop2.value4.sub1;prop2.value4.sub2(string);prop2.value5[0](integer);prop2.value5[1](integer)
test;gildas;true;2;2022-05-01;{"test":234};foo;1;1;2
test2;eva;false;5;2022-05-02;[{"test":123}];bar;2;1;2

Usage

var CsvObjectsStream=require('csv-objects-streamer')

let objectsStreamer = new CsvObjectsStream('test_opensea.csv', { encoding: 'utf8', skipEmptyLines: true, separator:';' });

objectsStreamer.on('error', function (err) {
	console.log(`ERROR: ${err}`);
});

objectsStreamer.on('line', function (object) {
	console.log(JSON.stringify(object));
});

objectsStreamer.on('end', function () {
	console.log("finished");
});

Output

{"prop1":"test","prop2":{"stringValue":"gildas","booleanValue":true,"integerValue":2,"dateValue":1651363200000,"value4":{"sub1":"foo","sub2":"1"},"value5":[1,2]},"prop3":{"test":234}}
{"prop1":"test2","prop2":{"stringValue":"eva","booleanValue":false,"integerValue":5,"dateValue":1651449600000,"value4":{"sub1":"bar","sub2":"2"},"value5":[1,2]},"prop3":[{"test":123}]}
finished

Example for OpenSea

description;external_url;image;name;attributes[0].trait_type;attributes[0].value;attributes[1].trait_type;attributes[1].value
Friendly OpenSea Creature.;https://openseacreatures.io/3;https://storage.googleapis.com/opensea-prod.appspot.com/puffs/3.png;Dave Starbelly;Base;Starfish;Eyes;Big
Hostile Creature.;https://openseacreatures.io/3;https://storage.googleapis.com/opensea-prod.appspot.com/puffs/3.png;Author;Base;Starfish;Eyes;Big

Outputs:

{"description":"Friendly OpenSea Creature.","external_url":"https://openseacreatures.io/3","image":"https://storage.googleapis.com/opensea-prod.appsspot.com/puffs/3.png","name":"Dave Starbelly","attributes":[{"trait_type":"Base","value":"Starfish"},{"trait_type":"Eyes","value":"Big"}]}
{"description":"Hostile Creature.","external_url":"https://openseacreatures.io/3","image":"https://storage.googleapis.com/opensea-prod.appspot.com/ppuffs/3.png","name":"Author","attributes":[{"trait_type":"Base","value":"Starfish"},{"trait_type":"Eyes","value":"Big"}]}
finished
0.2.1

4 months ago

0.1.8

4 months ago

0.1.7

4 months ago

0.1.9

4 months ago

0.1.2

1 year ago

0.1.4

1 year ago

0.1.3

1 year ago

0.1.6

1 year ago

0.1.5

1 year ago

0.1.1

2 years ago

0.1.0

2 years ago