export async function loadDataFile()

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;
    }
}