index.d.ts 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143
  1. declare module "grpc-web" {
  2. export interface Metadata { [s: string]: string; }
  3. export class AbstractClientBase {
  4. thenableCall<REQ, RESP> (
  5. method: string,
  6. request: REQ,
  7. metadata: Metadata,
  8. methodDescriptor: MethodDescriptor<REQ, RESP>
  9. ): Promise<RESP>;
  10. rpcCall<REQ, RESP> (
  11. method: string,
  12. request: REQ,
  13. metadata: Metadata,
  14. methodDescriptor: MethodDescriptor<REQ, RESP>,
  15. callback: (err: RpcError, response: RESP) => void
  16. ): ClientReadableStream<RESP>;
  17. serverStreaming<REQ, RESP> (
  18. method: string,
  19. request: REQ,
  20. metadata: Metadata,
  21. methodDescriptor: MethodDescriptor<REQ, RESP>
  22. ): ClientReadableStream<RESP>;
  23. }
  24. export class ClientReadableStream<RESP> {
  25. on (eventType: "error",
  26. callback: (err: RpcError) => void): ClientReadableStream<RESP>;
  27. on (eventType: "status",
  28. callback: (status: Status) => void): ClientReadableStream<RESP>;
  29. on (eventType: "metadata",
  30. callback: (status: Metadata) => void): ClientReadableStream<RESP>;
  31. on (eventType: "data",
  32. callback: (response: RESP) => void): ClientReadableStream<RESP>;
  33. on (eventType: "end",
  34. callback: () => void): ClientReadableStream<RESP>;
  35. removeListener (eventType: "error",
  36. callback: (err: RpcError) => void): void;
  37. removeListener (eventType: "status",
  38. callback: (status: Status) => void): void;
  39. removeListener (eventType: "metadata",
  40. callback: (status: Metadata) => void): void;
  41. removeListener (eventType: "data",
  42. callback: (response: RESP) => void): void;
  43. removeListener (eventType: "end",
  44. callback: () => void): void;
  45. cancel (): void;
  46. }
  47. export interface StreamInterceptor<REQ, RESP> {
  48. intercept(request: Request<REQ, RESP>,
  49. invoker: (request: Request<REQ, RESP>) =>
  50. ClientReadableStream<RESP>): ClientReadableStream<RESP>;
  51. }
  52. export interface UnaryInterceptor<REQ, RESP> {
  53. intercept(request: Request<REQ, RESP>,
  54. invoker: (request: Request<REQ, RESP>) =>
  55. Promise<UnaryResponse<REQ, RESP>>): Promise<UnaryResponse<REQ, RESP>>;
  56. }
  57. export class CallOptions {
  58. constructor(options: { [index: string]: any; });
  59. }
  60. export class MethodDescriptor<REQ, RESP> {
  61. constructor(name: string,
  62. methodType: string,
  63. requestType: new (...args: unknown[]) => REQ,
  64. responseType: new (...args: unknown[]) => RESP,
  65. requestSerializeFn: any,
  66. responseDeserializeFn: any);
  67. getName(): string;
  68. }
  69. export class Request<REQ, RESP> {
  70. getRequestMessage(): REQ;
  71. getMethodDescriptor(): MethodDescriptor<REQ, RESP>;
  72. getMetadata(): Metadata;
  73. getCallOptions(): CallOptions;
  74. }
  75. export class UnaryResponse<REQ, RESP> {
  76. getResponseMessage(): RESP;
  77. getMetadata(): Metadata;
  78. getMethodDescriptor(): MethodDescriptor<REQ, RESP>;
  79. getStatus(): Status;
  80. }
  81. export interface GrpcWebClientBaseOptions {
  82. format?: string;
  83. suppressCorsPreflight?: boolean;
  84. withCredentials?: boolean;
  85. unaryInterceptors?: UnaryInterceptor<unknown, unknown>[];
  86. streamInterceptors?: StreamInterceptor<unknown, unknown>[];
  87. }
  88. export class GrpcWebClientBase extends AbstractClientBase {
  89. constructor(options?: GrpcWebClientBaseOptions);
  90. }
  91. export class RpcError extends Error {
  92. constructor(code: StatusCode, message: string, metadata: Metadata);
  93. code: StatusCode;
  94. metadata: Metadata;
  95. }
  96. export interface Status {
  97. code: number;
  98. details: string;
  99. metadata?: Metadata;
  100. }
  101. export enum StatusCode {
  102. OK,
  103. CANCELLED,
  104. UNKNOWN,
  105. INVALID_ARGUMENT,
  106. DEADLINE_EXCEEDED,
  107. NOT_FOUND,
  108. ALREADY_EXISTS,
  109. PERMISSION_DENIED,
  110. RESOURCE_EXHAUSTED,
  111. FAILED_PRECONDITION,
  112. ABORTED,
  113. OUT_OF_RANGE,
  114. UNIMPLEMENTED,
  115. INTERNAL,
  116. UNAVAILABLE,
  117. DATA_LOSS,
  118. UNAUTHENTICATED,
  119. }
  120. export namespace MethodType {
  121. const UNARY: string;
  122. const SERVER_STREAMING: string;
  123. }
  124. }