csv-parse
Version:
CSV parsing implementing the Node.js `stream.Transform` API
34 lines (30 loc) • 1.1 kB
JavaScript
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};