Skip to content

Commit

Permalink
feat(Extract from File Node): Add option to set encoding for CSV files (
Browse files Browse the repository at this point in the history
  • Loading branch information
Joffcom authored May 16, 2024
1 parent b5c7c06 commit f13dbc9
Show file tree
Hide file tree
Showing 3 changed files with 24 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,9 @@ export const description: INodeProperties[] = fromFile.description
if (newProperty.name === 'options') {
newProperty.options = (newProperty.options as INodeProperties[]).map((option) => {
let newOption = option;
if (['delimiter', 'fromLine', 'maxRowCount', 'enableBOM'].includes(option.name)) {
if (
['delimiter', 'encoding', 'fromLine', 'maxRowCount', 'enableBOM'].includes(option.name)
) {
newOption = { ...option, displayOptions: { show: { '/operation': ['csv'] } } };
}
if (option.name === 'sheetName') {
Expand Down
20 changes: 20 additions & 0 deletions packages/nodes-base/nodes/SpreadsheetFile/description.ts
Original file line number Diff line number Diff line change
Expand Up @@ -177,6 +177,26 @@ export const fromFileOptions: INodeProperties = {
placeholder: 'e.g. ,',
description: 'Set the field delimiter, usually a comma',
},
{
displayName: 'Encoding',
name: 'encoding',
type: 'options',
displayOptions: {
show: {
'/fileFormat': ['csv'],
},
},
options: [
{ name: 'ASCII', value: 'ascii' },
{ name: 'Latin1', value: 'latin1' },
{ name: 'UCS-2', value: 'ucs-2' },
{ name: 'UCS2', value: 'ucs2' },
{ name: 'UTF-8', value: 'utf-8' },
{ name: 'UTF16LE', value: 'utf16le' },
{ name: 'UTF8', value: 'utf8' },
],
default: 'utf-8',
},
{
displayName: 'Exclude Byte Order Mark (BOM)',
name: 'enableBOM',
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -92,6 +92,7 @@ export async function execute(
const parser = createCSVParser({
delimiter: options.delimiter as string,
fromLine: options.fromLine as number,
encoding: options.encoding as BufferEncoding,
bom: options.enableBOM as boolean,
to: maxRowCount > -1 ? maxRowCount : undefined,
columns: options.headerRow !== false,
Expand Down

0 comments on commit f13dbc9

Please sign in to comment.