in src/lib/upload.ts [7:34]
export function uploadAsCsvToS3(
result: QueryResult,
bucket: string,
key: string,
): Promise<number> {
const header = result.fields.map((field) => ({
id: field.name,
title: field.name,
}));
const csvWriter = createObjectCsvStringifier({
header,
});
const csvHeader = csvWriter.getHeaderString() ?? '';
const csvRows = csvWriter.stringifyRecords(result.rows);
const csv = `${csvHeader}${csvRows}`;
return s3
.upload({
Bucket: bucket,
Key: key,
Body: csv,
ACL: 'bucket-owner-full-control',
})
.promise()
.then(() => result.rowCount ?? 0);
}