EventEmitterOptions {
/**
* The type of async event.
- * @default new.target.name
+ * @default new.target.name if instantiated as a child class.
*/
name?: string
}
/**
- * Integrates `EventEmitter` with `AsyncResource` for `EventEmitters` that require
+ * Integrates `EventEmitter` with `AsyncResource` for `EventEmitter`s that require
* manual async tracking. Specifically, all events emitted by instances of
* `EventEmitterAsyncResource` will run within its async context.
*
* The EventEmitterAsyncResource class has the same methods and takes the
* same options as EventEmitter and AsyncResource themselves.
+ * @throws if `options.name` is not provided when instantiated directly.
+ * @since v17.4.0, v16.14.0
*/
export class EventEmitterAsyncResource extends EventEmitter {
+ /**
+ * @param options Only optional in child class.
+ */
constructor (options?: EventEmitterAsyncResourceOptions)
/**
* Call all `destroy` hooks. This should only ever be called once. An error will
* be thrown if it is called more than once. This **must** be manually called. If
* the resource is left to be collected by the GC then the `destroy` hooks will
* never be called.
- * @return A reference to `asyncResource`.
*/
- emitDestroy (): AsyncResource
+ emitDestroy (): void
/** The unique asyncId assigned to the resource. */
- get asyncId (): number
+ readonly asyncId: number
/** The same triggerAsyncId that is passed to the AsyncResource constructor. */
- get triggerAsyncId (): number
+ readonly triggerAsyncId: number
/** The underlying AsyncResource */
- get asyncResource (): AsyncResource & {
+ readonly asyncResource: AsyncResource & {
readonly eventEmitter: EventEmitterAsyncResource
}
}