csv-parse
- Version 5.6.0
- Published
- 1.42 MB
- No dependencies
- MIT license
Install
npm i csv-parse
yarn add csv-parse
pnpm add csv-parse
Overview
CSV parsing implementing the Node.js `stream.Transform` API
Index
Functions
Classes
Interfaces
Options
- auto_parse
- auto_parse_date
- autoParse
- autoParseDate
- bom
- cast
- cast_date
- castDate
- columns
- comment
- comment_no_infix
- delimiter
- encoding
- escape
- from
- from_line
- fromLine
- group_columns_by_name
- groupColumnsByName
- ignore_last_delimiters
- info
- ltrim
- max_record_size
- maxRecordSize
- objname
- on_record
- onRecord
- quote
- raw
- record_delimiter
- recordDelimiter
- relax_column_count
- relax_column_count_less
- relax_column_count_more
- relax_quotes
- relaxColumnCount
- relaxColumnCountLess
- relaxColumnCountMore
- relaxQuotes
- rtrim
- skip_empty_lines
- skip_records_with_empty_values
- skip_records_with_error
- skipEmptyLines
- skipRecordsWithEmptyValues
- skipRecordsWithError
- to
- to_line
- toLine
- trim
Type Aliases
Functions
function parse
parse: { (input: Buffer | string, options?: Options, callback?: Callback): Parser; (input: any, callback?: Callback): Parser; (options?: Options, callback?: Callback): Parser; (callback?: Callback): Parser;};
Classes
class CsvError
class CsvError extends Error {}
constructor
constructor( code: CsvErrorCode, message: string | string[], options?: Options, ...contexts: any[]);
property code
readonly code: CsvErrorCode;
class Parser
class Parser {}
constructor
constructor(options: Options);
property info
readonly info: Info;
property options
readonly options: Options;
Interfaces
interface CastingContext
interface CastingContext {}
property column
readonly column: number | string;
property empty_lines
readonly empty_lines: number;
property error
readonly error: CsvError;
property header
readonly header: boolean;
property index
readonly index: number;
property invalid_field_length
readonly invalid_field_length: number;
property lines
readonly lines: number;
property quoting
readonly quoting: boolean;
property records
readonly records: number;
interface Info
interface Info {}
property bytes
readonly bytes: number;
Count of the number of processed bytes.
property columns
readonly columns: boolean | { name: string }[] | { disabled: true }[];
Normalized verion of
options.columns
whenoptions.columns
is true, boolean otherwise.
property comment_lines
readonly comment_lines: number;
Count the number of lines being fully commented.
property empty_lines
readonly empty_lines: number;
Count the number of processed empty lines.
property invalid_field_length
readonly invalid_field_length: number;
Number of non uniform records when
relax_column_count
is true.
property lines
readonly lines: number;
The number of lines encountered in the source dataset, start at 1 for the first line.
property records
readonly records: number;
Count the number of processed records.
interface Options
interface Options {}
property auto_parse
auto_parse?: boolean | CastingFunction;
If true, the parser will attempt to convert read data types to native types.
Deprecated
Use cast
property auto_parse_date
auto_parse_date?: boolean | CastingDateFunction;
If true, the parser will attempt to convert read data types to dates. It requires the "auto_parse" option.
Deprecated
Use cast_date
property autoParse
autoParse?: boolean | CastingFunction;
property autoParseDate
autoParseDate?: boolean | CastingDateFunction;
property bom
bom?: boolean;
If true, detect and exclude the byte order mark (BOM) from the CSV input if present.
property cast
cast?: boolean | CastingFunction;
If true, the parser will attempt to convert input string to native types. If a function, receive the value as first argument, a context as second argument and return a new value. More information about the context properties is available below.
property cast_date
cast_date?: boolean | CastingDateFunction;
If true, the parser will attempt to convert input string to dates. If a function, receive the value as argument and return a new value. It requires the "auto_parse" option. Be careful, it relies on Date.parse.
property castDate
castDate?: boolean | CastingDateFunction;
property columns
columns?: ColumnOption[] | boolean | ((record: any) => ColumnOption[]);
List of fields as an array, a user defined callback accepting the first line and returning the column names or true if autodiscovered in the first CSV line, default to null, affect the result data set in the sense that records will be objects instead of arrays.
property comment
comment?: string;
Treat all the characters after this one as a comment, default to '' (disabled).
property comment_no_infix
comment_no_infix?: boolean;
Restrict the definition of comments to a full line. Comment characters defined in the middle of the line are not interpreted as such. The option require the activation of comments.
property delimiter
delimiter?: string | string[] | Buffer;
Set the field delimiter. One character only, defaults to comma.
property encoding
encoding?: BufferEncoding | undefined;
Set the source and destination encoding, a value of
null
returns buffer instead of strings.
property escape
escape?: string | null | false | Buffer;
Set the escape character, one character only, defaults to double quotes.
property from
from?: number;
Start handling records from the requested number of records.
property from_line
from_line?: number;
Start handling records from the requested line number.
property fromLine
fromLine?: number;
property group_columns_by_name
group_columns_by_name?: boolean;
Convert values into an array of values when columns are activated and when multiple columns of the same name are found.
property groupColumnsByName
groupColumnsByName?: boolean;
property ignore_last_delimiters
ignore_last_delimiters?: boolean | number;
Don't interpret delimiters as such in the last field according to the number of fields calculated from the number of columns, the option require the presence of the
column
option whentrue
.
property info
info?: boolean;
Generate two properties
info
andrecord
whereinfo
is a snapshot of the info object at the time the record was created andrecord
is the parsed array or object.
property ltrim
ltrim?: boolean;
If true, ignore whitespace immediately following the delimiter (i.e. left-trim all fields), defaults to false. Does not remove whitespace in a quoted field.
property max_record_size
max_record_size?: number;
Maximum numer of characters to be contained in the field and line buffers before an exception is raised, used to guard against a wrong delimiter or record_delimiter, default to 128000 characters.
property maxRecordSize
maxRecordSize?: number;
property objname
objname?: string;
Name of header-record title to name objects by.
property on_record
on_record?: (record: any, context: CastingContext) => any;
Alter and filter records by executing a user defined function.
property onRecord
onRecord?: (record: any, context: CastingContext) => any;
property quote
quote?: string | boolean | Buffer | null;
Optional character surrounding a field, one character only, defaults to double quotes.
property raw
raw?: boolean;
Generate two properties raw and row where raw is the original CSV row content and row is the parsed array or object.
property record_delimiter
record_delimiter?: string | string[] | Buffer | Buffer[];
One or multiple characters used to delimit record rows; defaults to auto discovery if not provided. Supported auto discovery method are Linux ("\n"), Apple ("\r") and Windows ("\r\n") row delimiters.
property recordDelimiter
recordDelimiter?: string | string[] | Buffer | Buffer[];
property relax_column_count
relax_column_count?: boolean;
Discard inconsistent columns count, default to false.
property relax_column_count_less
relax_column_count_less?: boolean;
Discard inconsistent columns count when the record contains less fields than expected, default to false.
property relax_column_count_more
relax_column_count_more?: boolean;
Discard inconsistent columns count when the record contains more fields than expected, default to false.
property relax_quotes
relax_quotes?: boolean;
Preserve quotes inside unquoted field.
property relaxColumnCount
relaxColumnCount?: boolean;
property relaxColumnCountLess
relaxColumnCountLess?: boolean;
property relaxColumnCountMore
relaxColumnCountMore?: boolean;
property relaxQuotes
relaxQuotes?: boolean;
property rtrim
rtrim?: boolean;
If true, ignore whitespace immediately preceding the delimiter (i.e. right-trim all fields), defaults to false. Does not remove whitespace in a quoted field.
property skip_empty_lines
skip_empty_lines?: boolean;
Dont generate empty values for empty lines. Defaults to false
property skip_records_with_empty_values
skip_records_with_empty_values?: boolean;
Don't generate records for lines containing empty column values (column matching /\s*/), defaults to false.
property skip_records_with_error
skip_records_with_error?: boolean;
Skip a line with error found inside and directly go process the next line.
property skipEmptyLines
skipEmptyLines?: boolean;
property skipRecordsWithEmptyValues
skipRecordsWithEmptyValues?: boolean;
property skipRecordsWithError
skipRecordsWithError?: boolean;
property to
to?: number;
Stop handling records after the requested number of records.
property to_line
to_line?: number;
Stop handling records after the requested line number.
property toLine
toLine?: number;
property trim
trim?: boolean;
If true, ignore whitespace immediately around the delimiter, defaults to false. Does not remove whitespace in a quoted field.
interface Parser
interface Parser extends stream.Transform {}
Type Aliases
type Callback
type Callback = ( err: CsvError | undefined, records: any | undefined, info: Info) => void;
type CastingDateFunction
type CastingDateFunction = (value: string, context: CastingContext) => Date;
type CastingFunction
type CastingFunction = (value: string, context: CastingContext) => any;
type ColumnOption
type ColumnOption = string | undefined | null | false | { name: string };
type CsvErrorCode
type CsvErrorCode = | 'CSV_INVALID_OPTION_BOM' | 'CSV_INVALID_OPTION_CAST' | 'CSV_INVALID_OPTION_CAST_DATE' | 'CSV_INVALID_OPTION_COLUMNS' | 'CSV_INVALID_OPTION_GROUP_COLUMNS_BY_NAME' | 'CSV_INVALID_OPTION_COMMENT' | 'CSV_INVALID_OPTION_DELIMITER' | 'CSV_INVALID_OPTION_ON_RECORD' | 'CSV_INVALID_CLOSING_QUOTE' | 'INVALID_OPENING_QUOTE' | 'CSV_INVALID_COLUMN_MAPPING' | 'CSV_INVALID_ARGUMENT' | 'CSV_INVALID_COLUMN_DEFINITION' | 'CSV_MAX_RECORD_SIZE' | 'CSV_NON_TRIMABLE_CHAR_AFTER_CLOSING_QUOTE' | 'CSV_QUOTE_NOT_CLOSED' | 'CSV_RECORD_INCONSISTENT_FIELDS_LENGTH' | 'CSV_RECORD_INCONSISTENT_COLUMNS' | 'CSV_OPTION_COLUMNS_MISSING_NAME';
Package Files (1)
Dependencies (0)
No dependencies.
Dev Dependencies (22)
Peer Dependencies (0)
No peer dependencies.
Badge
To add a badge like this oneto your package's README, use the codes available below.
You may also use Shields.io to create a custom badge linking to https://www.jsdocs.io/package/csv-parse
.
- Markdown[![jsDocs.io](https://img.shields.io/badge/jsDocs.io-reference-blue)](https://www.jsdocs.io/package/csv-parse)
- HTML<a href="https://www.jsdocs.io/package/csv-parse"><img src="https://img.shields.io/badge/jsDocs.io-reference-blue" alt="jsDocs.io"></a>
- Updated .
Package analyzed in 3827 ms. - Missing or incorrect documentation? Open an issue for this package.