export async function handler()

in typescript/src/export/exportEvents.ts [23:56]


export async function handler(event?: ManualBackfillEvent): Promise<any> {
  const bucket = process.env['ExportBucket'];
  if (!bucket) throw new Error('Variable ExportBucket must be set');

  let yesterday = plusDays(new Date(), -1).toISOString().substr(0, 10);
  if (event && event.date) {
    yesterday = event.date;
  }

  const iterator = dynamoMapper.query(
    SubscriptionEventEmpty,
    { date: yesterday },
    { indexName: 'date-timestamp-index-v2' },
  );
  const stream = new DynamoStream(iterator, cleanupEvent);

  const zippedStream = zlib.createGzip();
  stream.pipe(zippedStream);

  const prefix = Stage === 'PROD' ? 'data' : 'code-data';
  const filename = `${prefix}/date=${yesterday}/${yesterday}.json.gz`;
  const managedUpload = s3.upload({
    Bucket: bucket,
    Key: filename,
    Body: zippedStream,
    ACL: 'bucket-owner-full-control',
  });

  await managedUpload.promise();

  console.log(`Export succeeded, read ${stream.recordCount()} records`);

  return { recordCount: stream.recordCount() };
}