Skip to main content
@graphysdk/data-import-utils converts CSV, TSV, and spreadsheet files into the Data structure expected by @graphysdk/core.

Installation

npm install @graphysdk/data-import-utils @graphysdk/core

Parse a CSV

import { fromCSV } from '@graphysdk/data-import-utils';

const data = fromCSV('Name,Revenue\nAcme,1000\nGlobex,2000');
// { columns: [{ key: 'c1', label: 'Name' }, ...], rows: [...] }

Parse a Spreadsheet

import { fromXLSX } from '@graphysdk/data-import-utils/xlsx';

const buffer = await file.arrayBuffer();
const data = await fromXLSX(buffer, { sheet: 'Revenue' });

Parse from Disk (Node.js)

import { fromFile } from '@graphysdk/data-import-utils/file';

const data = await fromFile('sales.csv');
fromFile auto-detects the format from the file extension. See File for details.

Parse from URL

import { fromURL } from '@graphysdk/data-import-utils/url';

const data = await fromURL('https://example.com/sales.csv');
fromURL fetches a remote file and auto-detects the format from the URL path extension. See URL for details.

Features

FeatureDetails
FormatsCSV, TSV, XLSX, XLS, ODS
SSRF protectionfromURL blocks private IPs and non-http(s) schemes
Timeout supportfromURL supports configurable timeout and AbortSignal
Byte-budget enforcementAll parsers enforce a configurable maxFileSize limit; fromURL aborts streaming downloads early
Row / cell limitsSpreadsheet parsers enforce maxRows (default 100k) and maxCells (default 5M)

Entrypoints

Sources

SourceFunctionEntrypoint
Local filefromFile()@graphysdk/data-import-utils/file
Remote URLfromURL()@graphysdk/data-import-utils/url
Text (CSV/TSV)fromText()@graphysdk/data-import-utils/text
Binary (XLSX/XLS/ODS)fromBuffer()@graphysdk/data-import-utils/buffer

Formats

FormatFunctionInput typeEntrypoint
CSVfromCSV()string@graphysdk/data-import-utils (root) or /csv
TSVfromTSV()string@graphysdk/data-import-utils (root) or /tsv
XLSXfromXLSX()ArrayBuffer@graphysdk/data-import-utils/xlsx
XLSfromXLS()ArrayBuffer@graphysdk/data-import-utils/xls
ODSfromODS()ArrayBuffer@graphysdk/data-import-utils/ods