UNPKG

csv-parse

Version:

CSV parsing implementing the Node.js `stream.Transform` API

34 lines (30 loc) 1.1 kB
import {CsvError} from './CsvError.js'; import {is_object} from '../utils/is_object.js'; const normalize_columns_array = function(columns){ const normalizedColumns = []; for(let i = 0, l = columns.length; i < l; i++){ const column = columns[i]; if(column === undefined || column === null || column === false){ normalizedColumns[i] = { disabled: true }; }else if(typeof column === 'string'){ normalizedColumns[i] = { name: column }; }else if(is_object(column)){ if(typeof column.name !== 'string'){ throw new CsvError('CSV_OPTION_COLUMNS_MISSING_NAME', [ 'Option columns missing name:', `property "name" is required at position ${i}`, 'when column is an object literal' ]); } normalizedColumns[i] = column; }else{ throw new CsvError('CSV_INVALID_COLUMN_DEFINITION', [ 'Invalid column definition:', 'expect a string or a literal object,', `got ${JSON.stringify(column)} at position ${i}` ]); } } return normalizedColumns; }; export {normalize_columns_array};