npm.io
0.2.0 • Published 3 years ago

wait-until-aws-lambda

Licence
MIT
Version
0.2.0
Deps
1
Size
4 kB
Vulns
0
Weekly
0

waitUntil for AWS Lambda

Fake waitUntil in AWS Lambda and other platforms that don't support it.

import { waitUntilHandler, waitUntil } from 'wait-until-aws-lambda';

const delay = (time) => new Promise(res => setTimeout(res, time));

export const handler = waitUntilHandler(async (event, context) => {
  waitUntil(delay(1000));

  return 'hello world';
});

The callback will be delayed until the promises have finished.

Motivation

We're migrating to Cloudflare Workers, partly because waitUntil is available there. With this library we can have a common API between Workers and Lambdas.

Caveat

The waitUntilHandler only supports async handlers (which return promises).

Other platforms
import { WaitUntilList } from 'wait-until-aws-lambda';

let waitUntilList = new WaitUntilList();

export const doStuff = async () => {
  const waitUntil = waitUntilList.waitUntil;
  functionThatCanCallWaitUntil(waitUntil);
  await waitUntilList.waitUntilFinished();
  waitUntilList = new WaitUntilList();
};