UNPKG

@bitbybit-dev/core

Version:

Bit By Bit Developers Core CAD API to Program Geometry

126 lines (125 loc) 5.06 kB
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=02 * @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; }