async function sendResponseAsync()

in backend/Functions/Main/webpush_vapid_generate/app.js [78:113]


async function sendResponseAsync(event, context, responseStatus, responseData) {
  const responsePromise = new Promise((resolve, reject) => {
    const responseBody = JSON.stringify({
      Status: responseStatus,
      Reason: `CloudWatch Log Stream: ${context.logStreamName}`,
      PhysicalResourceId: context.logStreamName,
      StackId: event.StackId,
      RequestId: event.RequestId,
      LogicalResourceId: event.LogicalResourceId,
      Data: responseData,
    });
    const parsedUrl = url.parse(event.ResponseURL);
    const options = {
      hostname: parsedUrl.hostname,
      port: 443,
      path: parsedUrl.path,
      method: 'PUT',
      headers: {
        'content-type': '',
        'content-length': responseBody.length,
      },
    };
    const request = https.request(options, () => {
      resolve(JSON.parse(responseBody));
      context.done();
    });
    request.on('error', (error) => {
      console.error(`sendResponse Error: ${error}`);
      reject(error);
      context.done();
    });
    request.write(responseBody);
    request.end();
  });
  return responsePromise;
}