1 | import { Endpoint } from "./http";
|
2 | import { RequestHandler } from "./transfer";
|
3 | import { Decoder, Encoder, Provider } from "./util";
|
4 |
|
5 |
|
6 |
|
7 | export interface EndpointBearer {
|
8 | endpoint: Provider<Endpoint>;
|
9 | }
|
10 | export interface StreamCollector {
|
11 | |
12 |
|
13 |
|
14 |
|
15 |
|
16 | (stream: any): Promise<Uint8Array>;
|
17 | }
|
18 |
|
19 |
|
20 |
|
21 | export interface SerdeContext extends EndpointBearer {
|
22 | base64Encoder: Encoder;
|
23 | base64Decoder: Decoder;
|
24 | utf8Encoder: Encoder;
|
25 | utf8Decoder: Decoder;
|
26 | streamCollector: StreamCollector;
|
27 | requestHandler: RequestHandler<any, any>;
|
28 | disableHostPrefix: boolean;
|
29 | }
|
30 | export interface RequestSerializer<Request, Context extends EndpointBearer = any> {
|
31 | |
32 |
|
33 |
|
34 |
|
35 |
|
36 |
|
37 |
|
38 | (input: any, context: Context): Promise<Request>;
|
39 | }
|
40 | export interface ResponseDeserializer<OutputType, ResponseType = any, Context = any> {
|
41 | |
42 |
|
43 |
|
44 |
|
45 |
|
46 |
|
47 |
|
48 | (output: ResponseType, context: Context): Promise<OutputType>;
|
49 | }
|