Commit Graph

535 Commits

Author SHA1 Message Date
murgatroid99 96d4d6acba Actually add listening http2 servers to server list 2020-03-05 13:01:43 -08:00
murgatroid99 3cbb46b1f7 Don't explicitly reject any promises 2020-03-05 12:32:08 -08:00
murgatroid99 c1d6bf91bc grpc-js: Use resolver to bind server ports 2020-03-05 09:23:09 -08:00
Michael Lumish 69482b2ae7
Merge pull request #1285 from murgatroid99/grpc-js_ipv6_handling
grpc-js: Always return IPv6 addresses from DNS resolver
2020-03-04 10:26:45 -08:00
Michael Lumish 37cc559669 grpc-js: Only automatically retry picks on known error 2020-03-03 10:56:42 -08:00
Michael Lumish f2b740f6ce grpc-js: Always return IPv6 addresses from DNS resolver 2020-03-03 10:17:10 -08:00
murgatroid99 4786f4a005 grpc_server_add_(in)secure_port returns 0 on error. Reflect that in bind(Async) 2020-03-02 17:27:46 -08:00
murgatroid99 8f668c8f2c grpc-js: server calls: Don't try to send an error on stream error 2020-03-02 14:26:29 -08:00
Michael Lumish fa4a02e0f6
Merge pull request #1281 from murgatroid99/grpc-js_0.7.x
Update grpc-js to 0.7.0
2020-03-02 09:42:34 -08:00
Michael Lumish 9aabc4071c
Merge pull request #1078 from LN-Zap/fix-1077
fix: only unref timers in supported environments
2020-02-28 13:24:36 -08:00
murgatroid99 fa3c95eaf2 Update grpc-js to 0.7.0 2020-02-28 11:20:57 -08:00
Michael Lumish f345f82851
Use optional chaining 2020-02-28 11:19:07 -08:00
Michael Lumish 8cf49ca1bd
Merge pull request #1243 from murgatroid99/grpc-js_proxy_support
grpc-js: Add HTTP CONNECT support, i.e. egress proxy support
2020-02-28 11:17:45 -08:00
Michael Lumish 846b05fc67
Merge pull request #1184 from murgatroid99/grpc-js_client_interceptors
grpc-js: Client interceptors
2020-02-28 11:17:34 -08:00
murgatroid99 8adad0c960 Don't stop handling reads when status is OK 2020-02-28 10:09:54 -08:00
murgatroid99 d8cf925b09 Handle OK status differently when processing stream endings 2020-02-27 09:50:35 -08:00
murgatroid99 77b86fdbea Simplify getBottomInterceptingCall signature 2020-02-26 17:54:22 -08:00
Michael Lumish 7a4c52b572
Merge pull request #1273 from murgatroid99/grpc-js_pick_error_handling
Clone metadata going into the metadata filter stack
2020-02-24 12:39:02 -08:00
murgatroid99 03b70172e0 grpc-js: Detect and error on multiple auth headers 2020-02-24 10:39:48 -08:00
murgatroid99 18869dcb08 Clone metadata going into the metadata filter stack 2020-02-21 16:39:10 -08:00
Michael Lumish 1fc9825523
Merge pull request #1272 from murgatroid99/grpc-js_0.6.17
Bump grpc-js to 0.6.17
2020-02-21 09:38:17 -08:00
Michael Lumish 23e2d8584e
Merge pull request #1271 from murgatroid99/grpc-js_pick_error_logging
grpc-js: Add pick tracing and one error handler
2020-02-21 09:37:46 -08:00
murgatroid99 4a1dab341b Bump grpc-js to 0.6.17 2020-02-20 15:09:06 -08:00
murgatroid99 bc3e6a1adc grpc-js: Add pick tracing and one error handler 2020-02-20 14:51:22 -08:00
murgatroid99 b90dc81b73 Include method name in UNIMPLEMENTED details string 2020-02-20 12:46:59 -08:00
murgatroid99 c7980f664d Fix text in a refcount trace log 2020-02-19 11:08:45 -08:00
murgatroid99 439263d4e1 Fix a trace line, and add a few new ones 2020-02-18 17:23:59 -08:00
murgatroid99 f0fbe44134 Merge branch 'master' into grpc-js_client_interceptors 2020-02-11 15:31:53 -08:00
murgatroid99 f41daae844 Merge branch 'grpc-js_proxy_support' of github.com:murgatroid99/grpc-node into grpc-js_proxy_support 2020-02-05 11:34:51 -08:00
murgatroid99 7bdc92d8d4 Properly handle socket from proxy 2020-02-05 11:34:25 -08:00
murgatroid99 cadb9ac071 Merge branch 'master' into grpc-js_proxy_support 2020-02-05 11:32:18 -08:00
Michael Lumish 1d11e51a4a
Merge pull request #1252 from murgatroid99/grpc-js_0.6.16
Update grpc-js to 0.6.16
2020-02-04 15:11:25 -08:00
Michael Lumish 9ff50a9de5
Merge pull request #1251 from murgatroid99/grpc-js_handle_call_start_failure
grpc-js: Different handling for errors when starting streams
2020-02-04 15:11:13 -08:00
murgatroid99 07fbfa0ac9 Fix comment typos 2020-02-04 10:41:01 -08:00
murgatroid99 3bba39178b Update grpc-js to 0.6.16 2020-02-04 10:18:00 -08:00
Michael Lumish ea21c4f6ef
Merge pull request #1245 from murgatroid99/grpc-js_subchannel_address_object
grpc-js: Use an object to represent subchannel addresses
2020-02-04 10:16:28 -08:00
Michael Lumish 69d95b2570
Merge pull request #1247 from murgatroid99/grpc-js_end_call_destroy_stream
grpc-js: Destroy http2 stream when a call ends in any way
2020-02-04 10:16:08 -08:00
murgatroid99 f0e19f1d0d grpc-js: Different handling for errors when starting streams 2020-02-04 10:12:33 -08:00
murgatroid99 4bc642456b grpc-js: Improve tracing around sending data 2020-02-03 11:14:03 -08:00
murgatroid99 630897244e grpc-js: Destroy http2 stream when a call ends in any way 2020-02-03 10:53:34 -08:00
murgatroid99 0995c9b0e6 Update comment with new information 2020-01-29 16:56:05 -08:00
murgatroid99 1fe6432d92 Differentiate more strongly between TCP and IPC addresses 2020-01-29 16:50:29 -08:00
murgatroid99 4f55a83b67 Remove extraneous line of code 2020-01-29 10:21:47 -08:00
murgatroid99 c5428c5733 lint and formatting fixes 2020-01-29 09:56:49 -08:00
murgatroid99 57c18382d8 grpc-js: Use an object to represent subchannel addresses 2020-01-29 09:42:13 -08:00
Michael Lumish b9220fdb2d
Fix capture group numbers in parseTarget 2020-01-28 15:31:06 -08:00
murgatroid99 2add1c342d grpc-js: Add HTTP CONNECT support, i.e. egress proxy support 2020-01-24 10:47:44 -08:00
Michael Lumish 6994f1b1df
Merge pull request #1231 from murgatroid99/test_waitForReady
Add test for waitForReady on both implementations
2020-01-24 10:07:12 -08:00
Cyrus Najmabadi 7e1d20fec1 Do not overwrite error 'metadata' if already specified by caller. 2020-01-13 14:48:38 -08:00
murgatroid99 596232675e Copy options when cloning metadata 2020-01-08 16:32:50 -08:00
murgatroid99 738dbf8f02 Merge branch 'master' into grpc-js_client_interceptors 2020-01-07 10:48:01 -08:00
murgatroid99 aab867baf0 grpc-js: Bump to 0.6.15 2019-12-18 14:19:12 -08:00
Michael Lumish 6112b09094
Merge pull request #1222 from murgatroid99/grpc-js_call_sequence_number
grpc-js: Add unique ID number to call trace logs
2019-12-18 14:17:52 -08:00
Michael Lumish 3402c706a8
Merge pull request #1200 from murgatroid99/grpc-js_channel_args
grpc-js: Add more channel args
2019-12-18 10:18:44 -08:00
Michael Lumish e9b7e969c7
Merge pull request #1210 from murgatroid99/grpc-js_tls_env_vars
grpc-js: Add support for TLS-related environment variables
2019-12-18 09:49:39 -08:00
murgatroid99 992fd21a51 grpc-js: Add unique ID number to call trace logs 2019-12-13 14:12:05 -08:00
murgatroid99 8af2bc83f8 Don't test irrelevant parts of output 2019-12-12 14:17:46 -08:00
murgatroid99 cf665757d0 grpc-js: Add low-level call tracers 2019-12-09 13:53:04 -08:00
murgatroid99 36cf935e7d grpc-js: Add support for TLS-related environment variables 2019-12-05 17:53:48 -08:00
Michael Lumish cb0792818c
Merge pull request #1197 from murgatroid99/grpc-js_handle_goaway_race
grpc-js: Handle error when starting call on subchannel
2019-12-02 11:02:30 -08:00
Michael Lumish 7ad3310047
Merge pull request #1198 from bcoe/additional-headers
feat: allow headers other than authorization
2019-12-02 11:02:20 -08:00
James Sharp ad9e53ada6
grpc-js: fix explicit ipv6 addresses not resolving correctly 2019-11-22 12:28:57 +00:00
bcoe c89d4438be chore: address code review 2019-11-21 14:55:01 -08:00
Benjamin Coe 782d5acdb2
feat: allow headers other than authorization 2019-11-21 14:14:23 -08:00
James Sharp 2dce08dc99
Only custom-metadata headers should be parsed as comma-separated 2019-11-21 21:48:50 +00:00
murgatroid99 812db0d198 grpc-js: Handle error when starting call on subchannel 2019-11-21 11:12:41 -08:00
murgatroid99 54c9e51bcb grpc-js: Add more channel args 2019-11-21 10:41:09 -08:00
James Sharp dd414b6ddc
grpc-js: fix error messages truncating at commas 2019-11-20 17:36:05 +00:00
murgatroid99 4409ef8dfd Push messages to reader asynchronously. 2019-11-18 11:25:20 -08:00
murgatroid99 39627e07dc grpc-js: bump to 0.6.12 2019-11-15 14:55:03 -08:00
murgatroid99 7f62173246 Fix Channel#getConnectivityState API and behavior 2019-11-15 13:05:52 -08:00
murgatroid99 90ce40f91c Treat trailers as end of incoming messages 2019-11-15 12:51:43 -08:00
murgatroid99 4285761157 lint and formatting fixes 2019-11-14 17:26:40 -08:00
murgatroid99 b15692fa2a grpc-js: Some cleanup + add some comments 2019-11-14 16:39:38 -08:00
murgatroid99 33875dce4a grpc-js: make client interceptors tests pass mostly unmodified 2019-11-14 15:02:24 -08:00
murgatroid99 17126e4640 Update to typescript 3.7 2019-11-14 15:01:47 -08:00
Michael Lumish 9c1bed7d56
Merge pull request #1177 from murgatroid99/grpc-js_include_ts
grpc-js and proto-loader: Publish ts and map files
2019-11-11 13:20:27 -08:00
Michael Lumish 15a4d95ef5
Merge pull request #1174 from murgatroid99/grpc-js_corrupt_header_message
grpc-js: Add detail to invalid metadata error
2019-11-11 13:20:19 -08:00
Jared Dellitt 54a95106a6 Change getDefaultAuthority in resolver to look at the registered resolvers instead of registerDefaultResolver function 2019-11-10 18:00:27 -06:00
murgatroid99 3c961140fb Merge branch 'master' into grpc-js_client_interceptors 2019-11-08 15:23:40 -08:00
murgatroid99 e17a526ee0 grpc-js: Publish ts and map files 2019-11-08 11:09:57 -08:00
Natan Sągol 50067fe9c4
style(grpc-js): format files using gts 2019-11-08 08:01:18 +01:00
murgatroid99 989288c1f0 grpc-js: Add detail to invalid metadata error 2019-11-07 17:22:03 -08:00
Michael Lumish 9d36d8d5c7
Merge pull request #1172 from merlinnot/gts-tslint
build(grpc-js): add full gts configuration and fix TSLint issues
2019-11-07 16:24:36 -08:00
Tom Kirkpatrick c0f53f2238
fix: only unref timers in supported environments
fix #1077
2019-11-07 22:41:23 +01:00
Natan Sągol 845cfe1bd9
build: add full gts configuration and fix TSLint issues 2019-11-07 22:14:24 +01:00
Natan Sągol a8d6c8751a
style: rename KEEPALIVE_TIME_MS to KEEPALIVE_MAX_TIME_MS 2019-11-07 21:48:35 +01:00
Natan Sągol 845492f0b3
fix: prevent exceeding timer limitations when backing off 2019-11-07 20:42:33 +01:00
murgatroid99 378a55357c grpc-js: Bump to 0.6.11 2019-11-06 16:04:34 -08:00
murgatroid99 fef812b2c8 Handle 'too_many_pings' error from server 2019-11-06 14:28:44 -08:00
Natan Sągol 0353dbf819
fix: correctly initialize cleanupTimer 2019-11-06 20:39:36 +01:00
Natan Sągol 61d7e7726a
Merge branch 'master' of github.com:grpc/grpc-node into JrSchild/master 2019-11-06 20:38:26 +01:00
Natan Sągol e51a740216
refactor: use null instead of undefined to indicate that cleanupTimer is stopped 2019-11-06 20:32:25 +01:00
Joram 821c9ab494 fix: correct comments 2019-11-06 15:45:15 +01:00
Joram 5f271de8c2 fix: cancel the cleanup task inside the unrefUnusedSubchannels function 2019-11-06 15:10:19 +01:00
Joram 93f8169139 refactor: simplify if statements 2019-11-05 09:59:41 +01:00
murgatroid99 acbf17d9b7 Add client interceptors 2019-11-01 10:21:52 -07:00
murgatroid99 f8af7d1dd0 Bump grpc-js to 0.6.10 2019-10-30 09:59:26 -07:00
imjoey 39f11520f3 Fix the default value of waitForReady in doc
In my usecase, the default behavious of `waitForReady` for RPC is `false` that not in accord with the doc. After digging into the source codes, probably the doc is incorrect.

