Skip to content

Latest commit

 

History

History
144 lines (100 loc) · 3.66 KB

README.md

File metadata and controls

144 lines (100 loc) · 3.66 KB

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 [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

ko-fi