"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var graphql_1 = require("graphql");
require("isomorphic-fetch");
var HttpUtils = (function () {
function HttpUtils() {
}
HttpUtils.buildURI = function (uri, operation) {
return uri + "?" + HttpUtils.queryParameters(operation);
};
HttpUtils.getRequestType = function (query) {
var _this = this;
var definitions = query.definitions;
var nonQuery = definitions.find(function (def) { return !_this.isOperationType(def, 'query'); });
return nonQuery ? 'POST' : 'GET';
};
HttpUtils.queryParameters = function (op) {
var params = [];
Eif (op.query) {
params.push("query=" + encodeURIComponent(graphql_1.print(op.query)));
}
if (op.operationName) {
params.push("operationName=" + encodeURIComponent(op.operationName));
}
if (op.variables) {
params.push("variables=" + encodeURIComponent(JSON.stringify(op.variables)));
}
if (op.context) {
params.push("context=" + encodeURIComponent(JSON.stringify(op.context)));
}
return params.join('&');
};
HttpUtils.isOperationType = function (definition, operationType) {
Iif (definition.kind !== 'OperationDefinition') {
return false;
}
var operationNode = definition;
return operationNode.operation === operationType;
};
return HttpUtils;
}());
exports.default = HttpUtils;
//# sourceMappingURL=httpUtils.js.map |