Skip to content

jamesseanwright/event-dependent-promises

Repository files navigation

Event-Dependent Promises

Proxy async methods to await prerequisite EventEmitter events

import eventDependentPromises from '@peak-ai/event-dependent-promises';
import sdk, { Data, Events } from 'some-third-party-eventemitter';
import { APIGatewayEvent } from 'aws-lambda';

const dependentSdk = eventDependentPromises(
  sdk,
  Events.READY,
  Events.INIT_TIMEOUT,
  {
    getData(key: string) {
      // sdk.getData returns Promise<Data>
      return sdk.getData(key);
    },
  },
);

export const handler = (event: APIGatewayEvent): Promise<Data> => {
  const { body: key } = event;

  /* dependentSdk.getData(key) will invoke
   * sdk.getData(key) once the READY
   * event has been emitted or immediately
   * if it's been fired already. */
  return dependentSdk.getData(key)
};

About

Proxy async methods to await prerequisite EventEmitter events

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published