nest-csv-parser
v2.0.4
Published
CSV parser for NestJS framework
Downloads
43,965
Readme
CSV Parser for NestJS
Nest framework TypeScript starter repository.
Wrapper for csv-parser library
Installation
$ npm install nest-csv-parser
# or if you using Yarn
$ yarn add nest-csv-parser
Add nest-csv-parser as a dependency.
import { Module } from '@nestjs/common'
import { CsvModule } from 'nest-csv-parser'
// ...imports of your app dependecies
@Module({
imports: [
CsvModule, // <-- add into imports
...
],
controllers: [ ... ],
providers: [ ... ]
})
export class AppModule {}
Usage
Parser will create instance of entity for each line in CSV stream.
// app.parser.ts
import { Injectable } from '@nestjs/common'
import { CsvParser } from 'nest-csv-parser'
class Entity {
foo: string
bar: string
}
@Injectable()
export class AppService {
constructor(
private readonly csvParser: CsvParser
) {}
async parse() {
// Create stream from file (or get it from S3)
const stream = fs.createReadStream(__dirname + '/some.csv')
const entities: Entity[] = await csvParser.parse(stream, Entity)
return entities
}
}
API
csvParser.parse(stream, Entity, count, offset, csvConfig)
has 5 parameters.
stream
required
First parameter has to be the stream of the CSV file. NodeJS Reference
Entity
required
Has to be object from which will parser create instance.
count (optional)
default: null
How many lines you want to parse.
offset (optional)
default: null
Offset is similar to SQL databases. Skips the N lines from the beginning of the file.
csvConfig (optional)
default
{ strict: true, separator: ';' }
Just a configuration object for csv-parser library options you can find here
Development
# clone repository
$ git clone [email protected]:mCzolko/nest-csv-parser.git
$ cd nest-csv-parser
# install dependencies
$ yarn install
# watch mode
$ yarn test:watch
Test
# unit tests
$ yarn test
Author
Michael Czolko