Skip to content
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Commit c81ac46

Browse files
committedApr 11, 2025
add support to reflect using v1 protocol
1 parent f034fb4 commit c81ac46

13 files changed

+3027
-105
lines changed
 

‎.eslintignore

+4-2
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,4 @@
1-
build/src/reflection_*
2-
src/reflection_*
1+
build/src/generated/v1/reflection_*
2+
build/src/generated/v1alpha/reflection_*
3+
src/generated/v1/reflection_*
4+
src/generated/v1alpha/reflection_*

‎package.json

+4-2
Original file line numberDiff line numberDiff line change
@@ -44,8 +44,10 @@
4444
"prepare": "yarn run compile",
4545
"pretest": "yarn run compile && yarn run fix",
4646
"posttest": "yarn run check",
47-
"protoc": "grpc_tools_node_protoc --js_out=import_style=commonjs,binary:./src --grpc_out=grpc_js:./src --ts_out=grpc_js:./src --plugin=protoc-gen-ts=./node_modules/.bin/protoc-gen-ts -I ./static/grpc/reflection/v1alpha reflection.proto",
48-
"build": "yarn run compile && yarn run fix && yarn run check"
47+
"protoc:v1alpha": "mkdir -p ./src/generated/v1alpha && grpc_tools_node_protoc --js_out=import_style=commonjs,binary:./src/generated/v1alpha --grpc_out=grpc_js:./src/generated/v1alpha --ts_out=grpc_js:./src/generated/v1alpha --plugin=protoc-gen-ts=./node_modules/.bin/protoc-gen-ts -I ./static/grpc/reflection/v1alpha reflection.proto",
48+
"protoc:v1": "mkdir -p ./src/generated/v1 && grpc_tools_node_protoc --js_out=import_style=commonjs,binary:./src/generated/v1 --grpc_out=grpc_js:./src/generated/v1 --ts_out=grpc_js:./src/generated/v1 --plugin=protoc-gen-ts=./node_modules/.bin/protoc-gen-ts -I ./static/grpc/reflection/v1 reflection.proto",
49+
"protoc": "yarn protoc:v1alpha && yarn protoc:v1",
50+
"build": "yarn run compile && yarn run fix"
4951
},
5052
"files": [
5153
"build",

‎src/client.ts

+411-83
Large diffs are not rendered by default.
+40
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
// package: grpc.reflection.v1
2+
// file: reflection.proto
3+
4+
/* tslint:disable */
5+
/* eslint-disable */
6+
7+
import * as grpc from "@postman/grpc-js";
8+
import * as reflection_pb from "./reflection_pb";
9+
10+
interface IServerReflectionService extends grpc.ServiceDefinition<grpc.UntypedServiceImplementation> {
11+
serverReflectionInfo: IServerReflectionService_IServerReflectionInfo;
12+
}
13+
14+
interface IServerReflectionService_IServerReflectionInfo extends grpc.MethodDefinition<reflection_pb.ServerReflectionRequest, reflection_pb.ServerReflectionResponse> {
15+
path: "/grpc.reflection.v1.ServerReflection/ServerReflectionInfo";
16+
requestStream: true;
17+
responseStream: true;
18+
requestSerialize: grpc.serialize<reflection_pb.ServerReflectionRequest>;
19+
requestDeserialize: grpc.deserialize<reflection_pb.ServerReflectionRequest>;
20+
responseSerialize: grpc.serialize<reflection_pb.ServerReflectionResponse>;
21+
responseDeserialize: grpc.deserialize<reflection_pb.ServerReflectionResponse>;
22+
}
23+
24+
export const ServerReflectionService: IServerReflectionService;
25+
26+
export interface IServerReflectionServer {
27+
serverReflectionInfo: grpc.handleBidiStreamingCall<reflection_pb.ServerReflectionRequest, reflection_pb.ServerReflectionResponse>;
28+
}
29+
30+
export interface IServerReflectionClient {
31+
serverReflectionInfo(): grpc.ClientDuplexStream<reflection_pb.ServerReflectionRequest, reflection_pb.ServerReflectionResponse>;
32+
serverReflectionInfo(options: Partial<grpc.CallOptions>): grpc.ClientDuplexStream<reflection_pb.ServerReflectionRequest, reflection_pb.ServerReflectionResponse>;
33+
serverReflectionInfo(metadata: grpc.Metadata, options?: Partial<grpc.CallOptions>): grpc.ClientDuplexStream<reflection_pb.ServerReflectionRequest, reflection_pb.ServerReflectionResponse>;
34+
}
35+
36+
export class ServerReflectionClient extends grpc.Client implements IServerReflectionClient {
37+
constructor(address: string, credentials: grpc.ChannelCredentials, options?: Partial<grpc.ClientOptions>);
38+
public serverReflectionInfo(options?: Partial<grpc.CallOptions>): grpc.ClientDuplexStream<reflection_pb.ServerReflectionRequest, reflection_pb.ServerReflectionResponse>;
39+
public serverReflectionInfo(metadata?: grpc.Metadata, options?: Partial<grpc.CallOptions>): grpc.ClientDuplexStream<reflection_pb.ServerReflectionRequest, reflection_pb.ServerReflectionResponse>;
40+
}
+78
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
1+
// GENERATED CODE -- DO NOT EDIT!
2+
3+
// Original file comments:
4+
// Copyright 2016 The gRPC Authors
5+
//
6+
// Licensed under the Apache License, Version 2.0 (the "License");
7+
// you may not use this file except in compliance with the License.
8+
// You may obtain a copy of the License at
9+
//
10+
// http://www.apache.org/licenses/LICENSE-2.0
11+
//
12+
// Unless required by applicable law or agreed to in writing, software
13+
// distributed under the License is distributed on an "AS IS" BASIS,
14+
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15+
// See the License for the specific language governing permissions and
16+
// limitations under the License.
17+
//
18+
// Service exported by server reflection. A more complete description of how
19+
// server reflection works can be found at
20+
// https://github.com/grpc/grpc/blob/master/doc/server-reflection.md
21+
//
22+
// The canonical version of this proto can be found at
23+
// https://github.com/grpc/grpc-proto/blob/master/grpc/reflection/v1/reflection.proto
24+
//
25+
'use strict';
26+
const grpc = require('@postman/grpc-js');
27+
const reflection_pb = require('./reflection_pb.js');
28+
29+
function serialize_grpc_reflection_v1_ServerReflectionRequest(arg) {
30+
if (!(arg instanceof reflection_pb.ServerReflectionRequest)) {
31+
throw new Error(
32+
'Expected argument of type grpc.reflection.v1.ServerReflectionRequest'
33+
);
34+
}
35+
return Buffer.from(arg.serializeBinary());
36+
}
37+
38+
function deserialize_grpc_reflection_v1_ServerReflectionRequest(buffer_arg) {
39+
return reflection_pb.ServerReflectionRequest.deserializeBinary(
40+
new Uint8Array(buffer_arg)
41+
);
42+
}
43+
44+
function serialize_grpc_reflection_v1_ServerReflectionResponse(arg) {
45+
if (!(arg instanceof reflection_pb.ServerReflectionResponse)) {
46+
throw new Error(
47+
'Expected argument of type grpc.reflection.v1.ServerReflectionResponse'
48+
);
49+
}
50+
return Buffer.from(arg.serializeBinary());
51+
}
52+
53+
function deserialize_grpc_reflection_v1_ServerReflectionResponse(buffer_arg) {
54+
return reflection_pb.ServerReflectionResponse.deserializeBinary(
55+
new Uint8Array(buffer_arg)
56+
);
57+
}
58+
59+
const ServerReflectionService = (exports.ServerReflectionService = {
60+
// The reflection service is structured as a bidirectional stream, ensuring
61+
// all related requests go to a single server.
62+
serverReflectionInfo: {
63+
path: '/grpc.reflection.v1.ServerReflection/ServerReflectionInfo',
64+
requestStream: true,
65+
responseStream: true,
66+
requestType: reflection_pb.ServerReflectionRequest,
67+
responseType: reflection_pb.ServerReflectionResponse,
68+
requestSerialize: serialize_grpc_reflection_v1_ServerReflectionRequest,
69+
requestDeserialize: deserialize_grpc_reflection_v1_ServerReflectionRequest,
70+
responseSerialize: serialize_grpc_reflection_v1_ServerReflectionResponse,
71+
responseDeserialize: deserialize_grpc_reflection_v1_ServerReflectionResponse,
72+
},
73+
});
74+
75+
exports.ServerReflectionClient = grpc.makeGenericClientConstructor(
76+
ServerReflectionService,
77+
'ServerReflection'
78+
);

‎src/generated/v1/reflection_pb.d.ts

+299
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,299 @@
1+
// package: grpc.reflection.v1
2+
// file: reflection.proto
3+
4+
/* tslint:disable */
5+
/* eslint-disable */
6+
7+
import * as jspb from "google-protobuf";
8+
9+
export class ServerReflectionRequest extends jspb.Message {
10+
getHost(): string;
11+
setHost(value: string): ServerReflectionRequest;
12+
13+
14+
hasFileByFilename(): boolean;
15+
clearFileByFilename(): void;
16+
getFileByFilename(): string;
17+
setFileByFilename(value: string): ServerReflectionRequest;
18+
19+
20+
hasFileContainingSymbol(): boolean;
21+
clearFileContainingSymbol(): void;
22+
getFileContainingSymbol(): string;
23+
setFileContainingSymbol(value: string): ServerReflectionRequest;
24+
25+
26+
hasFileContainingExtension(): boolean;
27+
clearFileContainingExtension(): void;
28+
getFileContainingExtension(): ExtensionRequest | undefined;
29+
setFileContainingExtension(value?: ExtensionRequest): ServerReflectionRequest;
30+
31+
32+
hasAllExtensionNumbersOfType(): boolean;
33+
clearAllExtensionNumbersOfType(): void;
34+
getAllExtensionNumbersOfType(): string;
35+
setAllExtensionNumbersOfType(value: string): ServerReflectionRequest;
36+
37+
38+
hasListServices(): boolean;
39+
clearListServices(): void;
40+
getListServices(): string;
41+
setListServices(value: string): ServerReflectionRequest;
42+
43+
44+
getMessageRequestCase(): ServerReflectionRequest.MessageRequestCase;
45+
46+
serializeBinary(): Uint8Array;
47+
toObject(includeInstance?: boolean): ServerReflectionRequest.AsObject;
48+
static toObject(includeInstance: boolean, msg: ServerReflectionRequest): ServerReflectionRequest.AsObject;
49+
static extensions: {[key: number]: jspb.ExtensionFieldInfo<jspb.Message>};
50+
static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo<jspb.Message>};
51+
static serializeBinaryToWriter(message: ServerReflectionRequest, writer: jspb.BinaryWriter): void;
52+
static deserializeBinary(bytes: Uint8Array): ServerReflectionRequest;
53+
static deserializeBinaryFromReader(message: ServerReflectionRequest, reader: jspb.BinaryReader): ServerReflectionRequest;
54+
}
55+
56+
export namespace ServerReflectionRequest {
57+
export type AsObject = {
58+
host: string,
59+
fileByFilename: string,
60+
fileContainingSymbol: string,
61+
fileContainingExtension?: ExtensionRequest.AsObject,
62+
allExtensionNumbersOfType: string,
63+
listServices: string,
64+
}
65+
66+
export enum MessageRequestCase {
67+
MESSAGE_REQUEST_NOT_SET = 0,
68+
69+
FILE_BY_FILENAME = 3,
70+
71+
FILE_CONTAINING_SYMBOL = 4,
72+
73+
FILE_CONTAINING_EXTENSION = 5,
74+
75+
ALL_EXTENSION_NUMBERS_OF_TYPE = 6,
76+
77+
LIST_SERVICES = 7,
78+
79+
}
80+
81+
}
82+
83+
export class ExtensionRequest extends jspb.Message {
84+
getContainingType(): string;
85+
setContainingType(value: string): ExtensionRequest;
86+
87+
getExtensionNumber(): number;
88+
setExtensionNumber(value: number): ExtensionRequest;
89+
90+
91+
serializeBinary(): Uint8Array;
92+
toObject(includeInstance?: boolean): ExtensionRequest.AsObject;
93+
static toObject(includeInstance: boolean, msg: ExtensionRequest): ExtensionRequest.AsObject;
94+
static extensions: {[key: number]: jspb.ExtensionFieldInfo<jspb.Message>};
95+
static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo<jspb.Message>};
96+
static serializeBinaryToWriter(message: ExtensionRequest, writer: jspb.BinaryWriter): void;
97+
static deserializeBinary(bytes: Uint8Array): ExtensionRequest;
98+
static deserializeBinaryFromReader(message: ExtensionRequest, reader: jspb.BinaryReader): ExtensionRequest;
99+
}
100+
101+
export namespace ExtensionRequest {
102+
export type AsObject = {
103+
containingType: string,
104+
extensionNumber: number,
105+
}
106+
}
107+
108+
export class ServerReflectionResponse extends jspb.Message {
109+
getValidHost(): string;
110+
setValidHost(value: string): ServerReflectionResponse;
111+
112+
113+
hasOriginalRequest(): boolean;
114+
clearOriginalRequest(): void;
115+
getOriginalRequest(): ServerReflectionRequest | undefined;
116+
setOriginalRequest(value?: ServerReflectionRequest): ServerReflectionResponse;
117+
118+
119+
hasFileDescriptorResponse(): boolean;
120+
clearFileDescriptorResponse(): void;
121+
getFileDescriptorResponse(): FileDescriptorResponse | undefined;
122+
setFileDescriptorResponse(value?: FileDescriptorResponse): ServerReflectionResponse;
123+
124+
125+
hasAllExtensionNumbersResponse(): boolean;
126+
clearAllExtensionNumbersResponse(): void;
127+
getAllExtensionNumbersResponse(): ExtensionNumberResponse | undefined;
128+
setAllExtensionNumbersResponse(value?: ExtensionNumberResponse): ServerReflectionResponse;
129+
130+
131+
hasListServicesResponse(): boolean;
132+
clearListServicesResponse(): void;
133+
getListServicesResponse(): ListServiceResponse | undefined;
134+
setListServicesResponse(value?: ListServiceResponse): ServerReflectionResponse;
135+
136+
137+
hasErrorResponse(): boolean;
138+
clearErrorResponse(): void;
139+
getErrorResponse(): ErrorResponse | undefined;
140+
setErrorResponse(value?: ErrorResponse): ServerReflectionResponse;
141+
142+
143+
getMessageResponseCase(): ServerReflectionResponse.MessageResponseCase;
144+
145+
serializeBinary(): Uint8Array;
146+
toObject(includeInstance?: boolean): ServerReflectionResponse.AsObject;
147+
static toObject(includeInstance: boolean, msg: ServerReflectionResponse): ServerReflectionResponse.AsObject;
148+
static extensions: {[key: number]: jspb.ExtensionFieldInfo<jspb.Message>};
149+
static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo<jspb.Message>};
150+
static serializeBinaryToWriter(message: ServerReflectionResponse, writer: jspb.BinaryWriter): void;
151+
static deserializeBinary(bytes: Uint8Array): ServerReflectionResponse;
152+
static deserializeBinaryFromReader(message: ServerReflectionResponse, reader: jspb.BinaryReader): ServerReflectionResponse;
153+
}
154+
155+
export namespace ServerReflectionResponse {
156+
export type AsObject = {
157+
validHost: string,
158+
originalRequest?: ServerReflectionRequest.AsObject,
159+
fileDescriptorResponse?: FileDescriptorResponse.AsObject,
160+
allExtensionNumbersResponse?: ExtensionNumberResponse.AsObject,
161+
listServicesResponse?: ListServiceResponse.AsObject,
162+
errorResponse?: ErrorResponse.AsObject,
163+
}
164+
165+
export enum MessageResponseCase {
166+
MESSAGE_RESPONSE_NOT_SET = 0,
167+
168+
FILE_DESCRIPTOR_RESPONSE = 4,
169+
170+
ALL_EXTENSION_NUMBERS_RESPONSE = 5,
171+
172+
LIST_SERVICES_RESPONSE = 6,
173+
174+
ERROR_RESPONSE = 7,
175+
176+
}
177+
178+
}
179+
180+
export class FileDescriptorResponse extends jspb.Message {
181+
clearFileDescriptorProtoList(): void;
182+
getFileDescriptorProtoList(): Array<Uint8Array | string>;
183+
getFileDescriptorProtoList_asU8(): Array<Uint8Array>;
184+
getFileDescriptorProtoList_asB64(): Array<string>;
185+
setFileDescriptorProtoList(value: Array<Uint8Array | string>): FileDescriptorResponse;
186+
addFileDescriptorProto(value: Uint8Array | string, index?: number): Uint8Array | string;
187+
188+
189+
serializeBinary(): Uint8Array;
190+
toObject(includeInstance?: boolean): FileDescriptorResponse.AsObject;
191+
static toObject(includeInstance: boolean, msg: FileDescriptorResponse): FileDescriptorResponse.AsObject;
192+
static extensions: {[key: number]: jspb.ExtensionFieldInfo<jspb.Message>};
193+
static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo<jspb.Message>};
194+
static serializeBinaryToWriter(message: FileDescriptorResponse, writer: jspb.BinaryWriter): void;
195+
static deserializeBinary(bytes: Uint8Array): FileDescriptorResponse;
196+
static deserializeBinaryFromReader(message: FileDescriptorResponse, reader: jspb.BinaryReader): FileDescriptorResponse;
197+
}
198+
199+
export namespace FileDescriptorResponse {
200+
export type AsObject = {
201+
fileDescriptorProtoList: Array<Uint8Array | string>,
202+
}
203+
}
204+
205+
export class ExtensionNumberResponse extends jspb.Message {
206+
getBaseTypeName(): string;
207+
setBaseTypeName(value: string): ExtensionNumberResponse;
208+
209+
clearExtensionNumberList(): void;
210+
getExtensionNumberList(): Array<number>;
211+
setExtensionNumberList(value: Array<number>): ExtensionNumberResponse;
212+
addExtensionNumber(value: number, index?: number): number;
213+
214+
215+
serializeBinary(): Uint8Array;
216+
toObject(includeInstance?: boolean): ExtensionNumberResponse.AsObject;
217+
static toObject(includeInstance: boolean, msg: ExtensionNumberResponse): ExtensionNumberResponse.AsObject;
218+
static extensions: {[key: number]: jspb.ExtensionFieldInfo<jspb.Message>};
219+
static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo<jspb.Message>};
220+
static serializeBinaryToWriter(message: ExtensionNumberResponse, writer: jspb.BinaryWriter): void;
221+
static deserializeBinary(bytes: Uint8Array): ExtensionNumberResponse;
222+
static deserializeBinaryFromReader(message: ExtensionNumberResponse, reader: jspb.BinaryReader): ExtensionNumberResponse;
223+
}
224+
225+
export namespace ExtensionNumberResponse {
226+
export type AsObject = {
227+
baseTypeName: string,
228+
extensionNumberList: Array<number>,
229+
}
230+
}
231+
232+
export class ListServiceResponse extends jspb.Message {
233+
clearServiceList(): void;
234+
getServiceList(): Array<ServiceResponse>;
235+
setServiceList(value: Array<ServiceResponse>): ListServiceResponse;
236+
addService(value?: ServiceResponse, index?: number): ServiceResponse;
237+
238+
239+
serializeBinary(): Uint8Array;
240+
toObject(includeInstance?: boolean): ListServiceResponse.AsObject;
241+
static toObject(includeInstance: boolean, msg: ListServiceResponse): ListServiceResponse.AsObject;
242+
static extensions: {[key: number]: jspb.ExtensionFieldInfo<jspb.Message>};
243+
static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo<jspb.Message>};
244+
static serializeBinaryToWriter(message: ListServiceResponse, writer: jspb.BinaryWriter): void;
245+
static deserializeBinary(bytes: Uint8Array): ListServiceResponse;
246+
static deserializeBinaryFromReader(message: ListServiceResponse, reader: jspb.BinaryReader): ListServiceResponse;
247+
}
248+
249+
export namespace ListServiceResponse {
250+
export type AsObject = {
251+
serviceList: Array<ServiceResponse.AsObject>,
252+
}
253+
}
254+
255+
export class ServiceResponse extends jspb.Message {
256+
getName(): string;
257+
setName(value: string): ServiceResponse;
258+
259+
260+
serializeBinary(): Uint8Array;
261+
toObject(includeInstance?: boolean): ServiceResponse.AsObject;
262+
static toObject(includeInstance: boolean, msg: ServiceResponse): ServiceResponse.AsObject;
263+
static extensions: {[key: number]: jspb.ExtensionFieldInfo<jspb.Message>};
264+
static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo<jspb.Message>};
265+
static serializeBinaryToWriter(message: ServiceResponse, writer: jspb.BinaryWriter): void;
266+
static deserializeBinary(bytes: Uint8Array): ServiceResponse;
267+
static deserializeBinaryFromReader(message: ServiceResponse, reader: jspb.BinaryReader): ServiceResponse;
268+
}
269+
270+
export namespace ServiceResponse {
271+
export type AsObject = {
272+
name: string,
273+
}
274+
}
275+
276+
export class ErrorResponse extends jspb.Message {
277+
getErrorCode(): number;
278+
setErrorCode(value: number): ErrorResponse;
279+
280+
getErrorMessage(): string;
281+
setErrorMessage(value: string): ErrorResponse;
282+
283+
284+
serializeBinary(): Uint8Array;
285+
toObject(includeInstance?: boolean): ErrorResponse.AsObject;
286+
static toObject(includeInstance: boolean, msg: ErrorResponse): ErrorResponse.AsObject;
287+
static extensions: {[key: number]: jspb.ExtensionFieldInfo<jspb.Message>};
288+
static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo<jspb.Message>};
289+
static serializeBinaryToWriter(message: ErrorResponse, writer: jspb.BinaryWriter): void;
290+
static deserializeBinary(bytes: Uint8Array): ErrorResponse;
291+
static deserializeBinaryFromReader(message: ErrorResponse, reader: jspb.BinaryReader): ErrorResponse;
292+
}
293+
294+
export namespace ErrorResponse {
295+
export type AsObject = {
296+
errorCode: number,
297+
errorMessage: string,
298+
}
299+
}