Signed-off-by: imjoey <majunjiev@gmail.com>
2019-10-29 14:55:34 +08:00
murgatroid99 e2bb127bb5 grpc-js: Close http2 sessions that are dropped by their subchannels 2019-10-28 10:33:59 -07:00
Joram 20cbfc7e9f fix(sub-channels): clear the cleanup interval when all channels are unrefed
Co-authored-by: Natan Sągol <m@merlinnot.com>
2019-10-24 11:45:19 +02:00
murgatroid99 3144cb6ada Rework call stream API to work better with interceptor APIs 2019-10-23 16:28:00 -07:00
murgatroid99 caa07ef883 Make some filter types synchronous 2019-10-21 18:05:56 -07:00
murgatroid99 a53b36d680 Merge branch 'master' into grpc-js_round_robin 2019-10-14 14:25:20 -07:00
murgatroid99 d362ccb3f6 grpc-js: Some fixes for how idleness and reresolution are handled 2019-10-11 12:59:38 -07:00
Michael Lumish 607def892e
Merge pull request #1072 from murgatroid99/grpc-js_pick_first_reresolve
grpc-js: pick first: resolve address again after trying all addresses
2019-10-10 14:18:29 -07:00
murgatroid99 327eecce3c grpc-js: Fix handling of established connection drops in subchannel 2019-10-10 12:45:07 -07:00
murgatroid99 2c4798e3d6 Only reconnect to same address list if idle 2019-10-10 10:48:11 -07:00
murgatroid99 4250ac6685 Bump grpc-js to 0.6.8 2019-10-10 10:34:19 -07:00
murgatroid99 d5931ad232 grpc-js: pick first: resolve address again after trying all addresses 2019-10-10 10:26:36 -07:00
Michael Lumish 974cb30a27
Merge pull request #1037 from murgatroid99/grpc-js_client_error_construction
Add function for creating errors from statuses
2019-10-09 14:43:32 -07:00
murgatroid99 50a3ead062 Don't test value of error.message 2019-10-09 13:14:30 -07:00
murgatroid99 f29c983851 Make error message match other library 2019-10-09 12:46:25 -07:00
Michael Lumish 56df09ceb0
Merge pull request #1069 from mpminardi/grpc-js_api_changes
grpc-js Api changes for using statically generated code with grpc-js
2019-10-09 12:09:30 -07:00
murgatroid99 ee72cd440f grpc-js: pick-first: fix bad state transition when reconnecting connected LB 2019-10-08 16:35:42 -07:00
Mario Minardi 1aac229321 grpc-js: change signature of MethodDefinition used in ServiceDefinition 2019-10-08 11:34:18 -06:00
Mario Minardi 1d7a7f4700 grpc-js: export additional api in index.ts 2019-10-08 11:33:30 -06:00
murgatroid99 e480a0a686 grpc-js: pick first: remove reference and go idle after disconnect 2019-10-07 13:44:08 -07:00
Michael Lumish 2be82c7770
Merge pull request #1065 from murgatroid99/grpc-js_some_tracers
Add tracing functionality and a few connectivity state tracers
2019-10-04 14:27:54 -07:00
murgatroid99 f40d6a61c0 Pick first: go IDLE if all subchannels go IDLE 2019-10-04 10:52:34 -07:00
murgatroid99 81a1aa17b2 Add tracing functionality and a few connectivity state tracers 2019-10-04 10:24:04 -07:00
murgatroid99 781b13573f Add round robin load balancer implementation 2019-10-03 15:17:07 -07:00
murgatroid99 a23f739e5f grpc-js: exitIdle asynchronously in QueuePicker, only act in exitIdle if IDLE 2019-10-02 15:18:40 -07:00
Michael Lumish 58345b60f1
Merge pull request #1058 from murgatroid99/grpc-js_0.6.3
Update grpc-js to 0.6.3
2019-10-01 13:24:02 -07:00
murgatroid99 0932235794 Update grpc-js to 0.6.3 2019-10-01 11:52:50 -07:00
murgatroid99 1b2c558e53 Copy outgoing metadata to avoid modifying it 2019-10-01 10:43:49 -07:00
murgatroid99 4e7f4dff17 Also use original call metadata 2019-09-30 15:56:15 -07:00
murgatroid99 c7d086bfb4 Properly use filtered metadata when starting requests 2019-09-30 15:03:48 -07:00
murgatroid99 ce119ead0b Merge branch 'master' into grpc-js_uds_resolver 2019-09-27 14:24:07 -07:00
murgatroid99 21e0bfae67 Bump grpc-js to 0.6.2 2019-09-26 18:09:25 -07:00
murgatroid99 06f6065692 Increase resolver test timeout 2019-09-26 17:06:51 -07:00
murgatroid99 4fb254ddb6 grpc-js: Fix TLS server name handling 2019-09-26 14:32:54 -07:00
murgatroid99 5ab1806b44 Add UDS resolver 2019-09-25 17:53:05 -07:00
Michael Lumish c6b2f423ee
Merge pull request #1045 from murgatroid99/grpc-js_dns_fix
Fix DNS name regex and add tests
2019-09-25 13:43:29 -07:00
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