Commit Graph

1201 Commits

Author SHA1 Message Date
Michael Lumish fe601286e6
Undo domain name change 2019-09-25 10:51:06 -07:00
Michael Lumish d27ca5d725
Switch to a more reliable domain name with a hyphen
Co-Authored-By: Natan Sągol <m@merlinnot.com>
2019-09-25 09:27:02 -07:00
Colin Ihrig 79286616d8
grpc-js: fix typo
This commit fixes a typo observed in
https://github.com/grpc/grpc-node/pull/1015
2019-09-24 21:58:01 -04:00
murgatroid99 9238ad07cb Fix DNS name regex and add tests 2019-09-24 18:22:38 -07:00
Michael Lumish 2ad2e11e7a
Merge pull request #1043 from murgatroid99/grpc-js_0.6.0_bump
Bump grpc-js to 0.6.0
2019-09-24 13:31:42 -07:00
murgatroid99 adf7b08096 Merge branch 'master' into grpc-js_disconnect_status 2019-09-24 12:11:03 -07:00
murgatroid99 fba9664f35 Remove fragile test file 2019-09-24 12:09:57 -07:00
murgatroid99 184870f42a Bump grpc-js to 0.6.0 2019-09-24 10:50:33 -07:00
murgatroid99 96e3dde23d Return UNAVAILABLE status on TCP disconnect 2019-09-24 10:25:08 -07:00
Michael Lumish b05caec567
Merge branch 'master' into name_resolution_load_balancing 2019-09-23 11:03:25 -07:00
murgatroid99 96db88a3fb Bump grpc-js to 0.5.4 2019-09-20 10:44:13 -07:00
murgatroid99 b003aa14d4 Add function for creating errors from statuses 2019-09-19 17:14:38 -07:00
murgatroid99 9e2aea0399 Revert "Add specific call error for TCP disconnection" 2019-09-19 14:42:40 -07:00
murgatroid99 8780f49c0a Update @types/node to version with modified dns types 2019-09-18 13:47:25 -07:00
murgatroid99 d762dc4438 Use updated type definitions 2019-09-16 15:37:54 -07:00
murgatroid99 a7a9f0de76 Switch to dns.lookup 2019-09-16 15:12:07 -07:00
Bjorn Stromberg fc032c0226 grpc-js: Update gts and apply fixes 2019-09-13 12:31:33 +09:00
murgatroid99 8900aab94e Bump grpc-js to 0.5.3 2019-09-10 12:49:15 -07:00
murgatroid99 049da7e058 Add session.socket to ClientHttp2StreamMock in tests 2019-09-06 14:58:42 -07:00
murgatroid99 ae33497656 Check stream.session.socket before adding event handler 2019-09-06 13:21:47 -07:00
murgatroid99 4b4addf5b9 Add specific call error for TCP disconnection 2019-09-06 11:10:47 -07:00
murgatroid99 3f7d640e9e Fix hardcoded IPv6 localhost address 2019-09-03 11:05:54 -07:00
murgatroid99 b7656e0644 Fix DNS result handling, special case localhost, resolve comment 2019-08-30 15:35:34 -07:00
murgatroid99 026d681a84 Fix doubled name resolver errors and added detail 2019-08-29 17:45:06 -07:00
murgatroid99 4144558ee6 Resolve first comments 2019-08-29 17:03:00 -07:00
murgatroid99 889d1d3093 Avoid http2 IPv6 handling bug 2019-08-29 14:11:19 -07:00
murgatroid99 ee4985886d Pick first load balancer: don't connect forever without calls 2019-08-29 10:36:09 -07:00
murgatroid99 b4d848865d Lint fixes 2019-08-28 18:04:43 -07:00
murgatroid99 5aef347fb9 Proceed through pick-first list quickly when subchannel enters TRANSIENT_FAILURE 2019-08-28 17:44:30 -07:00
murgatroid99 01977e6e08 Add documentation and error handling 2019-08-28 17:06:14 -07:00
murgatroid99 fb2e7637c0 Update channel behavior + related classes 2019-08-13 17:58:54 -07:00
murgatroid99 e612cd9934 Add new subchannel and load balancing code 2019-08-13 10:10:50 -07:00
Bjorn Stromberg 110461d78a Add dev-dependencies and fix tests so they exit after running 2019-08-06 15:01:31 +09:00
Michael Lumish 716b29f0b5
Merge pull request #972 from murgatroid99/grpc-js_server_types_export
Improve server-related types exported by grpc-js
2019-07-29 15:57:54 -07:00
murgatroid99 80d7057cad Use typeof instead of util functions 2019-07-29 13:50:51 -07:00
murgatroid99 acdd2abfc3 Add resolver and service config handling code 2019-07-16 14:35:06 -07:00
murgatroid99 201dab7fa8 Improve server-related types exported by grpc-js 2019-07-16 14:15:55 -07:00
Bjorn Stromberg 277d9892f8 Add @types/semver as devDependency 2019-07-12 10:50:50 +09:00
murgatroid99 4818d304c9 Bump grpc-js to 0.5.2 2019-07-11 16:46:53 -07:00
murgatroid99 5b87ceb05c Warn instead of failing when constructing metadata from remote end 2019-07-11 14:43:41 -07:00
murgatroid99 d223cc394e Bump grpc-js to 0.5.1 2019-07-09 15:30:29 -07:00
murgatroid99 3f460716fb Remove check in grpc-js that doesn't appear in grpc 2019-07-09 10:52:51 -07:00
Tom Kirkpatrick aa54122e51
fix: properly handle http error status codes
fix #941
2019-07-09 00:31:09 +02:00
Michael Lumish a996adaade
Merge pull request #930 from murgatroid99/grpc-js_0.5.0
Bump grpc-js to 0.5.0
2019-06-27 16:56:18 -07:00
murgatroid99 e6a8092a63 Bump grpc-js to 0.5.0 2019-06-27 11:35:07 -07:00
cjihrig 7c2bb2a237
grpc-js: don't overwrite existing error codes
This commit causes RPC handlers to default to INTERNAL when
an error occurs, but does not overwrite an existing error
code.
2019-06-25 14:04:21 -04:00
cjihrig 00b091a1b1
grpc-js: shutdown improvements
This commit maintains a Set of all active sessions. This allows
tryShutdown() to gracefully stop the server properly (as
recommended in the Node HTTP2 documentation). The same Set of
sessions also allows forceShutdown() to be implemented.
2019-06-25 14:04:21 -04:00
cjihrig 4399131bf9
grpc-js: fix lint
This commit makes the linter pass again.
2019-06-25 13:53:37 -04:00
cjihrig 0b4fd1365a
grpc-js: expose Server implementation publicly
This commit exposes the pure JS Server as public API.
2019-06-25 13:53:37 -04:00
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
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
murgatroid99 1b64626cbb Fix missing clean deps 2019-04-24 17:06:23 -07:00
murgatroid99 2ef046e96f Properly signal task completion in gulpfiles 2019-04-24 16:54:03 -07:00
murgatroid99 df57548805 Update gulp to version 4, rewrite scripts 2019-04-24 16:12:02 -07:00
Michael Lumish ed879d0073
Merge pull request #817 from cjihrig/server-api-contract
grpc-js: define Server API contract
2019-04-10 14:53:01 -07: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
murgatroid99 06a04da181 Merge branch 'master' into typescript_deps 2019-04-10 11:06:58 -07:00
murgatroid99 3b8cf357e4 Re-add typescript dependency on packages that use it 2019-04-09 16:03:54 -07: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
Michael Lumish 76de309b1a
Merge pull request #809 from cjihrig/server-creds
grpc-js: add ServerCredentials support
2019-04-08 16:35:21 -07:00
murgatroid99 952d04c3e8 Merge remote-tracking branch 'upstream/grpc@1.19.x' into v1.19_upmerge 2019-04-01 17:33:28 -07: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 157e7c69b6 Remove other typescript dev dependencies 2019-03-22 11:48:15 -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 a35ec38b69
Merge pull request #770 from murgatroid99/grpc-js_0.3.6
Bump grpc-js to 0.3.6
2019-03-08 10:12:52 -08: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 d1bfa92b32 Bump grpc-js to 0.3.6 2019-03-07 17:31:46 -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
murgatroid99 1395444a04 Don't fill in any templates in LICENSE files 2019-03-06 11:01:44 -08:00
murgatroid99 3d597420a4 Add missing license files to package directories 2019-03-06 10:37:43 -08:00
Michael Lumish 903c82b33a
Merge pull request #758 from johnjbarton/patch-1
Add LICENSE file from project root.
2019-03-06 09:58:22 -08:00
Michael Lumish af8170ff99
Merge pull request #760 from johnjbarton/patch-2
Add LICENSE from http://www.apache.org/licenses/LICENSE-2.0.txt
2019-03-06 09:56:10 -08:00
murgatroid99 a14e7bcba0 Update typescript version to 3.3 2019-03-05 15:28:11 -08:00
johnjbarton a365f66c6a
Add LICENSE from http://www.apache.org/licenses/LICENSE-2.0.txt 2019-03-05 08:17:50 -08:00
johnjbarton 31a5fc2eb6
Add LICENSE file from project root.
Lawyers want to see the LICENSE.
2019-03-01 16:17:53 -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
murgatroid99 a235829bc7 Target grpc-js build at a higher ES standard 2019-01-31 17:33:37 -08:00
murgatroid99 599ba0db33 Bump grpc-js to 0.3.5 2019-01-31 13:56:39 -08:00
Alexander Fenster b9130b239d fix: use getRequestHeaders if available 2019-01-30 12:18:18 -08:00
murgatroid99 5cee1065fb Bump grpc-js to 0.3.4 2019-01-17 09:38:59 -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
murgatroid99 6cc3b7536d grpc-js: bump to 0.3.3 2019-01-09 15:28:57 -08:00
Tom Kirkpatrick 0997ccaf0f
fix: require package.json directly 2018-11-30 13:53:43 +01:00
murgatroid99 d5fc72bd5c Add missing properties to ClientHttp2StreamMock 2018-11-14 14:28:38 -08: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 e3c3c3462f Fix TS compiler errors and pin TS to 2.7 2018-01-31 14:28:39 -08:00
Kelvin Jin ad8aa54fd6 simplify gulp commands in package directories 2017-12-14 16:41:24 -08:00
Kelvin Jin 94eca58f5d try new links 2017-10-25 13:15:59 -07:00
murgatroid99 27d2f1e8cb Try to improve a couple of cleanup scripts 2017-10-12 15:54:30 -07:00
murgatroid99 7ae3d85f5b Put packages in @grpc scope, add linking scripts 2017-10-12 13:40:18 -07:00
murgatroid99 81acd929b7 Separate out packages. Upgrade new protobufjs package to Protobuf.js 6.8 2017-09-28 16:39:06 -07:00