nest-csv-parser
TypeScript icon, indicating that this package has built-in type declarations

2.0.4 • Public • Published

Nest Logo

A progressive Node.js framework for building efficient and scalable server-side applications, heavily inspired by Angular.

NPM Version Package License NPM Downloads CircleCI Builds Coverage Status

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

Readme

Keywords

none

Package Sidebar

Install

npm i nest-csv-parser

Weekly Downloads

10,847

Version

2.0.4

License

MIT

Unpacked Size

173 kB

Total Files

17

Last publish

Collaborators

  • mczolko