1 | "use strict";
|
2 |
|
3 |
|
4 |
|
5 |
|
6 |
|
7 |
|
8 |
|
9 |
|
10 |
|
11 |
|
12 |
|
13 |
|
14 |
|
15 |
|
16 |
|
17 | Object.defineProperty(exports, "__esModule", { value: true });
|
18 | exports.decodeResponse = exports.encodeRequest = void 0;
|
19 |
|
20 | const fallback_1 = require("./fallback");
|
21 | const googleError_1 = require("./googleError");
|
22 | function encodeRequest(rpc, protocol, servicePath, servicePort, request) {
|
23 | const protoNamespaces = [];
|
24 | let currNamespace = rpc.parent;
|
25 | while (currNamespace.name !== '') {
|
26 | protoNamespaces.unshift(currNamespace.name);
|
27 | currNamespace = currNamespace.parent;
|
28 | }
|
29 | const protoServiceName = protoNamespaces.join('.');
|
30 | const rpcName = rpc.name;
|
31 | const headers = {
|
32 | 'Content-Type': 'application/x-protobuf',
|
33 | };
|
34 | const method = 'post';
|
35 | const requestMessage = rpc.resolvedRequestType.fromObject(request);
|
36 | const body = rpc.resolvedRequestType.encode(requestMessage).finish();
|
37 | const url = `${protocol}://${servicePath}:${servicePort}/$rpc/${protoServiceName}/${rpcName}`;
|
38 | return {
|
39 | method,
|
40 | url,
|
41 | headers,
|
42 | body,
|
43 | };
|
44 | }
|
45 | exports.encodeRequest = encodeRequest;
|
46 | function decodeResponse(rpc, ok, response) {
|
47 | if (!ok) {
|
48 | const statusDecoder = new googleError_1.GoogleErrorDecoder();
|
49 | const error = statusDecoder.decodeErrorFromBuffer(response);
|
50 | throw error;
|
51 | }
|
52 | const buffer = response instanceof ArrayBuffer ? new Uint8Array(response) : response;
|
53 | const message = rpc.resolvedResponseType.decode(buffer);
|
54 | return rpc.resolvedResponseType.toObject(message, fallback_1.defaultToObjectOptions);
|
55 | }
|
56 | exports.decodeResponse = decodeResponse;
|
57 |
|
\ | No newline at end of file |