Skip to content

Commit 17b82cd

Browse files
Update/DF-20661 csv updates (#3516)
* DF-20661 add delimiter selector and trim * add changeset --------- Co-authored-by: app-token-issuer-data-feeds[bot] <134377064+app-token-issuer-data-feeds[bot]@users.noreply.github.com>
1 parent 89c8fae commit 17b82cd

File tree

3 files changed

+18
-1
lines changed

3 files changed

+18
-1
lines changed

.changeset/big-brooms-work.md

+5
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
'@chainlink/s3-csv-reader-adapter': minor
3+
---
4+
5+
Trim values and delimiter selector

packages/sources/s3-csv-reader/src/endpoint/csv.ts

+7
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,12 @@ export const inputParameters = new InputParameters(
4848
description:
4949
'The column of the CSV file to return a result for, where the row value for matcherColumn is equal to matcherValue',
5050
},
51+
delimiter: {
52+
required: false,
53+
type: 'string',
54+
default: ',',
55+
description: 'The delimiter used for the CSV file',
56+
},
5157
},
5258
[
5359
{
@@ -57,6 +63,7 @@ export const inputParameters = new InputParameters(
5763
matcherColumn: 'matcherColumn',
5864
matcherValue: 'value',
5965
resultColumn: 'resultColumn',
66+
delimiter: ',',
6067
},
6168
],
6269
)

packages/sources/s3-csv-reader/src/transport/csv.ts

+6-1
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,8 @@ export class S3PollerTransport extends SubscriptionTransport<TransportTypes> {
6060
}
6161

6262
async _handleRequest(param: RequestParams): Promise<AdapterResponse<TransportTypes['Response']>> {
63-
const { bucket, keyPrefix, headerRow, resultColumn, matcherColumn, matcherValue } = param
63+
const { bucket, keyPrefix, headerRow, resultColumn, matcherColumn, matcherValue, delimiter } =
64+
param
6465
const providerDataRequestedUnixMs = Date.now()
6566

6667
if (!(await bucketExistsS3(this.s3Client, bucket))) {
@@ -86,6 +87,7 @@ export class S3PollerTransport extends SubscriptionTransport<TransportTypes> {
8687
matcherColumn,
8788
matcherValue,
8889
resultColumn,
90+
delimiter,
8991
)
9092

9193
return {
@@ -113,6 +115,7 @@ export class S3PollerTransport extends SubscriptionTransport<TransportTypes> {
113115
matcherColumn: string,
114116
matcherValue: string,
115117
resultColumn: string,
118+
delimiter: string,
116119
): number {
117120
let parsed: Record<string, string>[]
118121
try {
@@ -121,6 +124,8 @@ export class S3PollerTransport extends SubscriptionTransport<TransportTypes> {
121124
parsed = parse(csvFileAsStr, {
122125
columns: true,
123126
from_line: headerRow,
127+
trim: true,
128+
delimiter,
124129
})
125130
} catch (error) {
126131
throw new Error(`Error parsing CSV file: ${error}`)

0 commit comments

Comments
 (0)