mirror of
https://github.com/CamHenlin/MessagesForMacintosh.git
synced 2024-11-26 20:50:30 +00:00
124 lines
4.6 KiB
JavaScript
124 lines
4.6 KiB
JavaScript
|
"use strict";
|
||
|
Object.defineProperty(exports, "__esModule", { value: true });
|
||
|
var tslib_1 = require("tslib");
|
||
|
var printer_1 = require("graphql/language/printer");
|
||
|
var ts_invariant_1 = require("ts-invariant");
|
||
|
var defaultHttpOptions = {
|
||
|
includeQuery: true,
|
||
|
includeExtensions: false,
|
||
|
};
|
||
|
var defaultHeaders = {
|
||
|
accept: '*/*',
|
||
|
'content-type': 'application/json',
|
||
|
};
|
||
|
var defaultOptions = {
|
||
|
method: 'POST',
|
||
|
};
|
||
|
exports.fallbackHttpConfig = {
|
||
|
http: defaultHttpOptions,
|
||
|
headers: defaultHeaders,
|
||
|
options: defaultOptions,
|
||
|
};
|
||
|
exports.throwServerError = function (response, result, message) {
|
||
|
var error = new Error(message);
|
||
|
error.name = 'ServerError';
|
||
|
error.response = response;
|
||
|
error.statusCode = response.status;
|
||
|
error.result = result;
|
||
|
throw error;
|
||
|
};
|
||
|
exports.parseAndCheckHttpResponse = function (operations) { return function (response) {
|
||
|
return (response
|
||
|
.text()
|
||
|
.then(function (bodyText) {
|
||
|
try {
|
||
|
return JSON.parse(bodyText);
|
||
|
}
|
||
|
catch (err) {
|
||
|
var parseError = err;
|
||
|
parseError.name = 'ServerParseError';
|
||
|
parseError.response = response;
|
||
|
parseError.statusCode = response.status;
|
||
|
parseError.bodyText = bodyText;
|
||
|
return Promise.reject(parseError);
|
||
|
}
|
||
|
})
|
||
|
.then(function (result) {
|
||
|
if (response.status >= 300) {
|
||
|
exports.throwServerError(response, result, "Response not successful: Received status code " + response.status);
|
||
|
}
|
||
|
if (!Array.isArray(result) &&
|
||
|
!result.hasOwnProperty('data') &&
|
||
|
!result.hasOwnProperty('errors')) {
|
||
|
exports.throwServerError(response, result, "Server response was missing for query '" + (Array.isArray(operations)
|
||
|
? operations.map(function (op) { return op.operationName; })
|
||
|
: operations.operationName) + "'.");
|
||
|
}
|
||
|
return result;
|
||
|
}));
|
||
|
}; };
|
||
|
exports.checkFetcher = function (fetcher) {
|
||
|
if (!fetcher && typeof fetch === 'undefined') {
|
||
|
var library = 'unfetch';
|
||
|
if (typeof window === 'undefined')
|
||
|
library = 'node-fetch';
|
||
|
throw new ts_invariant_1.InvariantError("\nfetch is not found globally and no fetcher passed, to fix pass a fetch for\nyour environment like https://www.npmjs.com/package/" + library + ".\n\nFor example:\nimport fetch from '" + library + "';\nimport { createHttpLink } from 'apollo-link-http';\n\nconst link = createHttpLink({ uri: '/graphql', fetch: fetch });");
|
||
|
}
|
||
|
};
|
||
|
exports.createSignalIfSupported = function () {
|
||
|
if (typeof AbortController === 'undefined')
|
||
|
return { controller: false, signal: false };
|
||
|
var controller = new AbortController();
|
||
|
var signal = controller.signal;
|
||
|
return { controller: controller, signal: signal };
|
||
|
};
|
||
|
exports.selectHttpOptionsAndBody = function (operation, fallbackConfig) {
|
||
|
var configs = [];
|
||
|
for (var _i = 2; _i < arguments.length; _i++) {
|
||
|
configs[_i - 2] = arguments[_i];
|
||
|
}
|
||
|
var options = tslib_1.__assign({}, fallbackConfig.options, { headers: fallbackConfig.headers, credentials: fallbackConfig.credentials });
|
||
|
var http = fallbackConfig.http;
|
||
|
configs.forEach(function (config) {
|
||
|
options = tslib_1.__assign({}, options, config.options, { headers: tslib_1.__assign({}, options.headers, config.headers) });
|
||
|
if (config.credentials)
|
||
|
options.credentials = config.credentials;
|
||
|
http = tslib_1.__assign({}, http, config.http);
|
||
|
});
|
||
|
var operationName = operation.operationName, extensions = operation.extensions, variables = operation.variables, query = operation.query;
|
||
|
var body = { operationName: operationName, variables: variables };
|
||
|
if (http.includeExtensions)
|
||
|
body.extensions = extensions;
|
||
|
if (http.includeQuery)
|
||
|
body.query = printer_1.print(query);
|
||
|
return {
|
||
|
options: options,
|
||
|
body: body,
|
||
|
};
|
||
|
};
|
||
|
exports.serializeFetchParameter = function (p, label) {
|
||
|
var serialized;
|
||
|
try {
|
||
|
serialized = JSON.stringify(p);
|
||
|
}
|
||
|
catch (e) {
|
||
|
var parseError = new ts_invariant_1.InvariantError("Network request failed. " + label + " is not serializable: " + e.message);
|
||
|
parseError.parseError = e;
|
||
|
throw parseError;
|
||
|
}
|
||
|
return serialized;
|
||
|
};
|
||
|
exports.selectURI = function (operation, fallbackURI) {
|
||
|
var context = operation.getContext();
|
||
|
var contextURI = context.uri;
|
||
|
if (contextURI) {
|
||
|
return contextURI;
|
||
|
}
|
||
|
else if (typeof fallbackURI === 'function') {
|
||
|
return fallbackURI(operation);
|
||
|
}
|
||
|
else {
|
||
|
return fallbackURI || '/graphql';
|
||
|
}
|
||
|
};
|
||
|
//# sourceMappingURL=index.js.map
|