Skip to content

Commit

Permalink
Merge pull request #1489 from murgatroid99/grpc-js_xds_client
Browse files Browse the repository at this point in the history
grpc-js: Add XdsClient class
  • Loading branch information
murgatroid99 authored Jul 22, 2020
2 parents 301b695 + 6b03311 commit 8d759b3
Show file tree
Hide file tree
Showing 214 changed files with 19,828 additions and 4 deletions.
12 changes: 12 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -1,3 +1,15 @@
[submodule "packages/grpc-tools/deps/protobuf"]
path = packages/grpc-tools/deps/protobuf
url = https://github.com/protocolbuffers/protobuf
[submodule "packages/grpc-js/deps/envoy-api"]
path = packages/grpc-js/deps/envoy-api
url = https://github.com/envoyproxy/data-plane-api.git
[submodule "packages/grpc-js/deps/udpa"]
path = packages/grpc-js/deps/udpa
url = https://github.com/cncf/udpa.git
[submodule "packages/grpc-js/deps/googleapis"]
path = packages/grpc-js/deps/googleapis
url = https://github.com/googleapis/googleapis.git
[submodule "packages/grpc-js/deps/protoc-gen-validate"]
path = packages/grpc-js/deps/protoc-gen-validate
url = https://github.com/envoyproxy/protoc-gen-validate.git
1 change: 1 addition & 0 deletions packages/grpc-js/deps/envoy-api
Submodule envoy-api added at 50cef8
1 change: 1 addition & 0 deletions packages/grpc-js/deps/googleapis
Submodule googleapis added at 8c53b2
1 change: 1 addition & 0 deletions packages/grpc-js/deps/protoc-gen-validate
Submodule protoc-gen-validate added at 0af61d
1 change: 1 addition & 0 deletions packages/grpc-js/deps/udpa
Submodule udpa added at 3b31d0
17 changes: 13 additions & 4 deletions packages/grpc-js/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
"types": "build/src/index.d.ts",
"license": "Apache-2.0",
"devDependencies": {
"@grpc/proto-loader": "^0.5.0",
"@grpc/proto-loader": "^0.6.0-pre6",
"@types/gulp": "^4.0.6",
"@types/gulp-mocha": "0.0.32",
"@types/lodash": "^4.14.108",
Expand Down Expand Up @@ -48,20 +48,29 @@
"clean": "node -e 'require(\"rimraf\")(\"./build\", () => {})'",
"compile": "tsc -p .",
"format": "clang-format -i -style=\"{Language: JavaScript, BasedOnStyle: Google, ColumnLimit: 80}\" src/*.ts test/*.ts",
"generate-types": "proto-loader-gen-types --keepCase --longs String --enums String --defaults --oneofs --json --includeComments --includeDirs deps/envoy-api/ deps/udpa/ deps/googleapis/ deps/protoc-gen-validate/ -O src/generated/ --grpcLib ../index envoy/service/discovery/v2/ads.proto envoy/api/v2/listener.proto envoy/api/v2/route.proto envoy/api/v2/cluster.proto envoy/api/v2/endpoint.proto",
"lint": "npm run check",
"prepare": "npm run compile",
"test": "gulp test",
"check": "gts check src/**/*.ts",
"fix": "gts fix src/**/*.ts",
"fix": "gts fix src/*.ts",
"pretest": "npm run compile",
"posttest": "npm run check"
},
"dependencies": {
"semver": "^6.2.0"
},
"files": [
"src/*.ts",
"src/**/*.ts",
"build/src/*.{js,d.ts,js.map}",
"LICENSE"
"LICENSE",
"deps/envoy-api/envoy/api/v2/**/*.proto",
"deps/envoy-api/envoy/config/**/*.proto",
"deps/envoy-api/envoy/service/**/*.proto",
"deps/envoy-api/envoy/type/**/*.proto",
"deps/udpa/udpa/**/*.proto",
"deps/googleapis/google/api/*.proto",
"deps/googleapis/google/rpc/*.proto",
"deps/protoc-gen-validate/validate/**/*.proto"
]
}
155 changes: 155 additions & 0 deletions packages/grpc-js/src/generated/ads.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,155 @@
import * as grpc from '../index';
import { ServiceDefinition, EnumTypeDefinition, MessageTypeDefinition } from '@grpc/proto-loader';

import { AggregatedDiscoveryServiceClient as _envoy_service_discovery_v2_AggregatedDiscoveryServiceClient } from './envoy/service/discovery/v2/AggregatedDiscoveryService';

type ConstructorArguments<Constructor> = Constructor extends new (...args: infer Args) => any ? Args: never;
type SubtypeConstructor<Constructor, Subtype> = {
new(...args: ConstructorArguments<Constructor>): Subtype;
}