‎src/generated/v1/reflection_pb.js

+1,995
Large diffs are not rendered by default.

‎src/reflection_grpc_pb.js renamed to ‎src/generated/v1alpha/reflection_grpc_pb.js

+28-14
Original file line numberDiff line numberDiff line change
@@ -18,36 +18,47 @@
1818
// Service exported by server reflection
1919
//
2020
'use strict';
21-
var grpc = require('@postman/grpc-js');
22-
var reflection_pb = require('./reflection_pb.js');
21+
const grpc = require('@postman/grpc-js');
22+
const reflection_pb = require('./reflection_pb.js');
2323

2424
function serialize_grpc_reflection_v1alpha_ServerReflectionRequest(arg) {
2525
if (!(arg instanceof reflection_pb.ServerReflectionRequest)) {
26-
throw new Error('Expected argument of type grpc.reflection.v1alpha.ServerReflectionRequest');
26+
throw new Error(
27+
'Expected argument of type grpc.reflection.v1alpha.ServerReflectionRequest'
28+
);
2729
}
2830
return Buffer.from(arg.serializeBinary());
2931
}
3032

31-
function deserialize_grpc_reflection_v1alpha_ServerReflectionRequest(buffer_arg) {
32-
return reflection_pb.ServerReflectionRequest.deserializeBinary(new Uint8Array(buffer_arg));
33+
function deserialize_grpc_reflection_v1alpha_ServerReflectionRequest(
34+
buffer_arg
35+
) {
36+
return reflection_pb.ServerReflectionRequest.deserializeBinary(
37+
new Uint8Array(buffer_arg)
38+
);
3339
}
3440

3541
function serialize_grpc_reflection_v1alpha_ServerReflectionResponse(arg) {
3642
if (!(arg instanceof reflection_pb.ServerReflectionResponse)) {
37-
throw new Error('Expected argument of type grpc.reflection.v1alpha.ServerReflectionResponse');
43+
throw new Error(
44+
'Expected argument of type grpc.reflection.v1alpha.ServerReflectionResponse'
45+
);
3846
}
3947
return Buffer.from(arg.serializeBinary());
4048
}
4149

42-
function deserialize_grpc_reflection_v1alpha_ServerReflectionResponse(buffer_arg) {
43-
return reflection_pb.ServerReflectionResponse.deserializeBinary(new Uint8Array(buffer_arg));
50+
function deserialize_grpc_reflection_v1alpha_ServerReflectionResponse(
51+
buffer_arg
52+
) {
53+
return reflection_pb.ServerReflectionResponse.deserializeBinary(
54+
new Uint8Array(buffer_arg)
55+
);
4456
}
4557

46-
47-
var ServerReflectionService = exports.ServerReflectionService = {
58+
const ServerReflectionService = (exports.ServerReflectionService = {
4859
// The reflection service is structured as a bidirectional stream, ensuring
49-
// all related requests go to a single server.
50-
serverReflectionInfo: {
60+
// all related requests go to a single server.
61+
serverReflectionInfo: {
5162
path: '/grpc.reflection.v1alpha.ServerReflection/ServerReflectionInfo',
5263
requestStream: true,
5364
responseStream: true,
@@ -58,6 +69,9 @@ serverReflectionInfo: {
5869
responseSerialize: serialize_grpc_reflection_v1alpha_ServerReflectionResponse,
5970
responseDeserialize: deserialize_grpc_reflection_v1alpha_ServerReflectionResponse,
6071
},
61-
};
72+
});
6273

63-
exports.ServerReflectionClient = grpc.makeGenericClientConstructor(ServerReflectionService);
74+
exports.ServerReflectionClient = grpc.makeGenericClientConstructor(
75+
ServerReflectionService,
76+
'ServerReflection'
77+
);
File renamed without changes.

‎src/reflection_pb.js renamed to ‎src/generated/v1alpha/reflection_pb.js

+14-3
Original file line numberDiff line numberDiff line change
@@ -2,15 +2,24 @@
22
/**
33
* @fileoverview
44
* @enhanceable
5+
* @suppress {missingRequire} reports error on implicit type usages.
56
* @suppress {messageConventions} JS Compiler reports an error if a variable or
67
* field starts with 'MSG_' and isn't a translatable message.
78
* @public
89
*/
910
// GENERATED CODE -- DO NOT EDIT!
11+
/* eslint-disable */
12+
// @ts-nocheck
1013

1114
var jspb = require('google-protobuf');
1215
var goog = jspb;
13-
var global = Function('return this')();
16+
var global = (function() {
17+
if (this) { return this; }
18+
if (typeof window !== 'undefined') { return window; }
19+
if (typeof global !== 'undefined') { return global; }
20+
if (typeof self !== 'undefined') { return self; }
21+
return Function('return this')();
22+
}.call(null));
1423

1524
goog.exportSymbol('proto.grpc.reflection.v1alpha.ErrorResponse', null, global);
1625
goog.exportSymbol('proto.grpc.reflection.v1alpha.ExtensionNumberResponse', null, global);
@@ -1427,8 +1436,10 @@ proto.grpc.reflection.v1alpha.ExtensionNumberResponse.deserializeBinaryFromReade
14271436
msg.setBaseTypeName(value);
14281437
break;
14291438
case 2:
1430-
var value = /** @type {!Array<number>} */ (reader.readPackedInt32());
1431-
msg.setExtensionNumberList(value);
1439+
var values = /** @type {!Array<number>} */ (reader.isDelimited() ? reader.readPackedInt32() : [reader.readInt32()]);
1440+
for (var i = 0; i < values.length; i++) {
1441+
msg.addExtensionNumber(values[i]);
1442+
}
14321443
break;
14331444
default:
14341445
reader.skipField();
+146
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,146 @@
1+
// Copyright 2016 The gRPC Authors
2+
//
3+
// Licensed under the Apache License, Version 2.0 (the "License");
4+
// you may not use this file except in compliance with the License.
5+
// You may obtain a copy of the License at
6+
//
7+
// http://www.apache.org/licenses/LICENSE-2.0
8+
//
9+
// Unless required by applicable law or agreed to in writing, software
10+
// distributed under the License is distributed on an "AS IS" BASIS,
11+
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12+
// See the License for the specific language governing permissions and
13+
// limitations under the License.
14+
15+
// Service exported by server reflection. A more complete description of how
16+
// server reflection works can be found at
17+
// https://github.com/grpc/grpc/blob/master/doc/server-reflection.md
18+
//
19+
// The canonical version of this proto can be found at
20+
// https://github.com/grpc/grpc-proto/blob/master/grpc/reflection/v1/reflection.proto
21+
22+
syntax = "proto3";
23+
24+
package grpc.reflection.v1;
25+
26+
option go_package = "google.golang.org/grpc/reflection/grpc_reflection_v1";
27+
option java_multiple_files = true;
28+
option java_package = "io.grpc.reflection.v1";
29+
option java_outer_classname = "ServerReflectionProto";
30+
31+
service ServerReflection {
32+
// The reflection service is structured as a bidirectional stream, ensuring
33+
// all related requests go to a single server.
34+
rpc ServerReflectionInfo(stream ServerReflectionRequest)
35+
returns (stream ServerReflectionResponse);
36+
}
37+
38+
// The message sent by the client when calling ServerReflectionInfo method.
39+
message ServerReflectionRequest {
40+
string host = 1;
41+
// To use reflection service, the client should set one of the following
42+
// fields in message_request. The server distinguishes requests by their
43+
// defined field and then handles them using corresponding methods.
44+
oneof message_request {
45+
// Find a proto file by the file name.
46+
string file_by_filename = 3;
47+
48+
// Find the proto file that declares the given fully-qualified symbol name.
49+
// This field should be a fully-qualified symbol name
50+
// (e.g. <package>.<service>[.<method>] or <package>.<type>).
51+
string file_containing_symbol = 4;
52+
53+
// Find the proto file which defines an extension extending the given
54+
// message type with the given field number.
55+
ExtensionRequest file_containing_extension = 5;
56+
57+
// Finds the tag numbers used by all known extensions of the given message
58+
// type, and appends them to ExtensionNumberResponse in an undefined order.
59+
// Its corresponding method is best-effort: it's not guaranteed that the
60+
// reflection service will implement this method, and it's not guaranteed
61+
// that this method will provide all extensions. Returns
62+
// StatusCode::UNIMPLEMENTED if it's not implemented.
63+
// This field should be a fully-qualified type name. The format is
64+
// <package>.<type>
65+
string all_extension_numbers_of_type = 6;
66+
67+
// List the full names of registered services. The content will not be
68+
// checked.
69+
string list_services = 7;
70+
}
71+
}
72+
73+
// The type name and extension number sent by the client when requesting
74+
// file_containing_extension.
75+
message ExtensionRequest {
76+
// Fully-qualified type name. The format should be <package>.<type>
77+
string containing_type = 1;
78+
int32 extension_number = 2;
79+
}
80+
81+
// The message sent by the server to answer ServerReflectionInfo method.
82+
message ServerReflectionResponse {
83+
string valid_host = 1;
84+
ServerReflectionRequest original_request = 2;
85+
// The server sets one of the following fields according to the message_request
86+
// in the request.
87+
oneof message_response {
88+
// This message is used to answer file_by_filename, file_containing_symbol,
89+
// file_containing_extension requests with transitive dependencies.
90+
// As the repeated label is not allowed in oneof fields, we use a
91+
// FileDescriptorResponse message to encapsulate the repeated fields.
92+
// The reflection service is allowed to avoid sending FileDescriptorProtos
93+
// that were previously sent in response to earlier requests in the stream.
94+
FileDescriptorResponse file_descriptor_response = 4;
95+
96+
// This message is used to answer all_extension_numbers_of_type requests.
97+
ExtensionNumberResponse all_extension_numbers_response = 5;
98+
99+
// This message is used to answer list_services requests.
100+
ListServiceResponse list_services_response = 6;
101+
102+
// This message is used when an error occurs.
103+
ErrorResponse error_response = 7;
104+
}
105+
}
106+
107+
// Serialized FileDescriptorProto messages sent by the server answering
108+
// a file_by_filename, file_containing_symbol, or file_containing_extension
109+
// request.
110+
message FileDescriptorResponse {
111+
// Serialized FileDescriptorProto messages. We avoid taking a dependency on
112+
// descriptor.proto, which uses proto2 only features, by making them opaque
113+
// bytes instead.
114+
repeated bytes file_descriptor_proto = 1;
115+
}
116+
117+
// A list of extension numbers sent by the server answering
118+
// all_extension_numbers_of_type request.
119+
message ExtensionNumberResponse {
120+
// Full name of the base type, including the package name. The format
121+
// is <package>.<type>
122+
string base_type_name = 1;
123+
repeated int32 extension_number = 2;
124+
}
125+
126+
// A list of ServiceResponse sent by the server answering list_services request.
127+
message ListServiceResponse {
128+
// The information of each service may be expanded in the future, so we use
129+
// ServiceResponse message to encapsulate it.
130+
repeated ServiceResponse service = 1;
131+
}
132+
133+
// The information of a single service used by ListServiceResponse to answer
134+
// list_services request.
135+
message ServiceResponse {
136+
// Full name of a registered service, including its package name. The format
137+
// is <package>.<service>
138+
string name = 1;
139+
}
140+
141+
// The error code and error message sent by the server when an error occurs.
142+
message ErrorResponse {
143+
// This field uses the error codes defined in grpc::StatusCode.
144+
int32 error_code = 1;
145+
string error_message = 2;
146+
}

‎tsconfig.json

+8-1
Original file line numberDiff line numberDiff line change
@@ -7,5 +7,12 @@
77
"allowJs": true,
88
"declaration": true
99
},
10-
"include": ["src/**/*.ts", "src/**/*.js", "test/**/*.ts"]
10+
"include": [
11+
"src/**/*"
12+
],
13+
"exclude": [
14+
"node_modules",
15+
"build",
16+
"test/**/*"
17+
]
1118
}

0 commit comments

Comments
 (0)
Please sign in to comment.