From 71216a50f11d57425257c0dbc8768e20d23fa6f7 Mon Sep 17 00:00:00 2001 From: TATSUNO Yasuhiro Date: Tue, 9 Nov 2021 16:44:47 +0900 Subject: [PATCH] Add more Node.js 16 additions --- .node-version | 2 +- .../scala/io/scalajs/nodejs/buffer/Blob.scala | 3 +++ .../scalajs/nodejs/dns/PromisesResolver.scala | 3 +++ .../main/scala/io/scalajs/nodejs/fs/Fs.scala | 25 +++++++++++++++++++ .../io/scalajs/nodejs/stream/Stream.scala | 9 +++++++ .../io/scalajs/nodejs/webstream/package.scala | 8 ++++++ 6 files changed, 49 insertions(+), 1 deletion(-) create mode 100644 app/nodejs-v16/src/main/scala/io/scalajs/nodejs/webstream/package.scala diff --git a/.node-version b/.node-version index a8ec175a..4be2b935 100644 --- a/.node-version +++ b/.node-version @@ -1 +1 @@ -v16.3.0 +v16.9.1 diff --git a/app/nodejs-v16/src/main/scala/io/scalajs/nodejs/buffer/Blob.scala b/app/nodejs-v16/src/main/scala/io/scalajs/nodejs/buffer/Blob.scala index 4c952f0c..4c5ea55d 100644 --- a/app/nodejs-v16/src/main/scala/io/scalajs/nodejs/buffer/Blob.scala +++ b/app/nodejs-v16/src/main/scala/io/scalajs/nodejs/buffer/Blob.scala @@ -1,6 +1,7 @@ package io.scalajs.nodejs.buffer import com.thoughtworks.enableMembersIf +import io.scalajs.nodejs.webstream import net.exoego.scalajs.types.util.Factory import scala.scalajs.js @@ -31,6 +32,8 @@ class Blob() extends js.Object { */ @JSName("type") def contentType: String = js.native + + def stream(): webstream.ReadableStream = js.native } @Factory diff --git a/app/nodejs-v16/src/main/scala/io/scalajs/nodejs/dns/PromisesResolver.scala b/app/nodejs-v16/src/main/scala/io/scalajs/nodejs/dns/PromisesResolver.scala index 73026ca2..d90e292c 100644 --- a/app/nodejs-v16/src/main/scala/io/scalajs/nodejs/dns/PromisesResolver.scala +++ b/app/nodejs-v16/src/main/scala/io/scalajs/nodejs/dns/PromisesResolver.scala @@ -29,4 +29,7 @@ class PromisesResolver extends js.Object { def resolvePtr(hostname: String): js.Promise[js.Array[String]] = js.native def resolveTxt(hostname: String): js.Promise[js.Array[String]] = js.native def reverse(ipAddress: String): js.Promise[js.Array[String]] = js.native + + @enableIf(io.scalajs.nodejs.internal.CompilerSwitches.gteNodeJs14) + def setDefaultResultOrder(order: String): js.Promise[Unit] = js.native } diff --git a/app/nodejs-v16/src/main/scala/io/scalajs/nodejs/fs/Fs.scala b/app/nodejs-v16/src/main/scala/io/scalajs/nodejs/fs/Fs.scala index 5e40f1c9..3fcfb3b1 100644 --- a/app/nodejs-v16/src/main/scala/io/scalajs/nodejs/fs/Fs.scala +++ b/app/nodejs-v16/src/main/scala/io/scalajs/nodejs/fs/Fs.scala @@ -1332,6 +1332,16 @@ trait Fs extends js.Object { def writevSync(fd: FileDescriptor, buffers: js.Array[js.typedarray.ArrayBufferView], position: Int): Unit = js.native @enableIf(io.scalajs.nodejs.internal.CompilerSwitches.gteNodeJs12) def writevSync(fd: FileDescriptor, buffers: js.Array[js.typedarray.ArrayBufferView]): Unit = js.native + + @enableIf(io.scalajs.nodejs.internal.CompilerSwitches.gteNodeJs16) + def cpSync(src: Path, dest: Path, options: CpOptions): Unit = js.native + @enableIf(io.scalajs.nodejs.internal.CompilerSwitches.gteNodeJs16) + def cpSync(src: Path, dest: Path): Unit = js.native + + @enableIf(io.scalajs.nodejs.internal.CompilerSwitches.gteNodeJs16) + def cp(src: Path, dest: Path, options: CpOptions, fsCallback2: FsCallback0): Unit = js.native + @enableIf(io.scalajs.nodejs.internal.CompilerSwitches.gteNodeJs16) + def cp(src: Path, dest: Path, fsCallback2: FsCallback0): Unit = js.native } /** File System Singleton @@ -1451,6 +1461,11 @@ object Fs extends Fs { def writeFile(file: FileHandle, data: BufferLike, options: FileWriteOptions): js.Promise[Unit] = js.native def writeFile(file: FileHandle, data: String): js.Promise[Unit] = js.native def writeFile(file: FileHandle, data: BufferLike): js.Promise[Unit] = js.native + + @enableIf(io.scalajs.nodejs.internal.CompilerSwitches.gteNodeJs16) + def cp(src: Path, dest: Path): js.Promise[Unit] = js.native + @enableIf(io.scalajs.nodejs.internal.CompilerSwitches.gteNodeJs16) + def cp(src: Path, dest: Path, options: CpOptions): js.Promise[Unit] = js.native } @js.native @@ -1680,3 +1695,13 @@ trait FsPromiseWatchOptions extends js.Object { var persistent: js.UndefOr[Boolean] = js.undefined var recursive: js.UndefOr[Boolean] = js.undefined } + +@Factory +trait CpOptions extends js.Object { + var filter: js.UndefOr[js.Function1[String, Boolean]] = js.undefined + var dereference: js.UndefOr[Boolean] = js.undefined + var errorOnExist: js.UndefOr[Boolean] = js.undefined + var force: js.UndefOr[Boolean] = js.undefined + var preserveTimestamps: js.UndefOr[Boolean] = js.undefined + var recursive: js.UndefOr[Boolean] = js.undefined +} diff --git a/app/nodejs-v16/src/main/scala/io/scalajs/nodejs/stream/Stream.scala b/app/nodejs-v16/src/main/scala/io/scalajs/nodejs/stream/Stream.scala index e0e714df..61f623dc 100644 --- a/app/nodejs-v16/src/main/scala/io/scalajs/nodejs/stream/Stream.scala +++ b/app/nodejs-v16/src/main/scala/io/scalajs/nodejs/stream/Stream.scala @@ -19,6 +19,15 @@ trait Stream extends js.Object @js.native @JSImport("stream", JSImport.Namespace) object Stream extends js.Object { + @enableIf(io.scalajs.nodejs.internal.CompilerSwitches.gteNodeJs16) + def compose(first: Stream, rest: Stream*): Duplex = js.native + + @enableIf(io.scalajs.nodejs.internal.CompilerSwitches.gteNodeJs16) + def compose(first: js.Iterable[Stream], rest: js.Iterable[Stream]*): Duplex = js.native + + @enableIf(io.scalajs.nodejs.internal.CompilerSwitches.gteNodeJs16) + def compose(first: js.Function0[Stream], rest: js.Function0[Stream]*): Duplex = js.native + @enableIf(io.scalajs.nodejs.internal.CompilerSwitches.gteNodeJs14) def addAbortSignal[T <: Stream](signal: AbortSignal, stream: T): T = js.native diff --git a/app/nodejs-v16/src/main/scala/io/scalajs/nodejs/webstream/package.scala b/app/nodejs-v16/src/main/scala/io/scalajs/nodejs/webstream/package.scala new file mode 100644 index 00000000..656769b0 --- /dev/null +++ b/app/nodejs-v16/src/main/scala/io/scalajs/nodejs/webstream/package.scala @@ -0,0 +1,8 @@ +package io.scalajs.nodejs + +import scala.scalajs.js + +package object webstream { + // FIXME + type ReadableStream = js.Any +}