export interface ProtoGrpcType {
envoy: {
api: {
v2: {
DeltaDiscoveryRequest: MessageTypeDefinition
DeltaDiscoveryResponse: MessageTypeDefinition
DiscoveryRequest: MessageTypeDefinition
DiscoveryResponse: MessageTypeDefinition
Resource: MessageTypeDefinition
core: {
Address: MessageTypeDefinition
AsyncDataSource: MessageTypeDefinition
BackoffStrategy: MessageTypeDefinition
BindConfig: MessageTypeDefinition
BuildVersion: MessageTypeDefinition
CidrRange: MessageTypeDefinition
ControlPlane: MessageTypeDefinition
DataSource: MessageTypeDefinition
Extension: MessageTypeDefinition
HeaderMap: MessageTypeDefinition
HeaderValue: MessageTypeDefinition
HeaderValueOption: MessageTypeDefinition
HttpUri: MessageTypeDefinition
Locality: MessageTypeDefinition
Metadata: MessageTypeDefinition
Node: MessageTypeDefinition
Pipe: MessageTypeDefinition
RemoteDataSource: MessageTypeDefinition
RequestMethod: EnumTypeDefinition
RetryPolicy: MessageTypeDefinition
RoutingPriority: EnumTypeDefinition
RuntimeDouble: MessageTypeDefinition
RuntimeFeatureFlag: MessageTypeDefinition
RuntimeFractionalPercent: MessageTypeDefinition
RuntimeUInt32: MessageTypeDefinition
SocketAddress: MessageTypeDefinition
SocketOption: MessageTypeDefinition
TcpKeepalive: MessageTypeDefinition
TrafficDirection: EnumTypeDefinition
TransportSocket: MessageTypeDefinition
}
}
}
service: {
discovery: {
v2: {
AdsDummy: MessageTypeDefinition
/**
* See https://github.com/lyft/envoy-api#apis for a description of the role of
* ADS and how it is intended to be used by a management server. ADS requests
* have the same structure as their singleton xDS counterparts, but can
* multiplex many resource types on a single stream. The type_url in the
* DiscoveryRequest/DiscoveryResponse provides sufficient information to recover
* the multiplexed singleton APIs at the Envoy instance and management server.
*/
AggregatedDiscoveryService: SubtypeConstructor<typeof grpc.Client, _envoy_service_discovery_v2_AggregatedDiscoveryServiceClient> & { service: ServiceDefinition }
}
}
}
type: {
FractionalPercent: MessageTypeDefinition
Percent: MessageTypeDefinition
SemanticVersion: MessageTypeDefinition
}
}
google: {
protobuf: {
Any: MessageTypeDefinition
BoolValue: MessageTypeDefinition
BytesValue: MessageTypeDefinition
DescriptorProto: MessageTypeDefinition
DoubleValue: MessageTypeDefinition
Duration: MessageTypeDefinition
EnumDescriptorProto: MessageTypeDefinition
EnumOptions: MessageTypeDefinition
EnumValueDescriptorProto: MessageTypeDefinition
EnumValueOptions: MessageTypeDefinition
FieldDescriptorProto: MessageTypeDefinition
FieldOptions: MessageTypeDefinition
FileDescriptorProto: MessageTypeDefinition
FileDescriptorSet: MessageTypeDefinition
FileOptions: MessageTypeDefinition
FloatValue: MessageTypeDefinition
GeneratedCodeInfo: MessageTypeDefinition
Int32Value: MessageTypeDefinition
Int64Value: MessageTypeDefinition
ListValue: MessageTypeDefinition
MessageOptions: MessageTypeDefinition
MethodDescriptorProto: MessageTypeDefinition
MethodOptions: MessageTypeDefinition
NullValue: EnumTypeDefinition
OneofDescriptorProto: MessageTypeDefinition
OneofOptions: MessageTypeDefinition
ServiceDescriptorProto: MessageTypeDefinition
ServiceOptions: MessageTypeDefinition
SourceCodeInfo: MessageTypeDefinition
StringValue: MessageTypeDefinition
Struct: MessageTypeDefinition
Timestamp: MessageTypeDefinition
UInt32Value: MessageTypeDefinition
UInt64Value: MessageTypeDefinition
UninterpretedOption: MessageTypeDefinition
Value: MessageTypeDefinition
}
rpc: {
Status: MessageTypeDefinition
}
}
udpa: {
annotations: {
FieldMigrateAnnotation: MessageTypeDefinition
FileMigrateAnnotation: MessageTypeDefinition
MigrateAnnotation: MessageTypeDefinition
PackageVersionStatus: EnumTypeDefinition
StatusAnnotation: MessageTypeDefinition
}
}
validate: {
AnyRules: MessageTypeDefinition
BoolRules: MessageTypeDefinition
BytesRules: MessageTypeDefinition
DoubleRules: MessageTypeDefinition
DurationRules: MessageTypeDefinition
EnumRules: MessageTypeDefinition
FieldRules: MessageTypeDefinition
Fixed32Rules: MessageTypeDefinition
Fixed64Rules: MessageTypeDefinition
FloatRules: MessageTypeDefinition
Int32Rules: MessageTypeDefinition
Int64Rules: MessageTypeDefinition
KnownRegex: EnumTypeDefinition
MapRules: MessageTypeDefinition
MessageRules: MessageTypeDefinition
RepeatedRules: MessageTypeDefinition
SFixed32Rules: MessageTypeDefinition
SFixed64Rules: MessageTypeDefinition
SInt32Rules: MessageTypeDefinition
SInt64Rules: MessageTypeDefinition
StringRules: MessageTypeDefinition
TimestampRules: MessageTypeDefinition
UInt32Rules: MessageTypeDefinition
UInt64Rules: MessageTypeDefinition
}
}

Loading

0 comments on commit 8d759b3

Please sign in to comment.