Skip to content
This repository was archived by the owner on Jul 30, 2024. It is now read-only.

[events] Add experimental captureRejections, events.on, add events.errorMonitor #237

Merged
merged 1 commit into from
May 27, 2020
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package io.scalajs.nodejs.events

import com.thoughtworks.enableIf
import net.exoego.scalajs.types.util.Factory

import scala.scalajs.js
import scala.scalajs.js.annotation.JSImport
Expand All @@ -15,7 +16,22 @@ import scala.scalajs.js.annotation.JSImport
*/
@js.native
@JSImport("events", "EventEmitter")
class EventEmitter extends IEventEmitter
class EventEmitter() extends IEventEmitter {
@enableIf(io.scalajs.nodejs.internal.CompilerSwitches.gteNodeJs12)
def this(options: EventEmitterOptions) = this()
}

@Factory
trait EventEmitterOptions extends js.Object {

/** It enables automatic capturing of promise rejection.
* Default: false.
*
* Experimental !
*/
@enableIf(io.scalajs.nodejs.internal.CompilerSwitches.gteNodeJs12)
var captureRejections: Boolean
}

/**
* EventEmitter Interface
Expand Down Expand Up @@ -148,8 +164,29 @@ object EventEmitter extends js.Object {
*/
var defaultMaxListeners: Int = js.native

/** Change the default captureRejections option on all new EventEmitter objects.
*
* experimental!
*/
@enableIf(io.scalajs.nodejs.internal.CompilerSwitches.gteNodeJs12)
var captureRejections: Boolean = js.native

/** experimental! */
@enableIf(io.scalajs.nodejs.internal.CompilerSwitches.gteNodeJs12)
var captureRejectionSymbol: js.Symbol = js.native

@enableIf(io.scalajs.nodejs.internal.CompilerSwitches.gteNodeJs12)
def once(emitter: IEventEmitter, eventName: String): js.Promise[js.Array[js.Any]] = js.native
// TODO: Return AsyncIterator
@enableIf(io.scalajs.nodejs.internal.CompilerSwitches.gteNodeJs12)
def on(emitter: IEventEmitter, eventName: String): js.Any = js.native

// TODO: Return AsyncIterator
@enableIf(io.scalajs.nodejs.internal.CompilerSwitches.gteNodeJs12)
def on(emitter: IEventEmitter, eventName: js.Symbol): js.Any = js.native

@enableIf(io.scalajs.nodejs.internal.CompilerSwitches.gteNodeJs12)
var errorMonitor: js.Symbol = js.native
}

@js.native
Expand Down