Commit Graph

410 Commits

Author SHA1 Message Date
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 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
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
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 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 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 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
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
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
Alexander Fenster 293ea935f3
grpc-js: add ServiceError 2019-05-02 16:39:01 -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
cjihrig 8a183c1f31
grpc-js: rename kChannel symbol
This commit renames the kChannel symbol to follow the repo's
style conventions for constants (although a symbol may not
strictly qualify as a constant).
2019-04-26 19:33:29 -04:00
cjihrig 7ca94b569d
grpc-js: require non-experimental http2
This commit bumps the required semver range to versions of Node
that include a non-experimental http2 module.
2019-04-26 18:53:41 -04:00
cjihrig 406c1d0a97
grpc-js: don't export private symbol
The kChannel symbol was being exported due to a TypeScript
issue. That issue has been resolved, so it seems OK to remove
the export.
2019-04-26 17:54:02 -04:00
cjihrig 62e7f0c85a
grpc-js: define Server API contract
This commit defines the Server API contract, and implements
the Server functionality, minus the actual handling of requests.
2019-04-10 15:35:40 -04:00
cjihrig 1cfe05ba46
grpc-js: update dependency versions
Update grpc-js to the latest version of all dependencies.
2019-04-08 21:00:57 -04:00
cjihrig 40eef7af22
grpc-js: add ServerCredentials support
This commit adds ServerCredentials to the pure JS implementation.
2019-04-01 20:13:24 -04:00
Michael Lumish 3ae5fdd258
Merge pull request #787 from murgatroid99/grpc-js_missing_types
Export missing types, fix a couple of incorrect types
2019-03-25 13:36:59 -07:00
murgatroid99 d4e1672071 JS: Add initial metadata options API compatibility 2019-03-20 15:16:52 -07:00
Nicolas "Pixel" Noble 6bc7184542 Adding missing license on a bunch of source files. 2019-03-19 01:06:57 +01:00
murgatroid99 e0a472d9df Fix lint errors 2019-03-15 12:09:19 -07:00
murgatroid99 c520d5befa Export missing types, fix a couple of incorrect types 2019-03-15 11:32:11 -07:00
Michael Lumish 8704950a5c
Merge pull request #768 from murgatroid99/grpc-js_deadline_filter_promise_finish
grpc-js: deadline filter: reject promise if call ends
2019-03-08 10:01:42 -08:00
murgatroid99 0cf6981eaf Start with http2 sessions unrefed in case no streams are ever created 2019-03-07 15:41:12 -08:00
murgatroid99 b0f06d56c2 Properly remove event listener in other handler 2019-03-07 11:24:22 -08:00
murgatroid99 d77da26021 grpc-js: deadline filter: reject promise if call ends 2019-03-07 11:04:46 -08:00
murgatroid99 030f846c3a grpc-js: call-stream: Don't output messages after status 2019-03-06 17:31:30 -08:00
cjihrig 42126732f5
grpc-js: remove unused EventEmitter interfaces
This commit removes the unused EmitterAugmentation0 and
EmitterAugmentation2 interfaces.
2019-02-27 10:14:25 -05:00
Alexander Fenster b9130b239d fix: use getRequestHeaders if available 2019-01-30 12:18:18 -08:00
murgatroid99 15f877aa45 Fix lint errors 2019-01-14 17:51:41 -08:00
murgatroid99 e32fec18fe grpc-js: Fix handling of non-service objects in package definitions 2019-01-14 17:03:03 -08:00
Tom Kirkpatrick 0997ccaf0f
fix: require package.json directly 2018-11-30 13:53:43 +01:00
cjihrig 65bd142114
grpc-js: rename grpc-js-core to match npm
This commit renames grpc-js-core to grpc-js to more closely
match the name used on npm.
2018-11-01 16:56:57 -04:00
murgatroid99 a0d3d4a22c Remove unused packages 2018-03-23 11:24:56 -07:00
Kelvin Jin ad8aa54fd6 simplify gulp commands in package directories 2017-12-14 16:41:24 -08:00