@bitbybit-dev/core
Version:
Bit By Bit Developers Core CAD API to Program Geometry
126 lines (125 loc) • 5.06 kB
TypeScript
import * as Inputs from "../inputs";
/**
* Contains various CSV parsing and generation methods.
*/
export declare class CSVBitByBit {
/**
* Parses CSV text to a 2D array of strings (rows and columns).
* Example: csv='a,b,c\n1,2,3' → [['a','b','c'], ['1','2','3']]
* @param inputs CSV text and parsing options
* @returns 2D array of strings
* @group parse
* @shortname parse to array
* @drawable false
*/
parseToArray(inputs: Inputs.CSV.ParseToArrayDto): string[][];
/**
* Parses CSV text to an array of JSON objects using headers.
* Example: csv='name,age\nJohn,30\nJane,25', headerRow=0, dataStartRow=1
* → [{'name':'John','age':'30'}, {'name':'Jane','age':'25'}]
* @param inputs CSV text and parsing options
* @returns Array of JSON objects
* @group parse
* @shortname parse to json
* @drawable false
*/
parseToJson<T = Record<string, string | number>>(inputs: Inputs.CSV.ParseToJsonDto): T[];
/**
* Parses CSV text to JSON using custom headers (ignores CSV headers if present).
* Example: csv='John,30\nJane,25', headers=['name','age']
* → [{'name':'John','age':'30'}, {'name':'Jane','age':'25'}]
* @param inputs CSV text, custom headers, and parsing options
* @returns Array of JSON objects
* @group parse
* @shortname parse to json with headers
* @drawable false
*/
parseToJsonWithHeaders<T = Record<string, string | number>>(inputs: Inputs.CSV.ParseToJsonWithHeadersDto): T[];
/**
* Queries CSV data by column/header name and returns all values in that column.
* Example: csv='name,age\nJohn,30\nJane,25', column='name' → ['John', 'Jane']
* @param inputs CSV text, column name, and parsing options
* @returns Array of values from the specified column
* @group query
* @shortname query column
* @drawable false
*/
queryColumn<T = Record<string, string | number>>(inputs: Inputs.CSV.QueryColumnDto): (string | number)[];
/**
* Queries CSV data and filters rows where a column matches a value.
* Example: csv='name,age\nJohn,30\nJane,25', column='age', value='30' → [{'name':'John','age':'30'}]
* @param inputs CSV text, column name, value, and parsing options
* @returns Array of matching rows as JSON objects
* @group query
* @shortname query rows by value
* @drawable false
*/
queryRowsByValue<T = Record<string, string | number>>(inputs: Inputs.CSV.QueryRowsByValueDto): T[];
/**
* Converts a 2D array to CSV text.
* Example: array=[['name','age'], ['John','30']] → 'name,age\nJohn,30'
* @param inputs 2D array and formatting options
* @returns CSV text
* @group generate
* @shortname array to csv
* @drawable false
*/
arrayToCsv(inputs: Inputs.CSV.ArrayToCsvDto): string;
/**
* Converts an array of JSON objects to CSV text.
* Example: json=[{'name':'John','age':'30'}], headers=['name','age'] → 'name,age\nJohn,30'
* @param inputs JSON array, headers, and formatting options
* @returns CSV text
* @group generate
* @shortname json to csv
* @drawable false
*/
jsonToCsv<T = Record<string, unknown>>(inputs: Inputs.CSV.JsonToCsvDto<T>): string;
/**
* Converts an array of JSON objects to CSV text using object keys as headers.
* Example: json=[{'name':'John','age':'30'}] → 'name,age\nJohn,30'
* @param inputs JSON array and formatting options
* @returns CSV text
* @group generate
* @shortname json to csv auto
* @drawable false
*/
jsonToCsvAuto<T = Record<string, unknown>>(inputs: Inputs.CSV.JsonToCsvAutoDto<T>): string;
/**
* Gets the headers from a CSV file.
* Example: csv='name,age\nJohn,30', headerRow=0 → ['name', 'age']
* @param inputs CSV text and options
* @returns Array of header names
* @group query
* @shortname get headers
* @drawable false
*/
getHeaders(inputs: Inputs.CSV.GetHeadersDto): string[];
/**
* Gets the number of rows in a CSV file (excluding headers if specified).
* Example: csv='name,age\nJohn,30\nJane,25', headerRow=0 → 2
* @param inputs CSV text and options
* @returns Number of data rows
* @group query
* @shortname row count
* @drawable false
*/
getRowCount(inputs: Inputs.CSV.GetRowCountDto): number;
/**
* Gets the number of columns in a CSV file.
* Example: csv='name,age,city\nJohn,30,NYC' → 3
* @param inputs CSV text and options
* @returns Number of columns
* @group query
* @shortname column count
* @drawable false
*/
getColumnCount(inputs: Inputs.CSV.ParseToArrayDto): number;
private parseCsvLine;
private escapeCsvCell;
/**
* Converts literal escape sequence strings to their actual characters.
* For example, converts "\\n" (two characters) to "\n" (newline character).
*/
private convertEscapeSequences;
}