diff --git a/app/current/src/main/scala/io/scalajs/nodejs/process/Process.scala b/app/current/src/main/scala/io/scalajs/nodejs/process/Process.scala index 456e6803c..949c9a341 100644 --- a/app/current/src/main/scala/io/scalajs/nodejs/process/Process.scala +++ b/app/current/src/main/scala/io/scalajs/nodejs/process/Process.scala @@ -5,7 +5,7 @@ import io.scalajs.nodejs.events.IEventEmitter import io.scalajs.nodejs.tty.{ReadStream, WriteStream} import scala.scalajs.js -import scala.scalajs.js.annotation.JSGlobal +import scala.scalajs.js.annotation.{JSBracketAccess, JSGlobal} import scala.scalajs.js.| /** @@ -82,10 +82,7 @@ trait Process extends IEventEmitter { */ def exitCode: Int = js.native - /** - * TODO find documentation for this property - */ - def features: js.Dictionary[Boolean] = js.native + def features: Features = js.native /** * Alternate way to retrieve require.main. The difference is that if the main module changes at runtime, @@ -481,3 +478,24 @@ trait ResourceUsage extends js.Object { var voluntaryContextSwitches: Int = js.native var involuntaryContextSwitches: Int = js.native } + +@js.native +trait Features extends js.Object { + @deprecated("Use named members", "v0.10.0") + @JSBracketAccess + def apply(key: String): Boolean = js.native + + val debug: Boolean = js.native + val uv: Boolean = js.native + val ipv6: Boolean = js.native + val tls_alpn: Boolean = js.native + val tls_sni: Boolean = js.native + val tls_ocsp: Boolean = js.native + val tls: Boolean = js.native + + @enableIf(io.scalajs.nodejs.internal.CompilerSwitches.gteNodeJs12) + val inspector: Boolean = js.native + + @enableIf(io.scalajs.nodejs.internal.CompilerSwitches.gteNodeJs12) + val cached_builtins: Boolean = js.native +} diff --git a/app/nodejs-v10/src/test/scala/io/scalajs/nodejs/process/ProcessTest.scala b/app/nodejs-v10/src/test/scala/io/scalajs/nodejs/process/ProcessTest.scala index 2fbbe86de..1f4abe6a0 100644 --- a/app/nodejs-v10/src/test/scala/io/scalajs/nodejs/process/ProcessTest.scala +++ b/app/nodejs-v10/src/test/scala/io/scalajs/nodejs/process/ProcessTest.scala @@ -23,7 +23,7 @@ class ProcessTest extends AnyFunSpec { assert(Process.env.PATH === Process.env("PATH")) assert(Process.execArgv.length === 0) assert(Process.execPath.endsWith("node")) - assert(Process.features.contains("debug")) + assert(Process.features.uv) assert(Process.moduleLoadList.length > 0) assert(Process.title.isInstanceOf[String]) assert(Process.version.startsWith(versionPrefix))