2.0.4 • Published 4 years ago

nest-csv-parser v2.0.4

Weekly downloads
1,826
License
MIT
Repository
-
Last release
4 years ago

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 git@github.com: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

ko-fi

2.0.3

4 years ago

2.0.4

4 years ago

2.0.2

4 years ago

2.0.0

5 years ago

1.0.9

5 years ago

1.0.8

5 years ago

1.0.7

5 years ago

1.0.6

5 years ago

1.0.5

5 years ago

1.0.4

5 years ago

1.0.3

5 years ago

1.0.2

5 years ago

1.0.1

5 years ago

1.0.0

5 years ago