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

Commit bed5bc0

Browse files
authored
Merge pull request #94 from exoego/http2
Add http2 module
2 parents 61719c6 + ce44f86 commit bed5bc0

30 files changed

+1011
-1
lines changed

app/current/src/main/scala/io/scalajs/nodejs/http/ConnectionOptions.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ class ConnectionOptions(
1515
var lookup: js.UndefOr[js.Function1[String, Any]] = js.undefined,
1616
var onread: js.UndefOr[OnreadObject] = js.undefined,
1717
// for IPC connections
18-
var path: js.UndefOr[String],
18+
var path: js.UndefOr[String] = js.undefined,
1919
// for new Socket(option)
2020
var fd: js.UndefOr[Int] = js.undefined,
2121
var allowHalfOpen: js.UndefOr[Boolean] = js.undefined,
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
package io.scalajs.nodejs.http2
2+
3+
import scala.scalajs.js
4+
5+
@js.native
6+
trait ClientHttp2Session extends Http2Session {
7+
8+
def request(headers: Http2Headers, options: Http2RequestOptions = js.native): ClientHttp2Stream = js.native
9+
}
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
package io.scalajs.nodejs.http2
2+
3+
import scala.scalajs.js
4+
5+
@js.native
6+
trait ClientHttp2Stream extends Http2Stream
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
package io.scalajs.nodejs.http2
2+
3+
import scala.scalajs.js
4+
5+
trait HasOrigin extends js.Object {
6+
def origin: String
7+
}
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
package io.scalajs.nodejs.http2
2+
3+
import io.scalajs.nodejs.buffer.Buffer
4+
import io.scalajs.nodejs.url.URL
5+
6+
import scala.scalajs.js
7+
import scala.scalajs.js.annotation.JSImport
8+
import scala.scalajs.js.typedarray.Uint8Array
9+
import scala.scalajs.js.|
10+
11+
@js.native
12+
trait Http2 extends js.Object {
13+
def createServer(
14+
options: Http2ServerOptions,
15+
onRequestHandler: js.Function2[Http2ServerRequest, Http2ServerResponse, Any] = js.native
16+
): Http2Server = js.native
17+
18+
def createSecureServer(
19+
options: Http2SecureServerOptions,
20+
onRequestHandler: js.Function2[Http2ServerRequest, Http2ServerResponse, Any] = js.native
21+
): Http2SecureServer = js.native
22+
23+
def connect(authority: String | URL, options: Http2ConnectOptions, listener: js.Function): ClientHttp2Session =
24+
js.native
25+
26+
def constants: Http2Constants = js.native
27+
28+
def getDefaultSettings(): Http2Settings = js.native
29+
def getPackedSettings(settings: Http2Settings): Buffer = js.native
30+
def getUnpackedSettings(buffer: Uint8Array): Http2Settings = js.native
31+
}
32+
33+
@js.native
34+
@JSImport("http2", JSImport.Namespace)
35+
object Http2 extends Http2
Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
package io.scalajs.nodejs.http2
2+
3+
import io.scalajs.nodejs.buffer.Buffer
4+
import io.scalajs.nodejs.http.OnreadObject
5+
import io.scalajs.nodejs.{net, stream}
6+
import io.scalajs.nodejs.tls.{ALPNProtocols, SecureContext, TLSCertificate}
7+
import io.scalajs.nodejs.url.URL
8+
9+
import scala.scalajs.js
10+
11+
class Http2ConnectOptions(
12+
var maxDeflateDynamicTableSize: js.UndefOr[Int] = js.undefined,
13+
var maxSessionMemory: js.UndefOr[Int] = js.undefined,
14+
var maxHeaderListPairs: js.UndefOr[Int] = js.undefined,
15+
var maxOutstandingPings: js.UndefOr[Int] = js.undefined,
16+
var maxSendHeaderBlockLength: js.UndefOr[Int] = js.undefined,
17+
var paddingStrategy: js.UndefOr[Int] = js.undefined,
18+
var peerMaxConcurrentStreams: js.UndefOr[Int] = js.undefined,
19+
var selectPadding: js.UndefOr[js.Function2[Int, Int, Int]] = js.undefined,
20+
var settings: js.UndefOr[Http2Settings] = js.undefined,
21+
// specific to connect
22+
var maxReservedRemoteStreams: js.UndefOr[Int] = js.undefined,
23+
var createConnection: js.UndefOr[js.Function2[URL, Http2ConnectOptions, stream.IDuplex]],
24+
// From net.connect
25+
// for socket.connect(option)
26+
var port: js.UndefOr[Int] = js.undefined,
27+
var host: js.UndefOr[String] = js.undefined,
28+
var localAddress: js.UndefOr[String] = js.undefined,
29+
var localPort: js.UndefOr[Int] = js.undefined,
30+
var family: js.UndefOr[Int] = js.undefined,
31+
var hints: js.UndefOr[Int] = js.undefined,
32+
var lookup: js.UndefOr[js.Function1[String, Any]] = js.undefined,
33+
var onread: js.UndefOr[OnreadObject] = js.undefined,
34+
// for IPC connections
35+
var path: js.UndefOr[String] = js.undefined,
36+
// for new Socket(option)
37+
var fd: js.UndefOr[Int] = js.undefined,
38+
var allowHalfOpen: js.UndefOr[Boolean] = js.undefined,
39+
var readable: js.UndefOr[Boolean] = js.undefined,
40+
var writable: js.UndefOr[Int] = js.undefined,
41+
// From tls.connect
42+
var socket: js.UndefOr[stream.IDuplex] = js.undefined,
43+
var servername: js.UndefOr[String] = js.undefined,
44+
var checkServerIdentity: js.UndefOr[js.Function2[String, TLSCertificate, Any]] = js.undefined,
45+
var minDHSize: js.UndefOr[Int] = js.undefined,
46+
// TLSSocketOptions
47+
var enableTrace: js.UndefOr[Boolean] = js.undefined,
48+
var isServer: js.UndefOr[Boolean] = js.undefined,
49+
var server: js.UndefOr[net.Server] = js.undefined,
50+
var requestCert: js.UndefOr[Boolean] = js.undefined,
51+
var rejectUnauthorized: js.UndefOr[Boolean] = js.undefined,
52+
var NPNProtocols: js.UndefOr[Boolean] = js.undefined,
53+
var ALPNProtocols: js.UndefOr[ALPNProtocols] = js.undefined,
54+
var SNICallback: js.UndefOr[js.Function2[String, js.Function, Any]] = js.undefined,
55+
var session: js.UndefOr[Buffer] = js.undefined,
56+
var requestOCSP: js.UndefOr[Boolean] = js.undefined,
57+
var secureContext: js.UndefOr[SecureContext] = js.undefined
58+
) extends js.Object

0 commit comments

Comments
 (0)