Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

csv-builder-downloader

Package Overview
Dependencies
Maintainers
1
Versions
3
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

csv-builder-downloader

A no dependancy client side CSV builder and downloader written in TypeScript.

  • 1.0.0
  • latest
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
4
decreased by-20%
Maintainers
1
Weekly downloads
 
Created
Source

csv-builder-downloader

Coverage statements Coverage functions Coverage lines

A dependancy free JavaScript tool for composing and downloading csv files. Written in TypeScript.


Simple Usage

This is will sanitize the values and download a file: csv-download-<timestamp>.csv

const yourData = [[...headers][...row1][...row2]];

new CsvBuilder().addRows(yourData).download();

Advanced Usage

Pass in configuration and make usage match your data model more closely.

const {
    defaultFileHeading,
    yesterdayFileHeaders,
    yesterdayData,
    todayFileHeaders,
    todayData,
    getFileName,
} from yourReducerOrDataModel;

// Initialize with custom parameters (all optional)
const csvBuilder = new CsvBuilder({
    filename: getFileName(), // Generate a filemane
    includeTimeStamp: false, // By default adds a timestamp to the end
    sanitizeRegex: /[^a-zA-Z0-9:\./_\-@$ ]/g, // Regex override
    nonValueIndices: [0,5] // These values wont be sanitized
});

// Add a row or multiple rows
csvBuilder
    .addRow(`${defaultFileHeading} Yesterday:`)
    .addRow(yesterdayFileHeaders)
    .addRows(yesterdayData)
    .addNewLine(2);

// Add cell at a time
yesterdayData.forEach((metric) => csvBuilder.addCell(someCalculation(metric)));

// Use a helper function for a typical table
csvBuilder.addSection({
    title: `${defaultFileHeading} Today:`,
    headers: todayFileHeaders,
    rows: todayData
});

// Change the sanitize RegEx mid file creation
csvBuilder.changeRegEx(/[^a-zA-Z:\./_\-@$ ]/g);

// Add cell at a time
todayData.forEach((metric) => csvBuilder.addCell(someCalculation(metric)));

// Finally download
csvBuilder.download();

CsvBuilder

Configuration

OptionDefaultType
encodingTypedata:text/csv;charset=utf-8String
file''String
fileSuffix.csvString
filenamecsv-downloadString
includeTimeStamptrueBoolean
nonValueIndices[]Array
sanitizeRegex/[^a-zA-Z0-9:\./_\-@$ ]/gRegExp
sanitizeValuestrueBoolean

Methods

.addCell(val: CELL_TYPE, sanitize: boolean = true)
.addRow(val: CELL_TYPE | ROW_ARRAY_TYPE, sanitize?: boolean)
.addRows(rows: ROW_ARRAY_TYPE[])
.addNewLine(count: number = 1)
.addSection({ title, headers, rows, newLines }: SECTION_TYPE)
.getEncodedFile()
.getFilename()
.changeRegex(passedRegex: RegExp)
.download()

CsvDownloader

If using the CsvBuilder, you do not need to separately use the CsvDownloader, but it can be used on its own if needed.

Configuration (all required if using separately)

OptionType
encodedFileString
filenameString

Methods

.getBlob()
.getBlobUrl(csvData: Blob)
.download()

Keywords

FAQs

Package last updated on 02 Dec 2022

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc