Commit Graph

102 Commits

Author SHA1 Message Date
cjihrig c3d7453a84
grpc-js: handle multiple messages in single 'data' event
This commit adds support for receiving multiple messages in a
single 'data' event from the underlying HTTP2 stream. It also
handles potential out of order messages due to asynchronous
deserialization of messages.
2019-06-09 18:12:24 -07:00
murgatroid99 438bfdd8a2 Update grpc-js to 0.4.3 2019-06-07 10:03:44 -07:00
Michael Lumish 5b187ba5e8
Merge pull request #908 from murgatroid99/pure_js_goaway_handling
Pure JS: Fixed two bugs with goaway handling
2019-06-07 10:02:13 -07:00
murgatroid99 1ee218c8bd Fix tests for fixed code, also fix another issue 2019-06-06 10:38:28 -07:00
murgatroid99 9aeca2f01a Pure JS: Fixed two bugs with goaway handling 2019-06-06 09:48:04 -07:00
cjihrig 31bcaed6e4
grpc-js: destroy connections when session begins
When the gRPC server has not been started, incoming connections
can be destroyed on session establishment, which happens before
a stream is created.
2019-06-06 09:39:46 -04:00
cjihrig ffe59e6edd
grpc-js: fix lint
This commit gets `npm run lint` passing again.
2019-06-06 09:33:40 -04:00
Michael Lumish 55d6339bca
Merge pull request #902 from cjihrig/bad-content-type
grpc-js: reject invalid Content-Type requests
2019-06-04 15:51:01 -07:00
Michael Lumish f92e2a3a70
Merge pull request #897 from cjihrig/version-string
grpc-js: load semver range from package.json
2019-06-04 12:04:47 -07:00
Michael Lumish 2b1a6756f5
Merge pull request #903 from cjihrig/timeout
grpc-js: disable http2 server timeout
2019-06-04 12:04:32 -07:00
Michael Lumish 836966c216
Merge pull request #904 from murgatroid99/grpc_js_0.4.2
Bump grpc-js to 0.4.2
2019-06-04 10:52:29 -07:00
Michael Lumish 70d75a5ab4
Merge pull request #900 from murgatroid99/pure-js_0.4.1_fixes
Fix custom metadata handling bug
2019-06-04 10:50:05 -07:00
murgatroid99 f6ea3c31f9 Bump grpc-js to 0.4.2 2019-06-04 09:53:07 -07:00
cjihrig 93ea51f116
grpc-js: disable http2 server timeout
gRPC has its own mechanisms for timing out a request.
Furthermore, the default timeout was removed from Node.js

Refs: https://github.com/nodejs/node/pull/27558
2019-06-04 12:44:41 -04:00
cjihrig a4b3a7fbae
grpc-js: reject invalid Content-Type requests
This commit implements the following portion of the spec:

If Content-Type does not begin with "application/grpc",
gRPC servers SHOULD respond with HTTP status of
415 (Unsupported Media Type). This will prevent other
HTTP/2 clients from interpreting a gRPC error response,
which uses status 200 (OK), as successful.
2019-06-04 12:02:08 -04:00
murgatroid99 afb7b4a602 Fix dropped messages when multiple arrived in one HTTP/2 frame 2019-06-03 18:21:39 -07:00
murgatroid99 92bed740e8 Fix custom metadata handling bug 2019-06-03 14:47:11 -07:00
Michael Lumish 9c274034d0
Merge pull request #796 from murgatroid99/metadata_options
Add metadata options
2019-06-03 10:48:23 -07:00
cjihrig 69d4377dc2
grpc-js: load semver range from package.json
This commit loads the required semver range from the package.json
file, instead of hard-coding the string in index.ts.
2019-05-31 16:03:59 -04:00
cjihrig ea254dfc62
grpc-js: enable incremental compiles
This commit enables incremental TypeScript builds.
2019-05-29 15:22:18 -04:00
cjihrig d7c23b066e
grpc-js: update to typescript@3.5
This commit updates to TypeScript, which is supposed to be
faster.

Refs: https://devblogs.microsoft.com/typescript/announcing-typescript-3-5/
2019-05-29 15:18:33 -04:00
Michael Lumish 5689ba720d
Merge pull request #889 from murgatroid99/grpc-js_0.4.1
Update grpc-js to 0.4.1
2019-05-29 09:54:04 -07:00
Michael Lumish 5eb17fc559
Merge pull request #887 from murgatroid99/grpc-js_connect_metadata_promise
grpc-js: Change how filters access connectivity information
2019-05-29 09:53:51 -07:00
murgatroid99 ffaade2e6f Update grpc-js to 0.4.1 2019-05-28 16:18:37 -07:00
murgatroid99 45f37f1a9e Fix missing custom metadata 2019-05-28 10:53:08 -07:00
murgatroid99 477c4a4c18 grpc-js: Change how filters access connectivity information 2019-05-28 10:36:07 -07:00
cjihrig f30a5d8588
grpc-js: support client cancellation
This commit adds client cancellation support and tests for
cancellation and deadlines.
2019-05-20 13:38:35 -04:00
cjihrig 4e0162cf22
grpc-js: skip gulp tasks based on Node version
This commit wraps the grpc-js Gulp tasks in a version check
so they only run on supported versions of Node.
2019-05-18 11:25:06 -04:00
cjihrig be6bdb8c3d
grpc-js: update to gts@1.x.x
This commit updates the gts dependency to 1.x.x.
2019-05-17 17:03:04 -04:00
cjihrig f6689d51a6
grpc-js: update dependencies
This commit resolves issues from `npm outdated`. The gts
dependency will be updated separately, as it comes with
significant code churn.
2019-05-17 12:30:42 -04:00
cjihrig a7372e2b1c
grpc-js: slight cleanup of server imports/exports
This commit removes some unnecessary imports and exports
from the server code.
2019-05-17 12:14:27 -04:00
cjihrig 212439eb83
grpc-js: make serdes APIs consistent
During initial implementation, the serialize and deserialize
APIs of ServerReadableStream, ServerWritableStream, and
ServerDuplexStream became inconsistent. This commit brings
back consistency.
2019-05-17 11:40:29 -04:00
cjihrig 1aa11525fd
grpc-js: add bidirectional streaming RPC support
This commit adds bidi streaming RPC support to the server.
2019-05-16 11:23:54 -04:00
Michael Lumish 3bebc2230a
Merge pull request #859 from cjihrig/client-stream
grpc-js: add client streaming RPC support
2019-05-15 10:22:35 -07:00
cjihrig 4857c63d01
grpc-js: simplify ServerReadableStream's deserialize()
This commit removes null and undefined checks from deserialize().
2019-05-15 09:08:28 -04:00
cjihrig e0a30907f9
grpc-js: add setupReadable() to Http2ServerCallStream
This commit adds a setupReadable() method to
Http2ServerCallStream. This is used to set up the plumbing
between the HTTP2 stream and the surface readable/bidi
calls.
2019-05-14 15:07:12 -04:00
murgatroid99 904d820bd2 Merge remote-tracking branch 'upstream/grpc@1.20.x' into v1.20_upmerge 2019-05-08 13:32:11 -07:00
cjihrig b8af8c9474
grpc-js: add client streaming RPC support
This commit adds client streaming RPC support.
2019-05-07 14:23:34 -04:00
cjihrig 7aa45eb55e
grpc-js: extract reusable stream decoding logic
This commit pulls the stream decoding logic into a separate
class so that it can be reused by the server code.
2019-05-06 13:56:23 -04:00
cjihrig 7009d25593
grpc-js: wrestle with typescript handler types
This commit is mindless TypeScript busy work.
2019-05-03 14:49:49 -04:00
cjihrig ec9e82554b
fixup! grpc-js: support unary and server streaming rpcs 2019-05-03 12:21:41 -04:00
cjihrig c050bf5ad8
grpc-js: add sendStatus()
Based on PR feedback, this commit adds a sendStatus() method to
Http2ServerCallStream. All responses will be funnelled through
this method.
2019-05-02 22:18:20 -04:00
cjihrig a6e2edce9a
grpc-js: handle http2 backpressure in server
This commit adds backpressure handling code to the
ServerWritableStream implementation.
2019-05-02 22:18:20 -04:00
cjihrig 79544366be
grpc-js: support unary and server streaming rpcs
This commit adds support for unary and server streaming RPCs.
2019-05-02 21:40:45 -04:00
Michael Lumish fe82be7f34
Merge pull request #853 from alexander-fenster/patch-1
grpc-js: add ServiceError
2019-05-02 17:41:11 -07:00
Alexander Fenster 293ea935f3
grpc-js: add ServiceError 2019-05-02 16:39:01 -07:00
murgatroid99 0937dc9027 Update grpc-js to 0.4.0 2019-05-02 16:17:07 -07:00
Alexander Fenster fc336307c8 gts fix 2019-05-02 12:56:24 -07:00
Alexander Fenster 6ff835201a
grpc-js: export more types
We (`google-gax`) need these two types exported to switch from C-core gRPC.
2019-05-02 12:53:00 -07:00
Michael Lumish 309033f681
Merge pull request #841 from cjihrig/constant
grpc-js: don't export private symbol
2019-04-29 12:30:07 -07:00