UNPKG

2.24 kBJavaScriptView Raw
1import { __assign, __spreadArray } from "tslib";
2import { print } from 'graphql';
3;
4var defaultHttpOptions = {
5 includeQuery: true,
6 includeExtensions: false,
7};
8var defaultHeaders = {
9 accept: '*/*',
10 'content-type': 'application/json',
11};
12var defaultOptions = {
13 method: 'POST',
14};
15export var fallbackHttpConfig = {
16 http: defaultHttpOptions,
17 headers: defaultHeaders,
18 options: defaultOptions,
19};
20export var defaultPrinter = function (ast, printer) { return printer(ast); };
21export function selectHttpOptionsAndBody(operation, fallbackConfig) {
22 var configs = [];
23 for (var _i = 2; _i < arguments.length; _i++) {
24 configs[_i - 2] = arguments[_i];
25 }
26 configs.unshift(fallbackConfig);
27 return selectHttpOptionsAndBodyInternal.apply(void 0, __spreadArray([operation,
28 defaultPrinter], configs, false));
29}
30export function selectHttpOptionsAndBodyInternal(operation, printer) {
31 var configs = [];
32 for (var _i = 2; _i < arguments.length; _i++) {
33 configs[_i - 2] = arguments[_i];
34 }
35 var options = {};
36 var http = {};
37 configs.forEach(function (config) {
38 options = __assign(__assign(__assign({}, options), config.options), { headers: __assign(__assign({}, options.headers), headersToLowerCase(config.headers)) });
39 if (config.credentials) {
40 options.credentials = config.credentials;
41 }
42 http = __assign(__assign({}, http), config.http);
43 });
44 var operationName = operation.operationName, extensions = operation.extensions, variables = operation.variables, query = operation.query;
45 var body = { operationName: operationName, variables: variables };
46 if (http.includeExtensions)
47 body.extensions = extensions;
48 if (http.includeQuery)
49 body.query = printer(query, print);
50 return {
51 options: options,
52 body: body,
53 };
54}
55;
56function headersToLowerCase(headers) {
57 if (headers) {
58 var normalized_1 = Object.create(null);
59 Object.keys(Object(headers)).forEach(function (name) {
60 normalized_1[name.toLowerCase()] = headers[name];
61 });
62 return normalized_1;
63 }
64 return headers;
65}
66//# sourceMappingURL=selectHttpOptionsAndBody.js.map
\No newline at end of file