in lambda/src/data-file.ts [42:71]
export async function loadDataFile(record: S3EventRecord): Promise<DataFile | null> {
const bucketName = record.s3.bucket.name;
const objectKey = record.s3.object.key;
const type = getType(objectKey);
const extension = getExtension(objectKey);
const file = await s3
.getObject({
Bucket: bucketName,
Key: objectKey,
})
.promise();
const content = file.Body?.toString('utf-8');
if (type && extension && content) {
let data;
if (extension === 'json') {
data = <unknown>JSON.parse(content);
} else {
data = <unknown>YAML.load(content);
}
return {
type,
data,
};
} else {
return null;
}
}