Sha256: 5e1c666a77b80e21d210553292cb20a71641df49295573a7f79ef5ef4f7149f1

Contents?: true

Size: 622 Bytes

Versions: 26

Compression:

Stored size: 622 Bytes

Contents

import { Emitter, EventMap } from 'strict-event-emitter'

/**
 * Emits an event on the given emitter but executes
 * the listeners sequentially. This accounts for asynchronous
 * listeners (e.g. those having "sleep" and handling the request).
 */
export async function emitAsync<
  Events extends EventMap,
  EventName extends keyof Events
>(
  emitter: Emitter<Events>,
  eventName: EventName,
  ...data: Events[EventName]
): Promise<void> {
  const listners = emitter.listeners(eventName)

  if (listners.length === 0) {
    return
  }

  for (const listener of listners) {
    await listener.apply(emitter, data)
  }
}

Version data entries

26 entries across 26 versions & 1 rubygems

Version Path
clapton-0.0.26 lib/clapton/javascripts/node_modules/@mswjs/interceptors/src/utils/emitAsync.ts
clapton-0.0.25 lib/clapton/javascripts/node_modules/@mswjs/interceptors/src/utils/emitAsync.ts
clapton-0.0.24 lib/clapton/javascripts/node_modules/@mswjs/interceptors/src/utils/emitAsync.ts
clapton-0.0.23 lib/clapton/javascripts/node_modules/@mswjs/interceptors/src/utils/emitAsync.ts
clapton-0.0.22 lib/clapton/javascripts/node_modules/@mswjs/interceptors/src/utils/emitAsync.ts
clapton-0.0.21 lib/clapton/javascripts/node_modules/@mswjs/interceptors/src/utils/emitAsync.ts
clapton-0.0.20 lib/clapton/javascripts/node_modules/@mswjs/interceptors/src/utils/emitAsync.ts
clapton-0.0.19 lib/clapton/javascripts/node_modules/@mswjs/interceptors/src/utils/emitAsync.ts
clapton-0.0.18 lib/clapton/javascripts/node_modules/@mswjs/interceptors/src/utils/emitAsync.ts
clapton-0.0.17 lib/clapton/javascripts/node_modules/@mswjs/interceptors/src/utils/emitAsync.ts
clapton-0.0.16 lib/clapton/javascripts/node_modules/@mswjs/interceptors/src/utils/emitAsync.ts
clapton-0.0.15 lib/clapton/javascripts/node_modules/@mswjs/interceptors/src/utils/emitAsync.ts
clapton-0.0.14 lib/clapton/javascripts/node_modules/@mswjs/interceptors/src/utils/emitAsync.ts
clapton-0.0.13 lib/clapton/javascripts/node_modules/@mswjs/interceptors/src/utils/emitAsync.ts
clapton-0.0.12 lib/clapton/javascripts/node_modules/@mswjs/interceptors/src/utils/emitAsync.ts
clapton-0.0.11 lib/clapton/javascripts/node_modules/@mswjs/interceptors/src/utils/emitAsync.ts
clapton-0.0.10 lib/clapton/javascripts/node_modules/@mswjs/interceptors/src/utils/emitAsync.ts
clapton-0.0.9 lib/clapton/javascripts/node_modules/@mswjs/interceptors/src/utils/emitAsync.ts
clapton-0.0.8 lib/clapton/javascripts/node_modules/@mswjs/interceptors/src/utils/emitAsync.ts
clapton-0.0.7 lib/clapton/javascripts/node_modules/@mswjs/interceptors/src/utils/emitAsync.ts